Условие поставить:
if (langArr[key]) value = langArr[key]; else value = 'Not found'; |
Для обычного сайта так делать смысла нет. А вот для самостоятельных приложений (HTA, XUL) так делать имеет смысл.
Цитата:
var texts = { 'Yes': 'Да', 'No': 'Нет', 'Cancel': 'Отмена' }; function translate(value) { return texts[value] || value; }; alert([ translate('Delete this file?'), translate('Yes'), translate('No') ]); |
Цитата:
|
var lc = function(id){ if(!lc.base[id] || !lc.base[id][lc.is[lc.cur]]) return id; return lc.base[id][lc.is[lc.cur]]; }; lc.is = { 'ru':0, 'en':1 }; lc.cur = 'en'; lc.init = function(){ var lc = navigator.browserLanguage; if(!lc) lc = navigator.language; lc = lc.substring(0,2).toLowerCase(); if(typeof(lc.is[lc]) != 'undefined') this.cur = lc; }; lc.base = { 'ru':['Русский','Russian'], 'en':['Английский','English'], ... } |
нет возможности запомнить язык (например, я хочу сидеть на английском).
lc.base сильно ударит по памяти, если фраз будет около девяти тысяч. |
Цитата:
Цитата:
Цитата:
Где-то память все равно придется выкусывать, чудес не бывает. |
Цитата:
для каждого слова будут храниться переводы для каждого языка? lc.base = { 'ru':['Русский','Russian'], 'en':['Английский','English'], ... } можно просто хранить переводы только для текущего языка, и заменять существующий объект другим при обновлении значения языка |
Цитата:
|
Цитата:
|
Цитата:
..ессно можно сделать подмену lc.base с необходимым словарем при смене языка, несколько увеличив при этом общий размер словарей за счет дублирования ключей, но этот вопрос скорее технический чем принципиальный: ru.js: lc.base = { 'ru':'Русский', 'en':'Английский', ... } en.js: lc.base = { 'ru':'Russian', 'en':'English', ... } |
Часовой пояс GMT +3, время: 20:47. |