Локализация сайта
Пишу 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).
Правильно ли я делаю? Может есть способы проще и быстрее? И как локализировать большие тексты?