2011-06-30 5 views
1

これは非常に初心者の質問ですが、私はjavascriptについてはわかりませんが、私はスニペットを実装したいと考えています。javascript substr window.location.href

元のコードは次のとおりです。私のブラウザの言語が語it_ITにある

 

var langcodes=["it", "es"]; 
var langCode = navigator.language || navigator.systemLanguage; 
var lang = langCode.toLowerCase(); 
lang = lang.substr(0,2); 
var dest = window.location.href; 
for (i=langcodes.length-1;i >= 0; i--){ 
    if (lang==langcodes[i]){ 
     dest = dest.substr(0,dest.lastIndexOf('.')) + '-' + lang.substr(0,2) + dest.substr(dest.lastIndexOf('.')); 
     window.location.replace ?window.location.replace(dest) :window.location=dest; 
    } 
} 

場合、私は新しいURLだったたい

http://www.mysite.com/test-it.html

http://www.mysite.com/test.html

に置き換えられます。

http://www.mysite.com/it/test.html

私は運がないいくつかの方法を試しました。

何か助けていただければ幸いです。

マックス

+1

一般的な方法は、サーバー側で行うことです。各ブラウザは、その言語を簡単なヘッダで送信します。「Accept-Language:en-US、en; q = 0.8、ru; q = 0.6、lt; q = 0.4」ページ。 – bezmax

答えて

1

これを試してみてください。 ..

dest = dest.substr(0,dest.lastIndexOf('/')) + '/' + lang.substr(0,2) + dest.substr(dest.lastIndexOf('/')); 
0

あなたが行うことができます:www.google.itでテストし、それが(出力www.google.it/it/)をwoked、

if (lang==langcodes[i]){ 
    dest = dest.substr(0,dest.lastIndexOf('/') +1) + lang.substr(0,2) + dest.substr(dest.lastIndexOf('/')); 
    window.location.replace ?window.location.replace(dest) :window.location=dest; 
} 

は大丈夫

0

これを試してみてください:

var langcodes=["it", "es"]; 
var langCode = navigator.language || navigator.systemLanguage; 
var lang = langCode.toLowerCase(); 
lang = lang.substr(0,2); 
var dest = window.location.href; 

dest = dest.substr(0,dest.lastIndexOf('.')) + '-' + lang + dest.substr(dest.lastIndexOf('.')); 
window.location = dest; 
関連する問題