Перевод

Общее представление о формате Gettext

Файлы переводов Gettext являются простыми текстовыми файлами. В терминологии Gettext существует несколько понятий. Каждая запись, отвечающая за обособленную единицу перевода, называется сообщением. Это сообщение может иметь три состояния:

  1. Не переведено (not translated)
  2. Переведено (translated)
  3. Черновой перевод (fuzzy)

С первыми все ясно - перевод либо есть, либо его нет. Третье состояние используется для чернового перевода, когда переводчик не уверен в переводе. Такое сообщение в последствии не попадает в итоговый перевод до тех пор, пока кто-нибудь его не просмотрит и не снимет пометку fuzzy.

При желании их можно редактировать в обычном текстовом редакторе. Для примера возьмем фрагмент файла morte.cre.po:

#: 274
msgid "Morte"
msgstr "Морт"

#: 275
msgid "Talking Skull"
msgstr ""

#: 46818
# fuzzy
msgid "Insult Morte to Dak'kon"
msgstr "Insult Morte to Dak'kon"

Здесь мы видим, что часть сообщений уже переведена, а часть - нет. Каждое сообщение предваряется комментарием. Это очень важный комментарий - по нему в будущем программа упаковки нового Dialog.tlk будет ориентироваться для замены нужной строки.

Первое сообщение (msgid "Morte") уже имеет перевод. Второе - нет. Чтобы устранить это упущение, запишем внутри кавычек правильный перевод ("Говорящий чепеп"). Третье сообщение имеет перевод, однако помечено как черновое. В данном случае - это комментарий к звуковому файлу, который используется для оскорблений Мортом Даккона. Этот комментарий не появляется в игре, поэтому можно его просто игнорировать. Поэтому просто снимаем пометку fuzzy. После этого фрагмент приобретает следующий вид:

#: 274
msgid "Morte"
msgstr "Морт"

#: 275
msgid "Talking Skull"
msgstr "Говорящий череп"

#: 46818
msgid "Insult Morte to Dak'kon"
msgstr "Insult Morte to Dak'kon"

Редакторы Gettext

Переводить в текстовом редакторе все же скучно и иногда можно нарушить формат файла. Поэтому лучше использовать специальные редакторы. Таких редакторов достаточно много для различных платформ. Для Windows - это редактор poedit (http://poedit.sf.net). Он обеспечивает все необходимое взаимодействие с файлами Gettext.

Правила

В файлах Gettext есть некоторые ограничения, которые влияют на форматирование. Во-первых, в сообщении нет такого понятия как "новая строка". Но чтобы вставить перенос (такое частенько понадобится), достаточно ввести комбинацию \n. Для парных кавычек нужно ввести похожую комбинацию - \". Такой процесс называется "экранированием", и необходим для того, чтобы обеспечить правильное хранение строк в файле переводов. Можно ориентироваться на оригинал - обычно там строка выводится в изначально правильном формате.

После перевода всех файлов можно упаковать переводы в оригинальный Dialog.tlk и наслаждаться своей работой.

Пока не указано иное, содержимое этой страницы распространяется по лицензии Creative Commons Attribution-ShareAlike 3.0 License