2017-06-15 13 views
1

我的問題其實很簡單,但我無法弄清楚,因爲我在網絡編程方面不太好。HTML兩種語言輸入標籤,它可能嗎?

是否有可能爲.html頁面設置MultiLanguage標籤/輸入值?

如果默認的瀏覽器語言是意大利語,我需要顯示一些文本,如果瀏覽器是使用其他語言,我需要顯示一些文本。 例如我需要自動從Ciao切換到Hello。

有沒有辦法做到這一點?也許我可以用Javascript做到這一點......

謝謝大家。

+0

你可以做很多..很多JS/jQuery或者你可以創建兩個實例並在兩個域上託管這些站點 – ThisGuyHasTwoThumbs

+1

這被稱爲「國際化」(或者有時候簡稱爲i18n)。它實際上是一個完整的編碼子專業;有許多不同的方式來處理它 - 尋找這些條款應該讓你開始。 –

+0

[什麼是內容語言和接受語言?](https://stackoverflow.com/questions/6157485/content-language-and-accept-language) – Quentin

回答

1

有很多很多不同的方法可以解決這個問題,我建議你花點時間搜索谷歌並尋找最適合你需求的方式。

我會給你一個我喜歡使用的例子,但請記住,我發佈的信息只是多種可能方法中的一種。

首先,您必須獲取用戶的語言。要做到這一點,您可以使用地理位置,並根據用戶所在的位置使用語言(請參閱this回答一個好方法,或搜索谷歌並使用其他方法之一),也可以從用戶的瀏覽器中獲取它(請參閱this有關這樣做的信息)。

一旦你有了,它只是一個向用戶顯示本地化內容的問題。我的首選方法如下,它結合成一個單一的文件中的所有變體(這樣利用多種不同的HTML文件的替代方式):

首先,你有你的HTML:

<body> 
    <h2> 
     <span class="lang lang_en">This is in english!</span> 
     <span class="lang lang_it">Questo è in italiano!</span> 
    </h2> 
</body> 

的每個版本文本存在於其自己的範圍內。然後在你的CSS隱藏所有span S:

.lang{ 
    display:none; 
} 

最後,在JS,我們只顯示包含在語言文字的span小號,我們要顯示:

var lang = ...; //language 
switch (lang) { 
    case "en": 
     $(".lang_en").css("display", "inline"); 
     break; 
    case "it": 
     $(".lang_it").css("display", "inline"); 
     break; 
    default: 
     // Set your default language here 
} 

當然無論這種方法是否是您的不錯選擇取決於您的需求。我喜歡它,因爲它不依賴於JQuery之外的任何框架,並且很容易理解。當然,根據您的需求,它甚至可能會非常低效(非常非常大的網頁就是這種情況)。這取決於你自己決定。

-1

如果你想獲得什麼是瀏覽器語言,你可以得到下面的代碼:

navigator.language || navigator.userLanguage 

否則,只需要創建一個下拉列表或東西,平變化只改變一個變量到localStorage的:

localStorage.setItem('language', languageValue) 

然後檢查每次:

localStorage.getItem('language') 

^h因爲你只需要將js /重定向到保存的語言中的不同頁面,就可以更改所有內容。