История изменений
Исправление KennyMinigun, (текущая версия) :
+1 к noomorph
На сервере обычно хранятся l10n JSON с переводами. Для особо крупных проектов можно разбивать на неймспейсы:
{
"admin.foo": "Do foo as admin",
"user.foo": "Do foo as user"
}
Затем они подгружаются (можно раздельно и лениво), и делается что-то такое:
var l10n = {};
/* как нибудь загружаем переводы в l10n */
function getLine(token) {
return l10n[getUserlanguage][token] || l10n['en'][token] || token;
}
// делаем глобальный алиас, для удобства
_ = getLine;
А в целом про i18n — то тут уже нужно чтоб библиотека отрисовки GUI поддерживала всё, что надо (например письмо справа-налево).
Исходная версия KennyMinigun, :
+1 к noomorph
На сервере обычно хранятся l10n JSON с переводами. Для особо крупных проектов можно разбивать на неймспейсы:
{
"admin.foo": "Do foo as admin",
"user.foo": "Do foo as user"
}
Затем они подгружаются (можно раздельно и лениво), и делается что-то такое:
var l10n = {};
/* как нибудь загружаем переводы в l10n */
function getLine(token) {
return l10n[getUserlanguage] || l10n['en'] || token;
}
// делаем глобальный алиас, для удобства
_ = getLine;
А в целом про i18n — то тут уже нужно чтоб библиотека отрисовки GUI поддерживала всё, что надо (например письмо справа-налево).