我們希望我們所有的靜態資源(HTML,CSS,JS)都是靜態頁面(而不是在服務器上呈現),但遇到問題。爲了支持多種語言,我們必須在代碼中嵌入不同語言的上下文。因此,在開發過程中,我們必須在每次更改文件時將源文件編譯爲多個副本。 隨着項目越來越大,編制速度可能相當緩慢,項目難以管理。如何在單頁面應用程序中提供多語言支持?
在單頁面應用程序中是否支持多語言的最佳做法?
我們希望我們所有的靜態資源(HTML,CSS,JS)都是靜態頁面(而不是在服務器上呈現),但遇到問題。爲了支持多種語言,我們必須在代碼中嵌入不同語言的上下文。因此,在開發過程中,我們必須在每次更改文件時將源文件編譯爲多個副本。 隨着項目越來越大,編制速度可能相當緩慢,項目難以管理。如何在單頁面應用程序中提供多語言支持?
在單頁面應用程序中是否支持多語言的最佳做法?
我覺得使用服務器端腳本來響應HTML/CSS/JS文件是很好的方法。
一個小例子
的index.php
<?php
include_once 'lang.txt.php'; // Language dictionary file
$lang = isset($_GET['lang']) ? $_GET['lang'] : 'en'; // Default is English
?>
<!-- Include JS/CSS -->
<script src="js/myScript.js.php?lang=<?=$lang?>"/>
<link href="css/style.css.php?lang=<?=$lang?>" rel="stylesheet"/>
<!-- Your HTML -->
<div class="welcome-div">
<!-- echo text base on $lang variable -->
You are viewing this page in <?=$getTextByLanguage[$lang]['welcome_message']?>
<script>
showMessage();
</script>
</div>
myScript.js.php
<?php
include_once 'lang.txt.php';
$lang = isset($_GET['lang']) ? $_GET['lang'] : 'en';
?>
function showMessage() {
alert('<?=$getTextByLanguage[$lang]['welcome_message']?>');
}
優點
缺點
這只是我個人的想法,我認爲人們已經對此創造了一些設計模式。
東西如果我們可以在服務器端做這樣的事情就簡單多了。但是當他們決定在客戶端時,我們必須處理路由和封裝,甚至設置開發環境可能會很複雜。 – jiyinyiyong
檢查我的最新問題,我得到了一些很好的答案這個http://stackoverflow.com/questions/21896847/dynamically-generate-javascript-in-php-or-do-ajax-for-multilanguage-interface – user3256623