gpt4 book ai didi

javascript - 如何将语言更改为多个文件而不是 i18next 中的一个文件?

转载 作者:行者123 更新时间:2023-11-29 10:35:59 26 4
gpt4 key购买 nike

我正在使用 i18next 和 localstorage 来更改我网站的语言(带有标记的传单 map )。我将所有语言都放在一个名为 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!
}

关于javascript - 如何将语言更改为多个文件而不是 i18next 中的一个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36253578/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com