Я понимаю локализацию ICU – дату, время и формат валюты, сортировку и т. Д. Когда дело доходит до перевода сообщений, я вижу, что люди заявляют, что ICU не предоставляет функциональности для перевода сообщений – проверьте, например, этот вопрос SOF .
Однако при проверке документов ICU мы обнаруживаем, что он предоставляет пакеты ресурсов, и документация, похоже, намекает на их использование для перевода сообщений:
Например, в документации на PHP :
Локализованным программным продуктам часто требуются наборы данных, которые должны быть настроены в зависимости от текущей локали, например: сообщения, метки, шаблоны форматирования. Механизм ресурсов ICU позволяет определять наборы ресурсов, которые приложение может загружать на основе локали, при этом их доступ к единой системе не зависит от локали.
Документация здесь: http://userguide.icu-project.org/locale/resources описывает функциональность, похожую на хранилище ключей, с текстовыми источниками, которые могут быть скомпилированы в двоичный формат.
Мой вопрос заключается в том, предназначены ли пакеты ресурсов ICU (включая функциональность доступа и формат хранения) для – или это часть их цели – для передачи сообщений – например, как файлы gettext и .po. Если таковые имеются, есть ли какие-либо ресурсы или руководства, которые обсуждают это использование.
Или переписывание: в своих целях проектирования – это ICU, предназначенный для использования в сочетании с отдельным средством перевода сообщений или же он стремится обеспечить такую функциональность самостоятельно, или же возможно, что оба варианта возможны.
Да, пакеты ресурсов ICU предназначены для использования в целях получения сообщений. Ответ на другой вопрос SOF неверен в отношении ОИТ. Ссылка, которую вы указали, верна, а также упоминает преобразование форматов пакетов ресурсов ICU в XLIFF и из него. ICU также предоставляет catgets()
стиля catgets()
в http://icu-project.org/apiref/icu4c/ucat_8h.html
ICU не помешает вам использовать отдельное средство поиска сообщений, но оно, безусловно, должно быть одно – и используется таким образом.
-Steven, проект ICU
Редактировать ICU в настоящее время / официально не имеет xgettext, как средство для извлечения. Возможно, это часть источника различия?
Редактировать 2 подробнее в: http://userguide.icu-project.org/locale/localizing