如何将语言更改为多个文件,而不是i18next中的一个文件
How do I change the language to multiple files instead of one in i18next?
我正在使用带有localstorage的i18next来更改我的网站语言(带有标记的传单地图)。我把所有的语言都放在一个名为lang.js的文件中。我想把它分成多个文件,每个文件对应一种语言。我该怎么做?
github上语言文件的链接:https://github.com/hurtworldmap/hurtworldmap.github.io/blob/master/raw/lang.js
我的功能:
$(document).ready(function() {
var language = "en";
if (localStorage.getItem("language") != null)
language = localStorage.getItem("language");
i18n.init({
lng: language,
resStore: resources,
fallbackLng: "en"
}, function(o) {
$(document).i18n()
}), $(".lang").click(function() {
var o = $(this).attr("data-lang");
localStorage.setItem("language", o);
i18n.init({
lng: o
}, function(o) {
$(document).i18n()
})
})
});
语言示例(在同一文件中):
"ru": {
"translation": {
"locations": "Локации",
"showlocations": "Показать локации",
"animals": "Животные",
"shigi": "Шиги",
"shigiwolf": "Дикий Шиги",
"shigiforest": "Лесной Шиги",
"shigiarctic": "Арктический Шиги",
"bor": "Кабан",
"radbor": "Радиоактивный Кабан",
"tokar": "Токар",
"tokarblue": "Синий Токар",
"tokarparrot": "Токар-попугай",
"sasquatch": "Снежный",
"yeti": "Йети",
"plants": "Растения",
"owrong": "Апельсин",
"pitcherplant": "Кувшинка",
"succulentseeds": "семена Succulent",
"items": "Вещи",
"itemflint": "Кремень",
"itemwood": "Дерево",
"lootcrate": "Ящик",
"resources": "Ресурсы",
"woodlog": "Бревно",
"coal": "Уголь",
"limestone": "Известняк/Глина",
"flint": "Кремень/Камень",
"deadtree": "Мертвое дерево",
"ores": "Руды",
"ironore": "Железная руда",
"titranium": "Титраниумная руда",
"mondinium": "Мондиниумная руда",
"ultranium": "Ультраниумная руда",
"largerock": "Большой камень",
"valley" : "Valley",
"fortress": "Fortress",
"transit": "Transit",
"boonies": "Boonies",
"crossroad": "Crossroad",
"airfield": "Airfield",
"carrier": "Carrier",
"dome": "Dome",
"arch": "Arch",
"created": "Создано:",
"names": "RogerHN и LuisMika",
"legal": "Hurtworld и логотипы Hurtworld являются тварными знаками Bankroll Studios",
"website": "Официальный сайт игры",
"welcome": "Это первая версия карты.",
"welcome2": "Если вы нашли баг, то пожалуйста пришли его в наш пост на ",
"welcome3": "Reddit'e или в группу ВК.",
"settings": "настройки",
"languagechange": "Изменить язык",
"translationbr": "Португальский Бразильский перевод RogerHN",
"translationru": "Перевод на русский от Roofy",
"translationde": "Перевод на Немецкий от Valixx",
"translationcn": "Перевод на китайский от Smoke6",
"translationpl": "Польский перевод от Magiczna Huśtawka",
"translationro": "Румынский перевод от Blaconix",
"translationtr": "турецкий перевод от Vinerra",
"translationit": "Итальянский перевод от CHC",
"translationes": "Испанский перевод Yoje",
"version": "версия"
}
}
不确定您是否仍然需要答案,所以我将把它放在这里,以防其他人面临类似的问题。
我在类似情况下所做的是:
$(document).ready(function() {
var language = "en";
if (localStorage.getItem("language") != null)
language = localStorage.getItem("language");
i18n.init({
lng: language,
resGetPath: '/languages/__lng__.min.json',
fallbackLng: "en"
}, function(o) {
$(document).i18n()
}), $(".lang").click(function() {
var o = $(this).attr("data-lang");
localStorage.setItem("language", o);
i18n.init({
lng: o
}, function(o) {
$(document).i18n()
})
})
});
这为您提供了每种语言的文件,您可以从文件中删除语言密钥:
{
"translation": {
"help": "Help Me!
}
}
如果你有多个名称空间,你也可以使用为每个名称空间使用一个文件
resGetPath: "/languages/__lng__/__ns__.min.json"
然后,文件/languages/en/translation.min.json
应该不包含命名空间的密钥,如下所示:
{
"help": "Help Me!
}
相关文章:
- 如何播放部分音频文件
- 从桌面读取python文件时高亮显示代码
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何使用WCF服务和javascript表单post上传.doc文件
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 如何在生成下载文件时显示加载动画
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 正在SharePoint 2013母版页中添加JQuery移动文件
- 如何在php文件中获取$.post-ajax传递的值
- 直接下载文件,而不是从window.open(url)
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 使用压缩的JavaScript文件(不是运行时压缩)
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- Javascript运行php文件,然后下载文件
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- 如何将语言更改为多个文件,而不是i18next中的一个文件
- I18next + wordpress - /locale文件夹的自定义路径