1 расширения(ы) и 0 псевдоним(ы) в нашей базе данных
Ниже вы можете найти ответы на следующие вопросы:
- Что такое .po файл?
- Какая программа может создать .po файл?
- Где можно найти описание .po формат?
- Что может конвертировать .po файлы в другой формат?
- Какие MIME-тип связан с .po расширение?
GNU Gettext Portable Object
PO file is a GNU Gettext Portable Object. GNU gettext is the GNU internationalization and localization (i18n) library. It is commonly used for writing multilingual programs.
Название программы: -
MIME-тип: application/octet-stream
Магия байт (HEX): -
Магия строки (ASCII): -
Расширения, связанные с:
Другие типы файлов могут также использовать .po расширение файла. Если у вас есть полезная информация о .po расширение, !
Возможно ли, что расширение файла с ошибками?
Мы нашли следующие похожие расширения в нашей базе:
.po Расширение файла часто дается неправильно!
Согласно поисках на нашем сайте, эти опечатки были наиболее распространенными в прошлом году:
op (14) , lo (1) , pp (1) , pk (1) , p0 (1) , oo (1) , pl (1) , pi (1)
Не удается открыть.po файл?
Если вы хотите открыть .po файл на вашем компьютере, вам просто необходимо иметь соответствующие программы установлены. Если po Ассоциации установлены неправильно, вы можете получить следующее сообщение об ошибке:
Не удалось открыть этот файл:
файла: Например.po
Чтобы открыть этот файл, Windows необходимо знать, какую программу вы хотите использовать, чтобы открыть его. Окна могут выходить в интернет, чтобы искать его автоматически, или вы можете вручную выбрать из списка программ, установленных на вашем компьютере.
Чтобы изменить ассоциации файлов:
- Щелкните правой кнопкой мыши файл с расширением чье сотрудничество вы хотите изменить, а затем нажмите Открыть с .
- В Открыть с помощью диалоговое окно, выберите программу ти котором вы хотите, чтобы открыть файл, или нажмите Обзор , чтобы найти программу, которую вы хотите.
- Выберите Всегда использовать выбранную программу , чтобы открыть такой файл флажок.
Поддерживаемые операционные системы
Windows Server 2003/2008/2012/2016, Windows 7, Windows 8 , Windows 10 , Linux, FreeBSD, NetBSD, OpenBSD, Mac OS X , iOS, Android
Все тексты что должны быть переведены (диалоги, меню и т.д...), сохраняется в PO файл. PO файл - это файл перевода для приложения, с расширением.po и со специальной структурой содержащей: информацию о языке, переводчике, оригинальные диалоги и их переводы. Оригинальные диалоги начинаются с msgid, за ними следуют строки msgstr "текст перевода". Информацию о языке и переводчике находится в начале PO файла. Если для диалога нет перевода, оставьте msgstr пустым. Строки начинающиеся с символа # являются комментариями.
Пример пустого перевода:
#: src/PackageCommands.cs:57 src/PackageCommands.cs:3181 msgid "Search for a match to any of the search strings" msgstr ""
Пример чешского перевода:
#: src/PackageCommands.cs:57 src/PackageCommands.cs:3181 msgid "Search for a match to any of the search strings" msgstr "Vyhledat výsledek odpovídající alespoň některému z řetězců"
Что такое POT файлы
Файл POT - это шаблон для перевода. Его структура похожа на структуру PO файла, но содержит только оригинальный английский текст, и нет информации о переводчике и языке. Из файлов POT создаются PO-файлы.
If your created PO file manually in a text editor, you need add information about your language and save the file with suffix .po. If you create the beginning of the PO file incorrectly, the PO file will not pass the syntax check and in the statistics will have violet color and zero translated and fuzzy strings.
Начало файла rug.pot:
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE"S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR
Начало файла rug.hu.po:
# translation of hu.po to
# Peter Breuer
HOWTO по созданию PO файлов
Все что вам надо чтобы начать локализацию, это текстовый редактор, с помощью которого вы будете заполнять переводом пустые msgstr строки. Возможно, вам покожется более удобным использовать для этого специальные утилиты. Оригинальный английский текст в PO файлах начинающийся с msgid изменять нельзя.
Форматирование строк
Практически в каждом PO файле можно найти строки с форматированием. Большинство из которых содержит HTML -теги, иногда XML-теги, или другой язык форматирования. Все эти строки обязательно должны присутствовать в переводе, если вы их пропустите, то ваш перевод не пройдет проверку синтаксиса.
\n новая строка some_text жирный текст some_text курсивный текст
Употребление форм множественного числа
Строка POT файла, которая содержит слова употребляемые как в единственном, так и во множественном числе(мн.ч.), в зависимости от значения переменной:
Msgid "%1 second" msgid_plural "%1 seconds" msgstr "" msgstr "" Пример, где мн.ч. идентично ед.ч. (локаль zh_CN(китай)): msgid "%1 second" msgid_plural "%1 seconds" msgstr "%1 秒" Пример с одной формой мн.ч. (греческая локаль): msgid "%1 second" msgid_plural "%1 seconds" msgstr "%1 δευτερόλεπτο" msgstr "%1 δευτερόλεπτα" Пример с двумя формами мн.ч. (чешская локаль): msgid "%1 second" msgid_plural "%1 seconds" msgstr "%1 sekunda" msgstr "%1 sekundy" msgstr "%1 sekund"
В KBabel вы должны в первую очередь определить формы мн.ч., в свойствах проекта.
Некоторая информация о том как это работает здесь, привила преобразования для русского языка здесь.
Проверка синтаксиса
Перед направлением PO файлов в SVN, проверьте их синтаксис. Для этого используйте msgfmt с опцией -c и/или проверьте функциональность переведеного приложения.
Если наша система не справляется с расширением.PO и подвели все автоматические и полуавтоматические методы обучения его этому искусству, остается ручное редактирование реестра Windows. Этот реестр хранит всю информацию, касающуюся рабоы нашей операционной системы, в том числе соединения расширений файлов с программами для их обслуживания. Команда REGEDIT вписанная в окне „поиск программ и файлов” или „запустить в случае старших версий операционной системы, предоставляет нам доступ к реестру нашей операционной системы. Все операции, проведенные в реестре (даже не очень сложные, касающееся расширения файла.PO) имеют значительное влияние на работу нашей системы, поэтому прежде чем проводить какие-либо модификации следует убедится, что сделана копия актуального реестра. Интересующий нас раздел - это ключ HKEY_CLASSES_ROOT . Следующая инструкция показывает, шаг за шагом, как модифицировать реестр, а конкретно запись в реестре, содержащую информацию о файле.PO.
Шаг за шагом
- Нажмите кнопку “start”
- В окне „найти программы и файлы” (в старших версиях системы Windows это окно „Запустить”) впишите команду „regedit” а затем утвердите операцию клавишей „ENTER”. Эта операция запустит системный редактор реестра. Этот инструмент позволит не только просмотреть существующие записи, но также провести их модификацию, добавление или удаление вручную. В связи с тем, что реестр системы Windows ключевой для ее работы, все операции, проводящиеся на ней, следует выполнять рассудительно и сознательно. Неосторожное устранение или модификация несоответственного ключа может необратимо повредить операционную систему.
- С помощью комбинации клавишей ctr+F или меню Редактирование и опции „Найти” найдите интересующее вас расширение.PO, вписав его в окне поисковика. Утвердите, нажав OK или с помощью клавиши ENTER.
- Запасная копия. Чрезвычайно важным является создание запасной копии реестра, прежде чем совершить в нем какие-либо изменения. Каждое изменение имеет влияние на действие нашего компьютера. В крайних случаях ошибочная модификация реестра может привести к невозможности повторного запуска системы.
- Интересующее Вас значение, касающееся расширения, можно вручную редактировать изменяя ключи, приписанные к найденному расширению.PO. В этом месте Вы можете также самостоятельно создать нужную запись с расширением а.PO если такое отсутствует в реестре. Все доступные варианты находятся в подручном меню (правая кнопка мышки) или в меню "Редактирование" после размещения курсора в соответствующем месте на экране.
- После окончания редактирования записи, касающейся расширения.PO закройте системный реестр. Введенные изменения войдут в жизнь после повторного запуска операционной системы.
Все тексты что должны быть переведены (диалоги, меню и т.д...), сохраняется в PO файл. PO файл - это файл перевода для приложения, с расширением .po и со специальной структурой содержащей: информацию о языке, переводчике, оригинальные диалоги и их переводы. Оригинальные диалоги начинаются с msgid , за ними следуют строки msgstr "текст перевода". Информацию о языке и переводчике находится в начале PO файла. Если для диалога нет перевода, оставьте msgstr пустым. Строки начинающиеся с символа # являются комментариями.
Пример пустого перевода:
#: src/PackageCommands.cs:57 src/PackageCommands.cs:3181 msgid "Search for a match to any of the search strings" msgstr ""
Пример чешского перевода:
#: src/PackageCommands.cs:57 src/PackageCommands.cs:3181 msgid "Search for a match to any of the search strings" msgstr "Vyhledat výsledek odpovídající alespoň některému z řetězců"
Что такое POT файлы
Файл POT - это шаблон для перевода. Его структура похожа на структуру PO файла, но содержит только оригинальный английский текст, и нет информации о переводчике и языке. Из файлов POT создаются PO-файлы. Если вы создаете PO файлы вручную в текстовом редакторе, вам нужно добавить информацию о языке перевода и сохранить с расширением .po . Если вы создатите заголовок для PO файла неверно, такой PO не пройдет проверку синтаксиса и в статистике будет выделен фиолетовым цветом, обозначающим не переведенные, не распознанные строки.
Начало файла rug.pot:
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE"S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR
Начало файла rug.hu.po:
# translation of hu.po to
# Peter Breuer
С чего начать перевод PO файлов
Все что вам надо чтобы начать локализацию, это текстовый редактор, с помощью которого вы будете заполнять переводом пустые msgstr строки. Возможно, вам покожется более удобным использовать для этого специальные утилиты .
Оригинальный английский текст в PO файлах начинающийся с msgid изменять нельзя. Вы можете изменять только перевод. Если вы нашли ошибку в оригинальном английском тексте, пожалуйста используйте Bugzilla , что бы сообщить о ней. Весь не правильный текст сначала должен быть исправлен в исходном коде приложения, и затем сгенерирован новый POT файл.
Клавиши быстрого доступа
Есть два разных способа сделать клавиши быстрого доступа.
Msgid "&Add..." msgstr "&Hozzáadás"
Msgid "_Add" msgstr "_Hozzáadás"
Вы можете выбрать любой символ в строке перевода(т.е. можете поменять и расположение горячей клавиши), но если в исходной строке используется символ "&", то и в переводе должен быть использован символ "&"(то же и для символ "_"). Если в строку невозможно добавить клавишу быстрого доступа, используйте следующий способ:
Msgid "&Add..." msgstr "新增(&A)"
Msgid "_Add" msgstr "新增(_A)"
Переменные
Все переменные используемые в строке вставляются на место двухбуквенной последовательности, на первом месте которой символ "%", а на втором буква или число. Пример строки содержащей 1 переменную:
Msgid "Automatic configuration via %s?" msgstr ""
Переменные обязательно должны присутствовать в переводе, если они содержатся в исходной строке.
Форматирование строк
Практически в каждом PO файле можно найти строки с форматированием. Большинство из которых содержит HTML-теги, иногда XML-теги, или другой язык форматирования. Все эти строки обязательно должны присутствовать в переводе, если вы их пропустите, то ваш перевод не пройдет проверку синтаксиса.
\n | новая строка | |
some_text | жирный текст | |
some_text | курсивный текст |
Употребление форм множественного числа
Строка POT файла, которая содержит слова употребляемые как в единственном, так и во множественном числе(мн.ч.), в зависимости от значения переменной.
Несмотря на то, что мировая культура в лице Википедии и Пола Маккартни уверяет нас, что Mary had a little lamb , на территории одной восьмой части суши продолжают считать, что на самом деле «У Мэри был ягнёнок». Кто же на самом деле был у Мэри, и как записать это на разных языках мира? Попробуем выяснить это (а также понять, что думают по этому поводу японцы) вместе с нашим любимым Python-ом и встроенным в него модулем поддержки многоязычных переводов gettext.
Скомпилированный файл перевода: .mo
Итак, строки в нашей программе мы перевели. Зря, кстати. gettext направлен исключительно на перевод законченных готовых предложений, и перевод отдельных слов и шаблонов предложений в нём делать опасно… (например, gettext совершенно не поддерживает падежи и рода и кое-как поддерживает разве что различение единственного и множественного числа; так что, чтобы подставить вместо Мэри «Таню» или «Свету», придётся учитывать падеж для каждого возможного употребления исходного имени.) Ну да ладно - в нашем случае это не принципиально. Сейчас у нас задача в другом: подготовить файл перевода к использованию.Использовать исходный текстовый файл было бы неудобно по соображениям производительности (для программ, в которых много переводимого текста), поэтому система gettext использует скомпилированные в специальный формат файлы. Для компиляции мы можем воспользоваться либо тулой msgfmt из комплекта gettext, либо msgfmt.py из комплекта Python (в дебианоподобных дистрибутивах она входит в состав пакета python2.5-examples). Воспользуемся второй:
Msgfmt.py mary.po
Ага, видим файл mary.mo. В отличие от mary.po он уже явно не предназначен для ручного редактирования.
Структура каталогов и запуск программы
Если бы мы подготавливали программу к инсталляции в служебные директории, то мы бы создали примерно такую иерархию (в случае Debian linux): системный каталог /usr/share/locale, в нём подкаталоги для разных языков - ru, en и т.п.; в них - по каталогу LC_MESSAGES, а там уже - файл наподобие mary.mo (с максимально уникальным именем, чтобы не пересечься с другими программами). Но в нашем учебном случае мы просто сделаем подкаталог locale в нашем каталоге, создадим в нём подкаталоги ru/LC_MESSAGES, а в последний уже положим mary.mo.Теперь наконец добавим в нашу программу поддержку gettext:
#!/usr/bin/python
import gettext
Gettext.install("mary", "./locale", unicode=True)
Name = _("Mary")
animal = _("lamb")
Print _("%s had a little %s") % (name, animal)
Что изменилось? Мы проимпортировали модуль gettext (ну, это очевидно). А ещё мы проинсталлировали в глобальное пространство программы функцию _(), которая для перевода строк в подкаталоге./locale (второй аргумент) найдёт каталог с нашей текущей локалью (тот самый подкаталог ru), а в его подкаталоге LC_MESSAGES будет искать юникодный (третий аргумент) файл mary.mo перевода программы mary (первый аргумент).
Что имеется в виду под словом «проинсталлировали»? А то, что, после этого действия, мы можем импортировать другие модули нашей программы, и функция _() в них будет уже определена.
Запускаем нашу программу…
1:/tmp/mary> ./mary.py
У Мэри был маленький ягнёнок
Ага. Как-то так.
Бонус
Согласно Google Translate, .po-файл для японского языка будет выглядеть примерно так:msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
Msgid "Mary"
msgstr "メアリー"
Msgid "lamb"
msgstr "子羊"
Msgid "%s had a little %s"
msgstr "%sの%sいた"
И для нормальной поддержки японского языка (помимо русского) нам придётся поменять последнюю строку кода на
print (_("%s had a little %s") % (name, animal)).encode("UTF-8")