i18n.js
2.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
// 国际化配置文件
const messages = {
zh_CN: {
heatMap: {
loading: '加载中...',
loadingForbidClick: '加载中...',
noFloorPlan: '未找到门店平面图',
noHeatData: '无热力数据',
getHeatMapDataFailed: '获取热力图数据失败',
loadSuccess: '加载成功'
},
areaHeat: {
getAreaDataFailed: '获取区域数据失败'
}
},
zh_TW: {
heatMap: {
loading: '載入中...',
loadingForbidClick: '載入中...',
noFloorPlan: '未找到門店平面圖',
noHeatData: '無熱力數據',
getHeatMapDataFailed: '獲取熱力圖數據失敗',
loadSuccess: '載入成功'
},
areaHeat: {
getAreaDataFailed: '獲取區域數據失敗'
}
},
en_US: {
heatMap: {
loading: 'Loading...',
loadingForbidClick: 'Loading...',
noFloorPlan: 'Store floor plan not found',
noHeatData: 'No heat map data',
getHeatMapDataFailed: 'Failed to get heat map data',
loadSuccess: 'Load successful'
},
areaHeat: {
getAreaDataFailed: 'Failed to get area data'
}
},
ja_JP: {
heatMap: {
loading: '読み込み中...',
loadingForbidClick: '読み込み中...',
noFloorPlan: '店舗の平面図が見つかりません',
noHeatData: '熱マップデータがありません',
getHeatMapDataFailed: '熱マップデータの取得に失敗しました',
loadSuccess: '読み込み成功'
},
areaHeat: {
getAreaDataFailed: 'エリアデータの取得に失敗しました'
}
}
};
// 获取语言文本
export function getI18nText(lang, key) {
// 默认使用中文
const currentLang = lang || 'zh_CN';
// 分割key,例如 'heatMap.loading' => ['heatMap', 'loading']
const keys = key.split('.');
// 获取对应语言的文本
let text = messages[currentLang];
for (const k of keys) {
if (text && text[k]) {
text = text[k];
} else {
// 如果找不到对应的文本,返回中文默认值
let defaultText = messages['zh_CN'];
for (const dk of keys) {
if (defaultText && defaultText[dk]) {
defaultText = defaultText[dk];
} else {
return key; // 如果默认值也找不到,返回key本身
}
}
return defaultText;
}
}
return text;
}
export default messages;