EDIT: Мне бы очень хотелось увидеть общую дискуссию о форматах, их плюсах и минусах!i18n - лучшие практики для интернационализации - XLIFF, gettext, INI, ...?
EDIT2: «Баунти на самом деле не помогло создать необходимую дискуссию, есть несколько интересных ответов, но исчерпывающий охват темы по-прежнему отсутствует. Шесть человек отметили вопрос в качестве фаворитов, что показывает мне, что в этом обсуждении есть интерес.
При определении порядка интернационализация самая сложная часть IMO - это выбор формата хранения.
Например Zend PHP Framework предлагает следующие адаптеров, которые охватывают почти все мои варианты:
- массива: нет, трудно поддерживать
- CSV: не знаю, возможные проблемы с кодировкой
- Gettext: часто используется, PoEdit для всех платформ, доступных НО сложных
- INI: не знаю, ПОСС проблемы с кодированием
- TBX: no ключ
- TMX: слишком большая вещь? без редакций.
- QT: не очень распространены, нет бесплатных инструментов
- XLIFF: стандартный стандарт? НО никаких бесплатных инструментов нет.
- XMLTM: нет, не то, что мне нужно
в основном я застрял с 'жирным' выбор 4. Я хотел бы использовать файлы INI, но я читаю о проблемах с кодировкой ... это действительно проблема, если я использую строгие UTF-8 (файлы, соединения, db и т. Д.)?
Я нахожусь в Windows, и я попытался выяснить, как работает функция poEdit, но просто не удалось. Нет учебных пособий в Интернете, gettext все равно выбор или исчезающий вид в любом случае?
Как насчет XLIFF, с кем-нибудь работал? Любые советы по использованию каких инструментов?
Любые идеи для Eclipse интеграция любой из этих технологий?
Я хочу ини хранить языковые строки. Тогда у меня будет один ini для каждого языка и каждого модуля. например default.en, default.de, по умолчанию. fr ... – markus 2008-11-11 07:50:43
, тогда вы можете использовать простой INI, вам просто нужно указать в своем документе, что файлы переводов НЕОБХОДИМО быть в UTF8. И если переводчик этого не делает, это его вина :) – CiNN 2008-11-11 08:01:46
Я сделал вариант этого (например, файл типа INI на язык) и загрузил его в пользовательскую хеш-таблицу. Это было быстро и сработало хорошо, за исключением работы вокруг некоторых домашних OO в приложении C. – torial 2009-03-03 06:40:38