feat(i18n): 改造10个组件为i18n国际化,同步更新9种语言翻译文件

- 组件改造:EmptyState、ExportPanel、SearchConditionItem、SearchHistoryPanel、
  SearchResultCard、SearchResultList、Select、SortSwitcher、TemplatePanel、
  BottomNavigation、SearchConditionPanel
- 替换硬编码中文为 $t() 调用和 computed 响应式翻译
- 新增翻译键:search(搜索历史/模板/条件)、export(导出选项)、
  common.pleaseSelect 等
- 同步更新 zh-CN、en、zh-TW、ja、ko、es、fr、de、pt 共9种语言文件
- 重构 errorHandler:从 API 错误处理改为本地应用错误处理
- 移除 search.ts 中未使用的 SearchService 接口
This commit is contained in:
张翔
2026-04-29 19:13:55 +08:00
parent 70d3e3a277
commit 330c3af227
26 changed files with 1335 additions and 490 deletions
+43 -44
View File
@@ -9,6 +9,7 @@ export default {
search: 'Rechercher',
male: 'Homme',
female: 'Femme',
pleaseSelect: 'Veuillez sélectionner',
},
nav: {
almanac: 'Almanach',
@@ -45,63 +46,61 @@ export default {
monthly: 'Mensuel',
selectDate: 'Sélectionner la date',
selectMonth: 'Sélectionner le mois',
overallFortune: 'Destin global',
career: 'Carrière',
wealth: 'Richesse',
relationship: 'Relation',
health: 'Santé',
luckyColor: 'Couleur porte-bonheur',
luckyNumber: 'Numéro chance',
luckyDirection: 'Direction porte-bonheur',
noChart: 'Veuillez d\'abord générer un diagramme sur la page Zi Wei Dou Shu',
overallScore: 'Destin global : {score}pts',
career: 'Carrière : ',
wealth: 'Richesse : ',
relationship: 'Relation : ',
health: 'Santé : ',
luckyColor: 'Couleur porte-bonheur : ',
luckyNumber: 'Numéro chance : ',
luckyDirection: 'Direction porte-bonheur : ',
noChartHint: 'Veuillez d\'abord générer un diagramme sur la page Zi Wei Dou Shu',
},
search: {
conditions: 'Conditions de recherche',
searchConditions: 'Conditions de recherche',
addCondition: 'Ajouter une condition',
addConditionHint: 'Veuillez ajouter au moins une condition de recherche',
addConditionEmpty: 'Ajouter des conditions de recherche',
days: 'Jours de recherche',
dayUnit: 'jours',
searchResult: 'Résultats de recherche',
searchDays: 'Jours de recherche',
daysUnit: '{count} jours',
searchResults: 'Résultats de recherche',
resultCount: '{count} résultats',
matchCount: 'Correspondance : {count}',
matchCount: 'Correspondance',
sort: 'Trier',
sortByDate: 'Date',
sortByMatch: 'Correspondance',
typeSuitable: 'Favorable',
typeUnsuitable: 'Défavorable',
suitable: 'Favorable',
unsuitable: 'Défavorable',
operatorAnd: 'ET',
operatorOr: 'OU',
excludeCondition: 'Exclure la condition',
items: 'Éléments',
operator: 'Opérateur logique',
},
template: {
title: 'Modèles de recherche',
searchPlaceholder: 'Rechercher des modèles',
empty: 'Aucun modèle',
emptyDesc: 'Aucun modèle ne correspond aux critères',
all: 'Tous',
},
export: {
title: 'Exporter les résultats',
selectFormat: 'Sélectionner le format d\'export',
selectContent: 'Sélectionner le contenu d\'export',
date: 'Date',
lunarDate: 'Date lunaire',
weekday: 'Jour de la semaine',
matchedItems: 'Éléments correspondants',
matchCount: 'Correspondance',
},
history: {
title: 'Historique de recherche',
clear: 'Effacer l\'historique',
clearConfirm: 'Confirmer la suppression',
clearConfirmMsg: 'Voulez-vous effacer tout l\'historique de recherche ?',
empty: 'Aucun historique',
emptyDesc: 'Les conditions de recherche apparaîtront ici après la recherche',
activityItems: 'Éléments',
logicalOperator: 'Opérateur logique',
dateFormat: '{day}/{month}/{year}',
searchHistory: 'Historique de recherche',
clearHistory: 'Effacer l\'historique',
noHistoryTitle: 'Aucun historique',
noHistoryDesc: 'Les conditions de recherche apparaîtront ici après la recherche',
confirmClear: 'Confirmer la suppression',
confirmClearContent: 'Voulez-vous effacer tout l\'historique de recherche ?',
historyConditionDays: '{count} conditions, {days} jours de plage',
justNow: 'À l\'instant',
hoursAgo: 'Il y a {count}h',
daysAgo: 'Il y a {count}j',
searchTemplates: 'Modèles de recherche',
noTemplatesTitle: 'Aucun modèle',
noTemplatesDesc: 'Aucun modèle ne correspond aux critères',
allCategories: 'Tous',
},
export: {
exportResults: 'Exporter les résultats',
exportSearchResults: 'Exporter les résultats de recherche',
selectFormat: 'Sélectionner le format d\'export',
selectContent: 'Sélectionner le contenu d\'export',
export: 'Exporter',
contentDate: 'Date',
contentLunarDate: 'Date lunaire',
contentWeekday: 'Jour de la semaine',
contentMatchedItems: 'Éléments correspondants',
contentMatchCount: 'Correspondance',
},
}