Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在单页应用程序中提供多语言支持?_Javascript_Single Page Application_Multilingual - Fatal编程技术网

Javascript 如何在单页应用程序中提供多语言支持?

Javascript 如何在单页应用程序中提供多语言支持?,javascript,single-page-application,multilingual,Javascript,Single Page Application,Multilingual,我们希望所有的静态资源HTML、CSS、JS都是静态页面,而不是在服务器上呈现,但遇到了一些问题。为了支持多种语言,我们必须在代码中嵌入不同语言的上下文。因此,在开发过程中,我们必须在每次文件更改时将源文件编译为多个副本。 随着项目越来越大,编译可能会非常慢,项目也很难管理 在单页应用程序中是否有支持多种语言的最佳实践?我认为使用服务器端脚本来响应HTML/CSS/JS文件是一种很好的方法 一个小例子 index.php myScript.js.php 专业人士 不会影响页面加载速度、请求大小、

我们希望所有的静态资源HTML、CSS、JS都是静态页面,而不是在服务器上呈现,但遇到了一些问题。为了支持多种语言,我们必须在代码中嵌入不同语言的上下文。因此,在开发过程中,我们必须在每次文件更改时将源文件编译为多个副本。 随着项目越来越大,编译可能会非常慢,项目也很难管理


在单页应用程序中是否有支持多种语言的最佳实践?

我认为使用服务器端脚本来响应HTML/CSS/JS文件是一种很好的方法

一个小例子

index.php

myScript.js.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>
<?php
    include_once 'lang.txt.php';
    $lang = isset($_GET['lang']) ? $_GET['lang'] : 'en';
?>
function showMessage() {
    alert('<?=$getTextByLanguage[$lang]['welcome_message']?>');
}