我们希望所有静态资源(HTML,CSS,JS)都是静态页面(而不是在服务器上呈现),但遇到了问题。为了支持多语言,我们必须在代码中嵌入不同语言的上下文。因此,在开发过程中,我们必须在每次文件更改时将源文件编译为多个副本。 随着项目变得越来越大,编译可能会非常缓慢,并且项目难以管理。
是否有在单页面应用程序中支持多语言的最佳实践?
答案 0 :(得分:0)
我认为使用服务器端脚本来响应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']?>');
}
<强>赞成强>
<强>缺点强>
这只是我个人的想法,我认为人们已经为此创造了一些设计模式。