有没有办法将许多语言代码映射到单个语言代码,以便我可以在一个文件中进行翻译?

时间:2016-12-14 13:31:38

标签: angularjs locale angular-translate

'en-*':'en_US',
'es-*':'es_ES', 
'pt-*':'pt_PT',
'fr-*':'fr_FR',
'de-*':'de_DE',
'ja-*':'ja_JP',
'it-*':'it_IT',
'*':'en_US'

有没有办法将en-*映射到en_US?我可以获得任何浏览器区域设置,例如en-usen-au等。所以我需要映射到此文件en_US。如果有人知道请帮助。提前谢谢。

1 个答案:

答案 0 :(得分:1)

正则表达是你的朋友:)

var possible = [
  'en-us',
  'en-au',
  'fr-sb',
  'de-le',
  'it-nx'
]; // add to test

var locale = possible[Math.floor(Math.random() * possible.length)];

var routes = {
  'en-*':'en_US',
  'fr-*':'fr_FR',
  'de-*':'de_DE',
  '*':'en_US'
};

var match = (route) => new RegExp('^' + route.replace('*', '.*')).test(locale)
var route = Object.keys(routes).find(match);

console.log(locale, 'routed to', routes[route]);