我们希望我们所有的静态资源(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