Поэтому я в основном пытаюсь перевести некоторые слова, которые я ранее жестко запрограммировал, в шаблон Mustache.js.
Шаблон:
... <button type="button" class="btn" data-id="{{id}}">Delete</button> ...
Эта проблема:
Любой другой аспект веб-сайта может быть переведен на лету на несколько различных языков, но ключевые слова, такие как «Удалить», «Создать», «Изменить» и т. Д., Были жестко закодированы в шаблоне и никогда не переводятся.
Вопрос:
Как вы переводите эти слова, а не жестко их кодируете?
Что я пробовал:
Я поигрался с функциями замены строк в javascript на шаблоне, прежде чем я вызову Mustache.render, вот так:
// Simulate array of translations coming from server (in the current users locale)
this.i18n = new Array();
this.i18n['delete'] = '[en_GB] Delete';
this.i18n['create'] = '[en_GB] Create';
this.i18n['edit'] = '[en_GB] Update';
$.get(template, function (template, textStatus, jqXhr) {
var html = $(template).filter('#artist_collection').html();
// ...
html = html.replace('Delete', this.i18n['delete']); // <- There may be several of these depending on the page/template
// ...
var template = Mustache.render(html, data);
index.artist_container.append(template);
console.log(html);
});
Это работает, но это хороший подход? Есть ли лучшее решение?
Задача ещё не решена.
Других решений пока нет …