2016-12-14 5 views
0
'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つの言語コードにマッピングして、1つのファイルに翻訳できる方法はありますか?

答えて

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]);

+0

どうもありがとうです!それは私を助けた! –

+0

このコードに「find」の代わりがありますか? IEで動作していません –

+0

ここでpolyfillを見つけることができます:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find – expelledboy

関連する問題