Я пытался понять, как управлять и переводить 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. У любого другого есть проблемы с использованием этой функции? Благодаря
Почему downvote? Вы можете объяснить, пожалуйста? – manudea