Локализация сайта

Рейтинг: 0Ответов: 1Опубликовано: 17.02.2015

Пишу CMS на ASP.NET MVC, нужно, чтобы CMS умел работать со многими языками и можно было изменять тексты без перекомпиляции приложения.

Сейчас я храню данные для локализаций в БД. При старте приложения данные берутся из БД и кладутся в кэш (на случай, если необходимо будет получить данные не в браузере), после чего генерируется js файл с названием типа locale_ruRU.js и данными в формате

var localeData = {
    'key1': 'value1',
    'key2': 'value2', // ...
}

В View'ах я использую хелпер:

<div>@Html.Localize("key")</div>

Который генерирует span с необходимыми аттрибутами. <span class="localized" data-locale-key="key"></span>

После чего javascript обрабатывает эти тэги примерно так:

$(document).ready(function() {
    $('span.localized').each(function() {
        $(this).html(localeData[$(this).attr('data-locale-key')]);
    });
});

Локализацию через javascript делаю, дабы не обращаться слишком много к кэшу (помимо внутреннего кэша поддерживается еще memcached и redis).

Правильно ли я делаю? Может есть способы проще и быстрее? И как локализировать большие тексты?

Ответы

▲ 1

Три года назад была статья на хабре с чем-то подобным и приводилась ссылка на библиотеку. Посмотрите, может, поможет...