2013-04-12 1 views
2

Я пытался понять, как управлять и переводить Orchard PO файлы, как описано в: http://weblogs.asp.net/bleroy/archive/2011/01/13/creating-and-maintaining-orchard-translations.aspxOrchard Локализация ПО и Vandelay.TranslationManager

Проблема началась, когда я пытался использовать некоторые редакторы, которые я нашел в интернет, и я заметил, что:

  • фруктового сад перевод файлы, созданные Vandelay.TranslationManager могут быть недействительными
  • отредактированных файлов во внешнем редакторе могут сломали PO переведенных файлы и предотвратить использование синхронизации (действительные ключи помечены как устаревшие и новый добавляются как непереведенные)

Первых вещей сначала я пытался получить надежное объяснение формата PO файла, и я нашел здесь: http://pology.nedohodnik.net/doc/user/en_US/ch-poformat.html

Резюме спецификации:

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

После того, как вы немного поработали в Vandelay.TranslationManager и все переведенные файлы, я думаю, что нашел проблему.

Vandelay.TranslationManager принимает в качестве уникального ключа комбинацию из двух значений: - # | MSGID (используется в качестве ключа перевода) - msgctxt (дополнительный контекст, который в Orchard всегда определяется)

Проблема заключается в том, что Vandelay.TranslationManager использует в качестве уникального ключа «# | MsgID» вместо «MsgID» «# | MsgID»используется в нечетких строк и состояний предыдущей непереведенные строки, в саду используется в качестве дополнительной информации, которая, кажется, больше„#“

пример добытого PO файла:

#: ~/Modules/nwazet.commerce/Module.txt 
#| msgid "Nwazet.Commerce.Category" 
msgctxt ~/Modules/nwazet.commerce/Module.txt 
msgid "Commerce" 
msgstr "Commerce" 

#: ~/Modules/nwazet.commerce/Module.txt 
#| msgid "Nwazet.Bundles.Category" 
msgctxt ~/Modules/nwazet.commerce/Module.txt 
msgid "Commerce" 
msgstr "Commerce" 

отметить, что даже. если «# | msgid» отличаются друг от друга, две приведенные выше записи действительно дублируют согласно sp ecifications.

Теперь вопрос: Это просто ошибка или точный дизайн? Afaik Vandelay.TranslationManager - это рекомендуемый способ обработки файлов Po в Orchard. У любого другого есть проблемы с использованием этой функции? Благодаря

+1

Почему downvote? Вы можете объяснить, пожалуйста? – manudea

ответ

0

Рекомендуемый способ иметь дело с PO файлами Orchard является онлайн инструмент перевода: http://orchardproject.net/localize

+0

Я знаю ... но это работает только для переделанных модулей, сперва есть ключи. – manudea

+0

Пример сценария: я установил Nwazet Commerce. Выпущенная версия имеет очень малую часть функций, битбакет имеет 100+. Я планирую использовать модуль для своих клиентов и, возможно, участвовать в разработке с исправлениями или новыми функциями, тем временем мне нужно выпустить модуль, протестировать и полностью использовать локализованную версию. – manudea

+0

Я не могу использовать онлайн-инструмент в этом сценарии, единственным доступным инструментом является менеджер переводов. И в этом сценарии я нашел проблемы. Я перевел все ключи Commerce на итальянский http: // orchardproject.net/localize/Module/Nwazet.Commerce/it-IT, я загрузил переведенные ключи, и я попытался синхронизировать перевод, чтобы добавить недостающие ключи, добавленные в версию разработки. Поэтому я нашел проблемы, все переведенные ключи были отмечены как устаревшие и снова добавлены как новые нетранслируемые ключи. – manudea

Смежные вопросы