Лучшие практики локализации - PullRequest
1 голос
/ 26 января 2010

Я начинаю модифицировать свое приложение, которое использует все жестко закодированные строки для ошибок, GUI и т. Д. Я рассматриваю эти два подхода, но дайте мне знать, если есть еще лучший способ:

-Ввести всю строку в файлы ресурсов (.rc).

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

Какой из этих двух подходов обычно предпочтительнее?

Ответы [ 3 ]

5 голосов
/ 26 января 2010

Поместите все строки в файлы ресурсов. Как только вы это сделаете, есть несколько хороших пакетов перевода. Одна полезная вещь, которую делают эти пакеты, - это позволяет переводить кто-то, кто не программирует.

Помните также, что интернационализация (i18n) является большой темой, и есть много вещей, чтобы рассмотреть. Это не просто вопрос перевода строк. Сделайте поиск в Интернете по крайней мере. Возможно, вы захотите прочитать книгу об этом: я использовал Шмитта International Programming for Windows . Это старая книга от Microsoft Press, и мне пришлось получить ее через службу подержанных книг; Похоже, что большая часть более современных материалов связана с интернационализацией приложений .NET.

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

0 голосов
/ 26 января 2010

Существует другой подход - просто помещать строки в исходный код с помощью некоторого числа, например tr (""), и назначать один из инструментов, который удаляет их и конвертирует.

Работает с любым инструментарием / библиотекой GUI.
Вы можете пометить текст, который нужно преобразовать, и текст, который не нужно изменять (например, строки протокола или ключи базы данных).
Это облегчает чтение и поиск источника, вместо того, чтобы искать, что означает IDS_MESSAGE34.

Одна проблема с файлами ресурсов, по крайней мере, с Windows / MFC, заключается в том, что вы не можете использовать строковую таблицу в диалогах. Итак, у вас есть какой-то текст в строке текста, а другой - в диалоговом разделе, с которым вы должны работать отдельно.

0 голосов
/ 26 января 2010

Обычно вы видите файлы ресурсов для конкретной локали, содержащие строки, на которые ссылается ключ. Компиляция разных версий для разных локалей - очень жесткое решение, которое станет кошмаром для техобслуживания. Использование файлов ресурсов также позволяет пользователю иметь запасные локали.

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