Перевод php-приложения с помощью gettext
-
07-07-2019 - |
Вопрос
Исходя из моих предыдущих вопросов о gettext, одним из самых больших преимуществ использования расширения gettext PHP вместо других методов языкового перевода было то, что очень легко заставить других людей создавать файлы перевода с помощью программы под названием Редактировать.
Теперь у меня есть gettext, работающий в моем приложении, но я еще не создал никаких файлов перевода, я нашел демонстрационный файл в сети и протестировал его, чтобы убедиться, что мое приложение работает с gettext.
Теперь я немного поиграл с poedit, и, возможно, я ошибаюсь, надеюсь, кто-нибудь сможет прояснить некоторые вопросы.
Насколько я могу судить, poedit считывает ваш php-код и находит все доступные места для выполнения перевода, правильно ли это?
Если вышесказанное верно, то как вы можете заставить человека-переводчика переводить с помощью poedit, не имея доступа к вашему приложению?
Или, проще говоря, возможно ли создать файл перевода с помощью poedit, не имея доступа к вашему php-коду?
Решение
Обратите внимание, что я сам никогда не использовал poedit, так что это может быть не совсем точным...
Интересная статья, которую вы могли бы сначала прочитать, чтобы получить некоторую информацию : Локализация плагина WordPress С помощью poEdit
Это wordpress, что означает PHP - так что основные идеи должны подходить для вашего приложения.
В принципе, если я хорошо понимаю :
- сначала вы извлекаете все строки из исходного кода PHP
- сообщив poedit, как вызывается ваша функция перевода
- это должно ответить на ваш вопрос 1)
- затем вы выполняете перевод
- работа с файлом .po /над ним
- И я предполагаю, что вы можете распространить этот файл .po среди своих переводчиков, которые затем смогут перевести содержащиеся в нем строки
- и, наконец, вы используете файл .po для создания файла .mo, который будет использоваться в вашем приложении.
Эта другая статья, тоже о WordPress, кажется, указывает на то, что я угадал правильно : Пользователь: Skippy/Создание файлов POT -- особенно это предложение :
Сделайте файл .po доступным для скачивания (или, при необходимости, включите его в архив плагина).Переводчики будут использовать этот файл для создания файла .mo, который будет использоваться
load_plugin_textdomain()
функция.
(Очевидно, что имя функции, которое вы будете использовать в своем приложении, не будет таким же, как в wordpress - тем не менее, идея есть)
Надеюсь, это поможет :-)
Получайте удовольствие !
Другие советы
Нет, poEdit не читает все ваши источники.Для этого вы используете утилиту gettext "xgettext".
По сути, xgettext создаст файл .po.
Ваши переводчики будут использовать POEdit для работы с этим файлом .po.
Когда программа перевода будет готова, вы скомпилируете файл .po в файл .mo, который ваше приложение будет использовать для поиска переводов.
Если у вас установлен gettext в какой-либо системе unixy, попробуйте "info gettext" в bash.
PoEdit на самом деле использует xgettext
, который вы можете настроить на Настройки / Анализаторы правильная вкладка.
Вы должны распространять .горшок файл, кстати, который является шаблон .po.Таким образом, переводчики могут перевести его, установить язык, команду переводчиков и т.д.
К сожалению, я не вижу возможности создать файл .pot из исходного кода, но poedit
тогда можете читать (конечно, это то же самое, что и .po).
После создания собственного файла .po вы можете получить .мо!