HTML-шаблоны в C ++ и переводы - PullRequest
0 голосов
/ 04 мая 2010

Я использую HTML_Template для шаблонов в моем веб-приложении на C ++ (не спрашивайте). Я выбрал это, потому что это было очень просто, и это оказалось хорошим решением.

Единственная проблема сейчас заключается в том, что я хотел бы иметь возможность включать переводимые строки в шаблоны HTML (HTML_Template на самом деле не поддерживает это).

В конечном счете, я хотел бы иметь один файл, содержащий все строки для перевода. Затем его можно передать переводчику, подключить обратно к приложению и использовать в зависимости от того, какой язык пользователь выбрал в настройках.

Я изучал некоторые варианты, и мне было интересно, что другие считают лучшим выбором (или есть лучший вариант, которого нет в списке)

  1. Расширьте HTML_Template, чтобы включить тег для хранения литеральной строки для перевода. Так, например, в HTML я бы поместил что-то вроде

    <TMPL_TRANS "this is the text to translate"/>

  2. Используйте совершенно отдельную схему для перевода и предварительно обработайте HTML-файлы, чтобы сгенерировать окончательные файлы шаблона (без специального языка перевода). Например, в предварительно обработанном файле переводимый текст будет выглядеть следующим образом:

    {{this is the text to translate}}

    и финал будет выглядеть так:

    this is the text to translate

  3. Ничего не предпринимайте, и пусть переводчики найдут строку для перевода в файлах html и js.

1 Ответ

0 голосов
/ 04 мая 2010

Вы можете рассмотреть массивы, если не уже.

Популярной реализацией для перевода строк является использование таблиц и индексов. Один индекс предназначен для языка, а второй - для строки. Создайте функцию, которая возвращает строки на основе этих двух индексов:
const std::string& Get_String(unsigned int language_index, unsigned int string_index);

Каждый язык будет иметь таблицу строк (или const char *). Будет таблица указателей на языковые таблицы, по одному для каждого поддерживаемого языка.

Самая большая проблема - преобразовать существующий код для использования этой системы.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...