根据语言首选项设置提供语言文件
Serving a language file depending on language preference settings
在我的ember应用程序中,我支持不同的语言。我是这样做的:
这是index.html
:的一部分
<script src="scripts/vendor/ember.js"></script>
<script src="scripts/vendor/ember-i18n.js"></script>
...
<script>window.mynamespace = {};</script>
<script src="scripts/languages/en.js"></script>
<script src="scripts/ember_application.js"></script>
在我的languages/es.js
中,我按照member-i18n:的预期配置了一个翻译对象
var lang = {
key1 : 'Translation1',
...
};
window.mynamespace.lang = lang;
现在在我的Ember应用程序中,我可以做:
Ember.I18n.translations = window.mynamespace.lang;
var App = Ember.Application.createWithMixins({...});
我有三个问题:
- 有没有其他提供多种语言页面的方法?具体来说,我不太喜欢使用
window.mynamespace
,但在创建我的ember应用程序之前,我不知道如何共享这些设置 - 如何根据浏览器中的语言首选项设置来提供不同的语言文件,例如
scripts/languages/es.js
(在HTTP请求中混合) - 这一点更难:我如何根据数据库设置(属于我的应用程序的用户配置文件)提供不同的语言文件?此设置将覆盖HTTP请求中的"语言首选项设置"
我这样做的方法是保留几个单独的语言文件,找出浏览器的语言设置,然后加载适当的文件。这是我正在使用的功能(很可能不是完美的,但它能达到你的预期):
function loadLanguage() {
"use strict";
if (window.navigator.language) {
LocalLanguage = window.navigator.language;
} else if (window.navigator.userLanguage) {
LocalLanguage = window.navigator.userLanguage;
} else {
LocalLanguage = "en";
}
var fileref = document.createElement('script');
fileref.setAttribute("type", "text/javascript");
switch (LocalLanguage) {
case "cs-CZ":
case "cs":
LocalLanguage = "cs";
fileref.setAttribute("src", "Language/cz-CZ.js");
document.getElementsByTagName("head")[0].appendChild(fileref);
break;
default:
LocalLanguage = "";
fileref.setAttribute("src", "Language/en-EN.js");
document.getElementsByTagName("head")[0].appendChild(fileref);
break;
}
}
LocalLanguage是一个全局变量,我使用它来快速计算语言设置,而不考虑使用的浏览器。
问题3:至于根据数据库中的设置提供不同的文件,实际上这听起来相当简单——在代码中,您必须决定要使用哪个本地化。只需检查是否有用户定义的本地化(将其存储在某个地方,或者最初将语言首选项设置为"none"或数据库中的其他内容,然后检查用户是否更改了这些内容),如果用户定义了本地化,只需跳过检查浏览器语言设置的整个过程,只需获取数据库中设置的值。
相关文章:
- 下载所选语言的pdf文件
- 使用静态文件加载器进行角度翻译默认语言
- 如何将语言更改为多个文件,而不是i18next中的一个文件
- 是否可以在不使用任何 severside 脚本语言的情况下将图像上传到服务器文件夹
- 如何获取语言模型JS文件
- 我可以使用什么语言从 HTML 页面读取目录和文件
- 如何在没有 ajax 调用或服务器端语言的情况下包含 HTML/文本文件
- Node.js 不是文件上传(以及所有基于事件循环的语言)的好选择 - 这是真的
- 导入csv文件并在引导程序网站中显示数据需要什么语言
- 根据语言首选项设置提供语言文件
- 用PHP或任何其他语言上传巨大的文件
- 替换JS语言文件会加载旧值
- 当浏览器解析一个PHP文件(包含JavaScript)时,首先解析的是哪种语言,PHP还是JavaScript
- 多语言网站-是否只有通过保存多语言文件或数据库才能实现
- 如何定义CKEditor用于搜索配置/语言文件的路径
- 使用语言文件填充“ok”;按钮的AlertDialog在Android使用钛
- 在NodeJS中处理语言文件的最佳方式是什么?
- 如何在不同的语言文件中定义与语言相关的内容(l18n)
- 如何在不使用语言文件的情况下更改data-i18n中的特定值
- 添加自定义语言文件到CKEditor