我需要創建一個網頁作爲我的大學學位項目,它必須支持至少2種語言。多語言網站(HTML/javascript)
所以我想創建一個XML文件,並確定所有文本字段值對於每一種語言,這樣的事情:
<Login-en>
<login-header-text>Login</login-header-text>
<username-text>Username:</username-text>
<password-text>Password:</password-text>
<remember-me-text>Remember me</remember-me-text>
</Login-en>
然後在一個小的JavaScript的HTML模板底部加載XML文件環路節點和替換HTML的內容,這樣
<div id="container">
<form name="loginForm" id="loginForm" onsubmit="return validate();" method="post">
<div class="login" id="login-header-text"></div>
<div class="username-text" id="username-text"></div>
<div class="password-text" id="password-text"></div>
<div class="username-field" id="username-field-div">
<input type="text" name="username" id="usernameInput" value="" />
</div>
<div class="password-field" id="password-field-div">
<input type="password" name="password" id="passwordInput" value=""/>
</div>
<div class="remember-checkbox">
<input type="checkbox" name="remember-me" id="remember-me" />
<label for="remember-me" id="remember-me-text"></label>
</div>
<input type="submit" name="submit" value="" />
</form>
<script type="text/javascript">
xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET",'language/lang.xml',false);
xmlhttp.send();
xmlDoc = xmlhttp.responseXML;
var selectedLanguageElements = xmlDoc.getElementsByTagName("Login-" + "en")[0].childNodes;
for(var i=0;i<selectedLanguageElements.length;i++)
{
if(selectedLanguageElements[i].nodeType == Node.ELEMENT_NODE) {
document.getElementById(selectedLanguageElements[i].nodeName).innerHTML = selectedLanguageElements[i].firstChild.nodeValue;
}
}
這是夠好還是有一些更優雅的方式呢?
謝謝你的任何建議。
我會定義兩種語言是什麼意思,如果Javascript計數和HTML沒有,那麼我會說XML也不應該算作一種語言。 –
http://stackoverflow.com/questions/228835/best-practice-javascript-and-multilanguage – Drone
這樣做不是很好,因爲很多搜索引擎都不接受js轉換。所以就像你的網站是空的。在服務器網站上進行翻譯(使用php或其他更現代的東西,比如node.js)。使用{translate12312321321}之類的一些鉤子,並在輸出之前將其替換爲html蒸汽 – Pete