中国与中南半岛国家多国语言系统开发i18n配置老挝、柬埔寨语言配置

前言

当下中国与中南半岛国家经济合作密切,同时也需要软件系统,多国使用系统需要实现多语言,我们团队最近也接到一个中、老、柬三国的业务软件,需要将软件做成三个国家语言。然后我们网上收i18n的老、柬的语言包命名,全网搜半天没有人发过相关内容,然后我们自己取名搞,这里给大家分享这篇文章也是让后面朋友遇到这小国家语言开发时如果没有统一的命名就可以按我们方式取名,只要效果达到就不要太纠结。

各国语言标识命名

我们在搜到i18n国际化开发的各国语言标识如下,它并不包含所有国家语种,遇到如下之外我们只能自己定义。

**国家地区**            **语言标识**

简体中文(中国)        zh_CN
繁体中文(台湾地区)    zh_TW
繁体中文(香港)        zh_HK
英语(香港)            en_HK
英语(美国)            en_US
英语(英国)            en_GB
英语(全球)            en_WW
英语(加拿大)          en_CA
英语(澳大利亚)        en_AU
英语(爱尔兰)          en_IE
英语(芬兰)            en_FI
芬兰语(芬兰)          fi_FI
英语(丹麦)            en_DK
丹麦语(丹麦)          da_DK
英语(以色列)          en_IL
希伯来语(以色列)       he_IL
英语(南非)            en_ZA
英语(印度)            en_IN
英语(挪威)            en_NO
英语(新加坡)          en_SG
英语(新西兰)          en_NZ
英语(印度尼西亚)      en_ID
英语(菲律宾)          en_PH
英语(泰国)            en_TH
英语(马来西亚)        en_MY
英语(阿拉伯)         en_XA
韩文(韩国)           ko_KR
日语(日本)          ja_JP
荷兰语(荷兰)        nl_NL
荷兰语(比利时)    nl_BE
葡萄牙语(葡萄牙)    pt_PT
葡萄牙语(巴西)    pt_BR
法语(法国)    fr_FR
法语(卢森堡)    fr_LU
法语(瑞士)    fr_CH
法语(比利时)    fr_BE
法语(加拿大)    fr_CA
西班牙语(拉丁美洲)    es_LA
西班牙语(西班牙)    es_ES
西班牙语(阿根廷)    es_AR
西班牙语(美国)    es_US
西班牙语(墨西哥)    es_MX
西班牙语(哥伦比亚)    es_CO
西班牙语(波多黎各)    es_PR
德语(德国)    de_DE
德语(奥地利)    de_AT
德语(瑞士)    de_CH
俄语(俄罗斯)    ru_RU
意大利语(意大利)    it_IT
希腊语(希腊)    el_GR
挪威语(挪威)    no_NO
匈牙利语(匈牙利)    hu_HU
土耳其语(土耳其)    tr_TR
捷克语(捷克共和国)    cs_CZ
斯洛文尼亚语    sl_SL
波兰语(波兰)    pl_PL
瑞典语(瑞典)    sv_SE
西班牙语 (智利)    es_CL

上面没有的我们可以根据世界各国和地区名称代码表(标准代码,国际域名缩写)来命名,如下表:

世界各国和地区名称代码表(标准代码,国际域名缩写)
地区代码国家或地区名称(英文)国家或地区名称(中文)所属洲
AFAfghanistan阿富汗亚洲
ALAlbania阿尔巴尼亚亚洲
ADAndorra安道尔
AOAngola安哥拉非洲
AIAngola安圭拉
AQAntarctica南极洲
AGNtigua and Barbuda安提瓜和巴布达
ARArgentina阿根廷南美洲
AMArmenia亚美尼亚
AWAruba阿鲁巴
AUAustralia澳大利亚大洋洲
ATAustria奥地利欧洲
AZAzerbaijan阿塞拜疆亚洲
AEUnited Arab Emirates阿联酋亚洲
BSBahamas巴哈马北美洲
BHBahrain巴林亚洲
BDBangladesh孟加拉亚洲
BBBarbados巴巴多斯
BYWhite Russia白俄罗斯
BZBelize伯利兹
BEBelgium比利时欧洲
BJBenin贝宁非洲
BMBermuda百慕大北美洲
BTBhutan不丹亚洲
BOBolivia玻利维亚南美洲
BABosnia Hercegovina波黑
BWBotswana博茨瓦纳非洲
BVBouvet Island布维岛
BRBrazil巴西南美洲
BNBrunei Darussalam文莱亚洲
BGBulgaria保加利亚欧洲
BFBurkina Faso布其纳法索
BIBurundi布隆迪非洲
BYByelorussian SSR白俄罗斯
CMCameroon喀麦隆非洲
CACanada加拿大北美洲
CVCape Verde,Republic of佛得角非洲
CFThe Central African Republic中非共和国非洲
CLChile智利南美洲
CNChina中国亚洲
CXChristmas Island圣诞岛
CCCOCOS Islands可可岛
COColombia哥伦比亚南美洲
CHSwitzerland瑞士欧洲
CGCongo刚果非洲
CKCook Island库克群岛大洋洲
CRCosta rica哥斯达黎加北美洲
CILvory Coast象牙海岸
CUCuba古巴北美洲
CYCyprus塞浦路斯亚洲
CZCzech Republic捷克共和国欧洲
DKDenmark丹麦欧洲
DJDjibouti吉布提
DMGominica多明哥
DEGrmany德国欧洲
DODominica多米尼加
DZAlgeria阿尔及利亚非洲
ECEcuador厄瓜多尔南美洲
EGEgypt埃及非洲
EHWest Sahara西撒哈拉
ESSpain西班牙欧洲
EEEstonia爱沙尼亚欧洲
ETEthiopia埃塞俄比亚非洲
FJFiji斐济大洋洲
FKFalkland Islands福克兰群岛
FIFinland芬兰欧洲
FRFrance法国欧洲
FMMicronesia密克罗尼西亚
GAGabon加蓬非洲
GQEquatorial Guinea赤道几内亚非洲
GFFrench Guiana法属圭亚那
GMGambia冈比亚非洲
GEGeorgia格鲁吉亚
GHGhana加纳非洲
GIGibraltar直布罗陀
GRGreece希腊欧洲
GLGreenland格陵兰
GBUnited Kingdom英国欧洲
GDGrenada格林纳达北美洲
GPGuadeloupe瓜德罗普
GUGuam关岛大洋洲
GTGuatemala危地马拉北美洲
GNGuinea几内亚非洲
GWGuinea-Bissau几内亚比绍
GYGuyana圭亚那南美洲
HRCroatia克罗地亚欧洲
HTHaiti海地北美洲
HNHonduras洪都拉斯北美洲
HKChinese Hong Kong中国香港亚洲
HUHungary匈牙利欧洲
ISIceland冰岛欧洲
INIndia印度亚洲
IDIndonesia印度尼西亚亚洲
IRIran伊朗亚洲
IQIraq伊拉克亚洲
IOBritish Indian Ocean Territory英联邦的印度洋领域
IEIreland爱尔兰欧洲
ILIsrael以色列亚洲
ITItaly意大利欧洲
JMJamaica牙买加北美洲
JPJapan日本亚洲
JOJordan约旦亚洲
KZKazakstan哈萨克斯坦亚洲
KEKenya肯尼亚非洲
KIKiribati基里巴斯
KPNorth Korea朝鲜亚洲
KRKorea韩国亚洲
KHCambodia柬埔寨亚洲
KMComoros科摩罗
KWkuwait科威特亚洲
KGKyrgyzstan吉尔吉斯斯坦
KYCayman Islands开曼群岛
LALaos老挝亚洲
LKSri Lanka斯里兰卡
LVLatvia拉托维亚欧洲
LBLebanon黎巴嫩亚洲
LSLesotho莱索托
LRLiberia利比里亚
LYLibya利比亚非洲
LILiechtenstein列支敦士登
LTLithuania立陶宛欧洲
LULuxembourg卢森堡亚洲
LCSt. Lucia圣卢西亚
MOChinese Macao中国澳门亚洲
MGMalagasy马达加斯加非洲
MWMalawi马拉维非洲
MYMalaysia马来西亚亚洲
MVMaldives马尔代夫亚洲
MLMali马里
MTMalta马尔他(马耳他)欧洲
MHMarshall Islands马绍尔群岛
MQMauritania   
MRMauritania毛里塔尼亚非洲
MUMauritius毛里求斯非洲
MXMexico墨西哥北美洲
MDMoldova,Republic of摩尔多瓦欧洲
MCMonaco摩纳哥欧洲
MNMongolia蒙古亚洲
MSMontserrat   
MAMorocco摩洛哥非洲
MZMozambique莫桑比克非洲
MMBurma缅甸
MPNorthern Nariana Islands   
NANamibia纳米比亚非洲
NRNaura瑙鲁
NPNepal尼泊尔亚洲
NLNetherlands荷兰欧洲
NTNeutral Zone   
NCNew Caledonia新喀里多尼亚
NZNew Zealand新西兰大洋洲
NINicaragua尼加拉瓜北美洲
NENiger尼日尔
NGNigeria尼日利亚非洲
NUNiue纽埃
NFNorfolk Island    
NONorway挪威欧洲
OMOman阿曼亚洲
PKPakistan巴基斯坦亚洲
PFFrench Polynesia法属玻里尼西亚
PWPalau帕劳
PAPanama巴拿马北美洲
PGPapua,Territory of巴布亚新几内亚大洋洲
PYParaguay巴拉圭南美洲
PEPeru秘鲁南美洲
PHPhilippines菲律宾亚洲
PNPitcairn Islands皮特开恩群岛
PLPoland波兰欧洲
PTPortugal葡萄牙欧洲
PRPuerto Rico波多黎各(美)
QAQatar卡塔尔亚洲
RORomania罗马尼亚欧洲
RURussia俄罗斯联邦欧洲
RWRwanda卢旺达非洲
SVEl Salvador萨尔瓦多
SHSt.Helena圣赫勒那
SMSan Marino圣马力诺欧洲
STSao Tome and Principe圣多美与普林西比
SASaudi Arabia沙特阿拉伯亚洲
SNSenegal塞内加尔非洲
SCSeychelles塞舌尔
SLSierra leone塞拉利昂
SGSingapore新加坡亚洲
SKSlovakia斯洛伐克欧洲
SISlovene斯洛文尼亚
SBSolomon Islands所罗门群岛
SOSomali索马里非洲
SDSudan苏丹非洲
SRSurinam苏里南
SZSwaziland斯威士兰
SESweden瑞典欧洲
SYSyria叙利亚亚洲
SUUSSR(formerly)苏联(前)
TDChad乍得
TFFrench Southern Territoties法属南方领土
TWChinese Taiwan中国台湾亚洲
TJTsjikistan塔吉克斯坦亚洲
TZTanzania坦桑尼亚非洲
THThailand泰国亚洲
TGTogo多哥
TKTokela托克劳
TOTonga汤加大洋洲
TTTrinidad and Tobago特立尼达和多巴哥
TNTunisia突尼斯非洲
TRTurkey土尔其
TPEast Timor东帝
TMTurkomanstan土库曼斯坦亚洲
TCTurks and Caicos Islands    
TVTuvalu图瓦卢    
UGUganda乌干达非洲
UAUkiain乌克兰欧洲
UKEngland英国(正式代码为GB)欧洲
USAmerica美国北美洲
UM   美国边远小岛
UYuruguay乌拉圭南美洲
UZUzbekstan乌兹别克斯坦
VAVatican梵蒂冈(罗马教庭)亚洲
VEVenezuela委内瑞拉北美洲
VNVietnam越南亚洲
VGVirgin Islands(British)不列颠岛(英)
VIVigin Islands(U.S.)不列颠岛(美)
WSWestern Samoa西萨摩亚
YEYemen也门亚洲
YUYugoslavia南斯拉夫欧洲
ZASouth Africa南非非洲
ZRZaire扎伊尔非洲
ZMZambia赞比亚非洲
ZWZimbabwe津巴布韦非洲

 配置i18n文件

编写i18n代码,在index.ts中添加老挝语、柬埔寨语,如下:

import { createI18n } from 'vue-i18n';
import en from './en-US';
import cn from './zh-CN';
import la from './LA';//老挝语
import kh from './KH';//柬埔寨语

export const LOCALE_OPTIONS = [
  { label: '中文', value: 'zh-CN' },
  { label: 'English', value: 'en-US' },
  { label: 'ລາວ', value: 'LA' },//老挝语
  { label: 'កម្ពុជា។', value: 'KH' },//柬埔寨语
];
const defaultLocale = localStorage.getItem('arco-locale') || 'zh-CN';

const i18n = createI18n({
  locale: defaultLocale,
  fallbackLocale: 'zh-CN',//默认中文
  allowComposition: true,
  messages: {
    'en-US': en,
    'zh-CN': cn,
    'LA': la,
    'KH': kh,
  },
});

export default i18n;

其中:LA和KH分别是老挝语和柬埔寨语文件,即在src/locale下添加LA.ts编写老挝语、KH.ts编写柬埔寨语,如下:

老挝语:KH.ts

//老挝
//自动加载
const autoLocle = import.meta.glob('@/views/**/locale/LA.ts', {
  eager: true,
});
function formatModules(_modules: any, result: {}) {
  Object.keys(_modules).forEach((key) => {
    const defaultModule = _modules[key].default;
    if (!defaultModule) return;
    result=Object.assign({},result,defaultModule);
  });
  return result;
}
export default {
  'navbar.docs': 'ສູນເອກະສານ',
  'navbar.action.locale': 'ປ່ຽນເປັນພາສາຈີນ',
  'searchTable.operation.create': 'ໃຫມ່',
  'searchTable.operation.export': 'ສົ່ງອອກ',
  'searchTable.form.reset': 'ຕັ້ງຄືນໃຫມ່',
  'footer.copyright': 'ສະຫງວນໄວ້',
  'system': 'ການຄຸ້ມຄອງລະບົບ',
  'datacenter': 'ສູນຂໍ້ມູນ',
  ...formatModules(autoLocle,{})
};

柬埔寨语:KH.ts

//柬埔寨语
//自动加载
const autoLocle = import.meta.glob('@/views/**/locale/KH.ts', {
  eager: true,
});
function formatModules(_modules: any, result: {}) {
  Object.keys(_modules).forEach((key) => {
    const defaultModule = _modules[key].default;
    if (!defaultModule) return;
    result=Object.assign({},result,defaultModule);
  });
  return result;
}
export default {
  'navbar.docs': 'មជ្ឈមណ្ឌលឯកសារ',
  'navbar.action.locale': 'ប្តូរទៅជាភាសាចិន',
  'searchTable.operation.create': 'ថ្មី។',
  'searchTable.operation.export': 'នាំចេញ',
  'searchTable.form.reset': 'កំណត់ឡើងវិញ',
  'footer.copyright': 'រក្សាសិទ្ធិគ្រប់យ៉ាង',
  'system': 'ការគ្រប់គ្រងប្រព័ន្ធ',
  'datacenter': 'មជ្ឈមណ្ឌលទិន្នន័យ',
  ...formatModules(autoLocle,{})
};

各个页面locale添加语言文件

还有在页面开发时views下面每个模块的locale目录下添加各自LA.ts、KH.ts、zh-CN.ts的语言文件,注意views中的locale下面翻译文件值自己加载到i18n的,例如:登录login我们添加各自语言翻译如下:

  • 中文zh-CN.ts
export default {
  'login.form.tabacount': '账号登录',
  'login.form.tabmobile': '手机号登',
  'login.form.tabemail': '邮箱登录',
  'login.form.tabacountmobile': '账号/手机号登录',
  'login.form.userName.errMsg': '用户名不能为空',
  'login.form.password.errMsg': '密码不能为空',
  'login.form.login.errMsg': '登录出错,轻刷新重试',
  'login.form.login.success': '欢迎回来',
  'login.form.userName.placeholder': '用户名或邮箱',
  'login.form.password.placeholder': '密码',
  'login.form.rememberPassword': '记住密码',
  'login.form.forgetPassword': '忘记密码',
  'login.form.login': '立即登录',
  'login.form.register': '注册账号',
  'login.form.getpemail.placeholder': '账号绑定的邮箱',
  'login.form.verification.placeholder': '输入验证码(点验数字图刷新)',
  'login.form.email.errMsg': '邮箱不能为空',
  'login.form.verification.errMsg': '请输入验证码',
  'login.form.verification.expired': '已过期,请刷新',
  'login.form.other': '其他登录方式',
  'login.form.clickverification': '计算太难可以点击这里获取新的验证数据',
};
  • 老挝语KH.ts
export default {
  'login.form.tabacount': 'ការចូលគណនី',
  'login.form.tabmobile': 'ចូលលេខទូរស័ព្ទ',
  'login.form.tabemail': 'ចូលអ៊ីមែល',
  'login.form.tabacountmobile': 'ចូលដោយប្រើគណនី/លេខទូរស័ព្ទចល័ត',
  'login.form.userName.errMsg': 'ឈ្មោះអ្នកប្រើមិនអាចទទេបានទេ។',
  'login.form.password.errMsg': 'ពាក្យសម្ងាត់មិនអាចទទេបានទេ។',
  'login.form.login.errMsg': 'មានបញ្ហាក្នុងការចូល ធ្វើឱ្យស្រស់ ហើយព្យាយាមម្តងទៀត',
  'login.form.login.success': 'ស្វាគមន៍ការត្រឡប់មកវិញ',
  'login.form.userName.placeholder': 'ឈ្មោះអ្នកប្រើប្រាស់ ឬអ៊ីមែល',
  'login.form.password.placeholder': 'ពាក្យសម្ងាត់',
  'login.form.rememberPassword': 'ចងចាំពាក្យសម្ងាត់',
  'login.form.forgetPassword': 'ភ្លេចពាក្យសម្ងាត់',
  'login.form.login': 'ចូលឥឡូវនេះ',
  'login.form.register': 'ចុះឈ្មោះគណនីមួយ។',
  'login.form.getpemail.placeholder': 'អាសយដ្ឋានអ៊ីមែលភ្ជាប់ទៅនឹងគណនី',
  'login.form.verification.placeholder': 'បញ្ចូលលេខកូដផ្ទៀងផ្ទាត់ (ចុចដើម្បីធ្វើឱ្យរូបភាពលេខផ្ទៀងផ្ទាត់ឡើងវិញ)',
  'login.form.email.errMsg': 'អ៊ីមែលមិនអាចទទេបានទេ។',
  'login.form.verification.errMsg': 'សូមបញ្ចូលលេខកូដផ្ទៀងផ្ទាត់',
  'login.form.verification.expired': 'ផុត​កំណត់ សូម​ផ្ទុក​ឡើង​វិញ។',
  'login.form.other': 'វិធីសាស្រ្តចូលផ្សេងទៀត។',
  'login.form.clickverification': 'ការគណនាគឺពិបាកពេក អ្នកអាចចុចទីនេះដើម្បីទទួលបានទិន្នន័យផ្ទៀងផ្ទាត់ថ្មី។',
};
  • 柬埔寨语KH.ts
export default {
    'login.form.tabacount': 'ເຂົ້າສູ່ລະບົບບັນຊີ',
    'login.form.tabmobile': 'ເຂົ້າສູ່ລະບົບໂທລະສັບມືຖື',
    'login.form.tabemail': 'ເຂົ້າສູ່ລະບົບອີເມວ',
    'login.form.tabacountmobile': 'ເຂົ້າສູ່ລະບົບບັນຊີ/ເບີໂທລະສັບມືຖື',
    'login.form.userName.errMsg': 'ຊື່ຜູ້ໃຊ້ບໍ່ສາມາດຫວ່າງເປົ່າໄດ້',
    'login.form.password.errMsg': 'ລະຫັດຜ່ານບໍ່ສາມາດຫວ່າງເປົ່າໄດ້',
    'login.form.login.errMsg': 'ມີຂໍ້ຜິດພາດໃນການເຂົ້າສູ່ລະບົບ, ກະລຸນາໂຫຼດຫນ້າ',
    'login.form.login.success': 'ຍິນດີຕ້ອນຮັບກັບ',
    'login.form.userName.placeholder': 'ຊື່ຜູ້ໃຊ້ຫຼືອີເມວ',
    'login.form.password.placeholder': 'ລະຫັດຜ່ານ',
    'login.form.rememberPassword': 'ຈື່ລະຫັດຜ່ານ',
    'login.form.forgetPassword': 'ລືມລະຫັດຜ່ານ',
    'login.form.login': 'ເຂົ້າສູ່ລະບົບດຽວນີ້',
    'login.form.register': 'ລົງທະບຽນບັນຊີ',
    'login.form.getpemail.placeholder': 'ທີ່ຢູ່ອີເມວຜູກມັດບັນຊີ',
    'login.form.verification.placeholder': 'ໃສ່ລະຫັດຢືນຢັນ (ກວດເບິ່ງແຜນທີ່ດິຈິຕອນເພື່ອໂຫຼດຫນ້າຈໍຄືນ)',
    'login.form.email.errMsg': 'ກ່ອງຈົດ ໝາຍ ບໍ່ສາມາດຫວ່າງ',
    'login.form.verification.errMsg': 'ກະລຸນາໃສ່ລະຫັດຢືນຢັນ',
    'login.form.verification.expired': 'ໝົດອາຍຸແລ້ວ, ກະລຸນາໂຫຼດຄືນ',
    'login.form.other': 'ວິທີການເຂົ້າສູ່ລະບົບອື່ນໆ',
    'login.form.clickverification': 'ການຄິດໄລ່ແມ່ນຍາກເກີນໄປ, ທ່ານສາມາດຄລິກທີ່ນີ້ ສຳ ລັບຂໍ້ມູນການຢັ້ງຢືນ ໃໝ່',
  };
  

我们看一下效果

  • 简体中文

  • 老挝语

  • 柬埔寨语

好了,效果就是如上截图。已经符合我们多国语言需求了。

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值