Как вы справляетесь с переводом текста с разметкой?

Я разрабатываю многоязычную поддержку для нашего веб-приложения. Мы используемПомощники Джанго вокругGettext библиотека. Все было на удивление легко, за исключением вопроса о том, как обрабатывать предложения, содержащие значительную разметку HTML. Вот простой пример:

Please <a href="/login/">log in</a> to continue.

Вот подходы, которые я могу придумать:

Измените ссылку, чтобы включить все предложение. Независимо от того, является ли изменение хорошей идеей в этом случае, проблема с этим решением состоит в том, что пользовательский интерфейс становится зависимым от потребностей i18n, когда оба они идеально независимы.

Отметьте всю строку выше для перевода (включая форматирование). Строки перевода будут также включать HTML-код напрямую. Проблема в том, что изменение формата HTML требует изменения всего перевода.

Плотно соедините несколько переводов, затем используйте интерполяцию строк, чтобы объединить их. Например, фразы «Пожалуйста,% s для продолжения» и «войти» можно пометить отдельно для перевода, а затем объединить. «Вход» локализуется, затем оборачивается в HREF, затем вставляется в переведенную фразу, которая сохраняет% s в переводе, чтобы указать, куда должна идти ссылка. Такой подход усложняет код и нарушает независимость строк перевода.

Есть ли другие варианты? Как другие решили эту проблему?

Ответы на вопрос(6)

Ваш ответ на вопрос