Files
layui/examples/i18n/fr.js
morning-star d96ad79960
Some checks failed
Issue Close Require / issue-close-require (push) Has been cancelled
feat(i18n): 国际化支持 (#2698)
* wip(i18n): laydate 国际化

* wip(i18n): colorpicker 国际化

* wip(i18n): laypage 国际化

* fix

* update code

* wip(i18n): 修改国际化消息对象结构

* wip(i18n): update

* wip(i18n): code 国际化

* wip(i18n): dropdown 国际化

* wip(i18n): flow 国际化

* wip(i18n): form 国际化

* wip(i18n): layer 国际化

* wip(i18n): table 国际化

* wip(i18n): transfer 国际化

* wip(i18n): tree 国际化

* wip(i18n): treeTable 控制台提示统一为英文

* wip(i18n): upload 国际化

* wip(i18n): util 国际化

* wip(i18n): update code

* wip(i18n): update code

* wip(i18n): fix

* wip(i18n): 优化 $t 代码细节

* wip(i18n): 修复 laydate lang

* wip(i18n): 改进 upload i18n key

* wip(i18n): 修复打包后 laydate 和 layer 异常

* wip(i18n): 移除国际化消息中的 `lay` 命名空间

* refactor(i18n): 改进国际化支持

* wip(i18n): 修复 table text.none 切换 locale 无效问题

* style(laydate): 优化逗号格式

* chore(laydate): 优化部分提示

* chore(i18n): 优化演示中部分国际化消息

* refactor: 剔除 laydate 单独版的判断逻辑

为接下来全面支持国际化做铺垫

* wip(i18n): 为 laydate 重新添加完整国际化的支持

* i18n(laydate): 优化 lang() 方法中的逻辑

* chore(util): 删除未使用的代码

* chore(i18n): 优化注释

* docs(i18n): 新增国际化文档(beta)

note: 由于时间关系,本次提交仅为初版,该文档尚未完成

* wip(docs): 完善 i18n 文档

* fix(i18n): 修复 laypage 变量定义前使用

* wip(i18n): 转义翻译结果

* fix(i18n): 修复 table 排序 key 无效

* wip(i18n): 优化获取对象中指定路径值的性能

* wip(i18n): 删除 $t 可变长参数重载

* chore(i18n): 删除不必要的注释

* refactor(i18n): laydate 国际化方案迁移至 i18n.$t (#2745)

* wip(i18n): 改进 laydate i18nMsg key

* update code

* wip(i18n): 改进 laydate 面板中的日期格式处理

* wip(i18n): 改进 util.toDateString meridiem

遵循 CLDR day periods 标准

* update code

* wip(docs): 优化 i18n 文档示例

* docs(i18n): 优化正式文档

* docs(i18n): 优化部分文案

* docs(i18n): 优化示例

---------

Co-authored-by: 贤心 <3277200+sentsim@users.noreply.github.com>
2025-09-08 10:31:02 +08:00

167 lines
4.7 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* Français (fr)
*/
export default {
code: {
copy: 'Copier le code',
copied: 'Copié',
copyError: 'Échec de la copie',
maximize: 'Afficher en plein écran',
restore: 'Restaurer laffichage',
preview: 'Aperçu dans une nouvelle fenêtre'
},
colorpicker: {
clear: 'Effacer',
confirm: 'OK'
},
dropdown: {
noData: 'Aucune donnée disponible'
},
flow: {
loadMore: 'Charger plus',
noMore: 'Plus de données'
},
form: {
select: {
noData: 'Aucune donnée disponible',
noMatch: 'Aucune correspondance',
placeholder: 'Veuillez sélectionner'
},
validateMessages: {
required: 'Ce champ est obligatoire',
phone: 'Numéro de téléphone invalide',
email: 'Adresse e-mail invalide',
url: 'URL invalide',
number: 'Uniquement des chiffres',
date: 'Format de date invalide',
identity: 'Numéro didentification invalide'
},
verifyErrorPromptTitle: 'Avertissement'
},
laydate: {
months: ['Janv', 'Févr', 'Mars', 'Avr', 'Mai', 'Juin', 'Juil', 'Août', 'Sept', 'Oct', 'Nov', 'Déc'],
weeks: ['Di', 'Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa'],
time: ['Heure', 'Minute', 'Seconde'],
literal: {
year: ''
},
selectDate: 'Sélec. date',
selectTime: 'Sélec. heure',
startTime: 'Heure de début',
endTime: 'Heure de fin',
// Recommandé en version abrégée en raison de lespace limité du composant
tools: {
confirm: 'OK',
clear: 'Eff.',
now: 'Ajd.',
reset: 'Réinit.'
},
rangeOrderPrompt: 'Lheure de fin ne peut pas être antérieure à lheure de début\nVeuillez recommencer',
invalidDatePrompt: 'Date ou heure hors plage valide\n',
formatErrorPrompt: 'Format de date invalide\nLe format attendu est :\n{format}\n',
autoResetPrompt: 'Il a été réinitialisé pour vous',
preview: 'Résultat sélectionné actuel'
},
layer: {
confirm: 'Confirmer',
cancel: 'Annuler',
defaultTitle: 'Information',
prompt: {
InputLengthPrompt: 'Maximum {length} caractères'
},
photos: {
noData: 'Aucune image',
tools: {
rotate: 'Faire pivoter',
scaleX: 'Inverser horizontalement',
zoomIn: 'Agrandir',
zoomOut: 'Réduire',
reset: 'Réinitialiser',
close: 'Fermer'
},
viewPicture: 'Voir limage originale',
urlError: {
prompt: 'Ladresse de limage est invalide,\nContinuer avec la suivante ?',
confirm: 'Suivante',
cancel: 'Annuler'
}
}
},
laypage: {
prev: 'Page précédente',
next: 'Page suivante',
first: 'Première',
last: 'Dernière',
total: 'Total {total} éléments',
pagesize: 'éléments/page',
goto: 'Aller à',
page: 'page',
confirm: 'Confirmer'
},
table: {
sort: {
asc: 'Croissant',
desc: 'Décroissant'
},
noData: 'Aucune donnée',
tools: {
filter: {
title: 'Filtrer les colonnes'
},
export: {
title: 'Exporter',
noDataPrompt: 'Aucune donnée à exporter',
compatPrompt: 'Lexportation nest pas supportée par IE, veuillez utiliser Chrome ou un autre navigateur moderne',
csvText: 'Exporter au format CSV'
},
print: {
title: 'Imprimer',
noDataPrompt: 'Aucune donnée à imprimer'
}
},
dataFormatError: 'Les données retournées sont invalides. Le code de réussite attendu est : "{statusName}": {statusCode}',
xhrError: 'Erreur de requête : {msg}'
},
transfer: {
noData: 'Aucune donnée',
noMatch: 'Aucune correspondance',
title: ['Liste 1', 'Liste 2'],
searchPlaceholder: 'Recherche par mot-clé'
},
tree: {
defaultNodeName: 'Sans nom',
noData: 'Aucune donnée',
deleteNodePrompt: 'Confirmer la suppression du nœud "{name}" ?'
},
upload: {
fileType: {
file: 'Fichier',
image: 'Image',
video: 'Vidéo',
audio: 'Audio'
},
validateMessages: {
fileExtensionError: 'Le {fileType} sélectionné contient un format non supporté',
filesOverLengthLimit: 'Nombre maximum de fichiers : {length}',
currentFilesLength: 'Vous avez sélectionné {length} fichiers',
fileOverSizeLimit: 'La taille du fichier ne doit pas dépasser {size}'
},
chooseText: '{length} fichiers'
},
util: {
timeAgo: {
days: 'il y a {days} jours',
hours: 'il y a {hours} heures',
minutes: 'il y a {minutes} minutes',
future: 'Futur',
justNow: 'À linstant'
},
toDateString: {
meridiem: function(hours, minutes){
return hours < 12 ? 'AM' : 'PM';
}
}
}
};