Показать сообщение отдельно
  #1 (permalink)  
Старый 26.09.2011, 14:58
fiw fiw вне форума
Аспирант
Отправить личное сообщение для fiw Посмотреть профиль Найти все сообщения от fiw
 
Регистрация: 18.08.2011
Сообщений: 23

Функция поддержки мультиязычности.
Сегодня написал функцию, на входе она получает идентификатор фразы, и доп. переменные, на выходе возвращает готовую фразу.

Вопрос: Как этот код приспособить к поддержки других языков?
Желательно хранить фразы в отдельных внешних файлах.
И подгружать их в зависимости от установленного у пользователя языка.

Отрывок кода:
// Массив содержащий все фразы используемые сайтом
var language = {
// ---- тут их может быть сколь угодно.
photos_count: 'Фото %l из %l'
};


function getFrase(langKey){
	var value, langArr = language, key = langKey, a = arguments, l = a.length;
	
	for (var k in langArr) {
		if (k === key){
			value = langArr[k];
			if (l>=2){
				for(var i = 1; i < l; ++i) {
					value = (value || '%l').replace('%l', a[i]);				
				}
			}
			
		}
	}	
	
	return value;
}


document.getElementById('div_photos_count').innerHTML = '<b>'+getFrase('photos_count',1,20)+'</b>';

Мы получаем: <div id="div_photos_count">Фото 1 из 20</div>

Последний раз редактировалось fiw, 26.09.2011 в 15:01.
Ответить с цитированием