Я работаю над сайтом Javascript MVC, используя Ember/Handlebars, который должен поддерживать интернационализацию. У меня уже есть код для выполнения переводов, но мне интересно, что лучше всего подходит для локализации больших блоков текста (mutliple paragraph, lists и т.д.). Лучше ли локализовать каждый абзац, элемент списка отдельно или содержать локализацию HTML?
HTML:
<p>{{i18n first_paragraph}}</p>
<p>{{i18n second_paragraph}}</p>
<ul>
<li>{{i18n first_item}}</li>
<li>{{i18n second_item}}</li>
<li>{{i18n third_item}}</li>
</ul>
Файл локализации:
first_paragraph: 'some text',
second_paragraph: 'some text',
first_item: 'some text',
second_item: 'some text',
third_item: 'some text'
VS.
HTML:
{{i18n page_content}}
Файл локализации:
page_content: '<p>some text</p><p>some text</p><ul><li>some text</li><li>some text</li><li>some text</li></ul>
Спасибо за любой совет
Первый вариант гораздо более канонический. Зачем? Потому что вы абстрагируете локализацию (которая выполняется логически для объектов данных: в случае локализации, строки) из семантической разметки.
Возможно, это не так важно сейчас, но что происходит, когда вы вдруг хотите поддержать другой язык? Если вы разделили свою локализацию на - в вашем случае - Handlebars Helper, вы можете добавлять переводы в массив внутри этого помощника. Если ваша локализация смешана с вашей разметкой, вам придется тралить через свои файлы локализации небрежным (отнимающим много времени и подверженным ошибкам) способом.