Vue国际化实现方案
原文地址:此刻_你不在
- 安装
vue-i18n
npm i vue-i18n -S
- 在
src/main.js
中 实例化/注册`vue-i18n
...
import VueI18n from "vue-i18n"; // 引入组件
Vue.use(VueI18n); //注册组件
const i18n = new VueI18n({
locale: "zh", //语言标识 默认语言
// CommonJS规范引入语言文件
messages: {
zh: require("@/assets/lang/zh"),
en: require("@/assets/lang/en"),
},
});
new Vue({
i18n, //在Vue实例上挂在组件
render: (h) => h(App),
}).$mount("#app");
- 在
src/assets
目录下创建语言包lang
并且创建语言文件
assets
└─lang
en.js
zh.js
生成 tree 视图:
tree -I "node_modules|dist"
(tree.exe)
assets/lang/zh.js
module.exports = {
classical: {
title: "木兰诗",
content: `唧唧复唧唧,木兰当户织。不闻机杼声,唯闻女叹息。`
},
};
assets/lang/en.js
module.exports = {
classical: {
title: "Mulan Poetry",
content: `Haw and haw, Magnolia weaving. I don't hear the sound of the loom, but I hear the sigh of the girl.
},
};
至此 一切准备工作准备完毕,接下来让我们使用它。
在任意组件中可以使用
this.$t('classical.title');
获取当前语言配置版本的文本,在模板中使用{{$t('classical.title')}}
也能达到效果,且更直接。
语言配置切换
methods: {
chooseLang(langType) {
this.$i18n.locale = langType;
},
langType
参数为src/main.js
messages的key
附录:各国语言简写
Countries and Regions | 国家或地区 | *国际域名缩写* |
---|---|---|
Angola | 安哥拉 | AO |
Afghanistan | 阿富汗 | AF |
Albania | 阿尔巴尼亚 | AL |
Algeria | 阿尔及利亚 | DZ |
Andorra | 安道尔共和国 | AD |
Anguilla | 安圭拉岛 | AI |
Antigua and Barbuda | 安提瓜和巴布达 | AG |
Argentina | 阿根廷 | AR |
Armenia | 亚美尼亚 | AM |
Ascension | 阿森松 | |
Australia | 澳大利亚 | AU |
Austria | 奥地利 | AT |
Azerbaijan | 阿塞拜疆 | AZ |
Bahamas | 巴哈马 | BS |
Bahrain | 巴林 | BH |
Bangladesh | 孟加拉国 | BD |
Barbados | 巴巴多斯 | BB |
Belarus | 白俄罗斯 | BY |
Belgium | 比利时 | BE |
Belize | 伯利兹 | BZ |
Benin | 贝宁 | BJ |
Bermuda Is. | 百慕大群岛 | BM |
Bolivia | 玻利维亚 | BO |
Botswana | 博茨瓦纳 | BW |
Brazil | 巴西 | BR |
Brunei | 文莱 | BN |
Bulgaria | 保加利亚 | BG |
Burkina-faso | 布基纳法索 | BF |
Burma | 缅甸 | MM |
Burundi | 布隆迪 | BI |
Cameroon | 喀麦隆 | CM |
Canada | 加拿大 | CA |
Cayman Is. | 开曼群岛 | |
Central African Republic | 中非共和国 | CF |
Chad | 乍得 | TD |
Chile | 智利 | CL |
China | 中国 | CN |
Colombia | 哥伦比亚 | CO |
Congo | 刚果 | CG |
Cook Is. | 库克群岛 | CK |
Costa Rica | 哥斯达黎加 | CR |
Cuba | 古巴 | CU |
Cyprus | 塞浦路斯 | CY |
Czech Republic | 捷克 | CZ |
Denmark | 丹麦 | DK |
Djibouti | 吉布提 | DJ |
Dominica Rep. | 多米尼加共和国 | DO |
Ecuador | 厄瓜多尔 | EC |
Egypt | 埃及 | EG |
EI Salvador | 萨尔瓦多 | SV |
Estonia | 爱沙尼亚 | EE |
Ethiopia | 埃塞俄比亚 | ET |
Fiji | 斐济 | FJ |
Finland | 芬兰 | FI |
France | 法国 | FR |
French Guiana | 法属圭亚那 | GF |
Gabon | 加蓬 | GA |
Gambia | 冈比亚 | GM |
Georgia | 格鲁吉亚 | GE |
Germany | 德国 | DE |
Ghana | 加纳 | GH |
Gibraltar | 直布罗陀 | GI |
Greece | 希腊 | GR |
Grenada | 格林纳达 | GD |
Guam | 关岛 | GU |
Guatemala | 危地马拉 | GT |
Guinea | 几内亚 | GN |
Guyana | 圭亚那 | GY |
Haiti | 海地 | HT |
Honduras | 洪都拉斯 | HN |
Hongkong | 香港 | HK |
Hungary | 匈牙利 | HU |
Iceland | 冰岛 | IS |
India | 印度 | IN |
Indonesia | 印度尼西亚 | ID |
Iran | 伊朗 | IR |
Iraq | 伊拉克 | IQ |
Ireland | 爱尔兰 | IE |
Israel | 以色列 | IL |
Italy | 意大利 | IT |
Ivory Coast | 科特迪瓦 | |
Jamaica | 牙买加 | JM |
Japan | 日本 | JP |
Jordan | 约旦 | JO |
Kampuchea (Cambodia ) | 柬埔寨 | KH |
Kazakstan | 哈萨克斯坦 | KZ |
Kenya | 肯尼亚 | KE |
Korea | 韩国 | KR |
Kuwait | 科威特 | KW |
Kyrgyzstan | 吉尔吉斯坦 | KG |
Laos | 老挝 | LA |
Latvia | 拉脱维亚 | LV |
Lebanon | 黎巴嫩 | LB |
Lesotho | 莱索托 | LS |
Liberia | 利比里亚 | LR |
Libya | 利比亚 | LY |
Liechtenstein | 列支敦士登 | LI |
Lithuania | 立陶宛 | LT |
Luxembourg | 卢森堡 | LU |
Macao | 澳门 | MO |
Madagascar | 马达加斯加 | MG |
Malawi | 马拉维 | MW |
Malaysia | 马来西亚 | MY |
Maldives | 马尔代夫 | MV |
Mali | 马里 | ML |
Malta | 马耳他 | MT |
Mariana Is | 马里亚那群岛 | |
Martinique | 马提尼克 | |
Mauritius | 毛里求斯 | MU |
Mexico | 墨西哥 | MX |
Moldova, Republic of | 摩尔多瓦 | MD |
Monaco | 摩纳哥 | MC |
Mongolia | 蒙古 | MN |
Montserrat Is | 蒙特塞拉特岛 | MS |
Morocco | 摩洛哥 | MA |
Mozambique | 莫桑比克 | MZ |
Namibia | 纳米比亚 | NA |
Nauru | 瑙鲁 | NR |
Nepal | 尼泊尔 | NP |
Netheriands Antilles | 荷属安的列斯 | |
Netherlands | 荷兰 | NL |
New Zealand | 新西兰 | NZ |
Nicaragua | 尼加拉瓜 | NI |
Niger | 尼日尔 | NE |
Nigeria | 尼日利亚 | NG |
North Korea | 朝鲜 | KP |
Norway | 挪威 | NO |
Oman | 阿曼 | OM |
Pakistan | 巴基斯坦 | PK |
Panama | 巴拿马 | PA |
Papua New Cuinea | 巴布亚新几内亚 | PG |
Paraguay | 巴拉圭 | PY |
Peru | 秘鲁 | PE |
Philippines | 菲律宾 | PH |
Poland | 波兰 | PL |
French Polynesia | 法属玻利尼西亚 | PF |
Portugal | 葡萄牙 | PT |
Puerto Rico | 波多黎各 | PR |
Qatar | 卡塔尔 | QA |
Reunion | 留尼旺 | |
Romania | 罗马尼亚 | RO |
Russia | 俄罗斯 | RU |
Saint Lueia | 圣卢西亚 | LC |
Saint Vincent | 圣文森特岛 | VC |
Samoa Eastern | 东萨摩亚(美) | |
Samoa Western | 西萨摩亚 | |
San Marino | 圣马力诺 | SM |
Sao Tome and Principe | 圣多美和普林西比 | ST |
Saudi Arabia | 沙特阿拉伯 | SA |
Senegal | 塞内加尔 | SN |
Seychelles | 塞舌尔 | SC |
Sierra Leone | 塞拉利昂 | SL |
Singapore | 新加坡 | SG |
Slovakia | 斯洛伐克 | SK |
Slovenia | 斯洛文尼亚 | SI |
Solomon Is | 所罗门群岛 | SB |
Somali | 索马里 | SO |
South Africa | 南非 | ZA |
Spain | 西班牙 | ES |
Sri Lanka | 斯里兰卡 | LK |
St.Lucia | 圣卢西亚 | LC |
St.Vincent | 圣文森特 | VC |
Sudan | 苏丹 | SD |
Suriname | 苏里南 | SR |
Swaziland | 斯威士兰 | SZ |
Sweden | 瑞典 | SE |
Switzerland | 瑞士 | CH |
Syria | 叙利亚 | SY |
Taiwan | 台湾省 | TW |
Tajikstan | 塔吉克斯坦 | TJ |
Tanzania | 坦桑尼亚 | TZ |
Thailand | 泰国 | TH |
Togo | 多哥 | TG |
Tonga | 汤加 | TO |
Trinidad and Tobago | 特立尼达和多巴哥 | TT |
Tunisia | 突尼斯 | TN |
Turkey | 土耳其 | TR |
Turkmenistan | 土库曼斯坦 | TM |
Uganda | 乌干达 | UG |
Ukraine | 乌克兰 | UA |
United Arab Emirates | 阿拉伯联合酋长国 | AE |
United Kiongdom | 英国 | GB |
United States of America | 美国 | US |
Uruguay | 乌拉圭 | UY |
Uzbekistan | 乌兹别克斯坦 | UZ |
Venezuela | 委内瑞拉 | VE |
Vietnam | 越南 | VN |
Yemen | 也门 | YE |
Yugoslavia | 南斯拉夫 | YU |
Zimbabwe | 津巴布韦 | ZW |
Zaire | 扎伊尔 | ZR |
Zambia | 赞比亚 | ZM |