Нашел пару вопросов (и ответов) по этому поводу: Как настроена интернационализация для Hogan .js? и т. д.
но не в частности, которые принимают во внимание порядок слов. Мне нужна способность:
шаг 1. при наличии ключа -> поиск предложения на определенном языке.
Шаг 2. Это предложение может содержать {{var}} , которые необходимо
заменить json-значениями.
шаг 2. сам по себе является общим шаблоном усов.
Шаг 1 можно выполнить отдельно с помощью нескольких методов, но я предпочитаю методы, которые не включают какой-либо специализированный код за пределами движка Mustache/Hogan (конечно, в сочетании с пакетом ресурсов i18n). Хоган, кажется, поддерживает это чем-то вроде: (из приведенного выше URL-адреса)
var template = "{{#i18n}}Name{{/i18n}}: {{username}}",
context = {
username: "Jean Luc",
i18n: function (i18nKey) {return translatedStrings[i18nKey];}
};
Однако, чтобы объединить 1. и 2. в этом примере, я бы хотел, чтобы translatedStrings[i18nKey]
возвращал строку, которая потенциально также содержит {{<some expansion>}}
.
Кто-нибудь знает элегантный способ сделать это?
Обоснование: часто языки сильно различаются порядком слов и т. д., что делает сложные шаблоны без этой возможности.