Как сгенерировать файл .po?

В Windows с использованием WAMPserver (Apache, MySQL, PHP) у меня есть следующее:

//test.php
if (!defined('LC_MESSAGES'))
define('LC_MESSAGES', 6);

$lang = "sv";
putenv("LANG=$lang");
setlocale(LC_ALL, $lang);

$domain = "messages";
bindtextdomain($domain, "./locale");
textdomain($domain);

echo _("This is a string");

Он отлично работает, т.е. выводит "Это строка", что означает, что я правильно настроил gettext.

Но КАК в мире я создаю файл .po?

Я загрузил Poedit, но я не вижу, как это сделать с этим программным обеспечением.

Любая помощь очень ценится!

Ответы

Ответ 1

PoEdit - это инструмент для создания файла .po. Вы должны сделать небольшую конфигурацию, и это не самый простой. Способ, которым он должен работать, заключается в том, что он находит весь текст в исходном коде, который завернут в настраиваемую строку маркера. Это станет исходным текстом, который вы передаете своему переводчику. Затем они переводят его на целевой язык (-ы) и сохраняют файлы перевода и возвращают их вам. Затем вы отправляете эти файлы в специальный каталог в вашем php-приложении, и всякий раз, когда расширение gettext видит одну из строк перевода, он извлекает соответствующий перевод.

Возможно, я смогу больше помочь, если вы покажете некоторые подробности о том, где вас повесили poedit.

Ответ 2

FOR php:

У меня есть файл вроде ---- test_1.php ----

<?php
  echo _("Test phrase");
  echo gettext("Test phrase two");
  // NOTE: _ == gettext()
?>

Файл → Новый каталог... На вкладке "Исходные пути" вы должны щелкнуть "Новая папка", добавить путь к папке, в которой у вас есть файл (в этом примере test_1.php)

... Они поймали ВСЕ строки, которые вызываются с помощью gettext() или _() ... Полезная для этих функций объясняется здесь http://www.php.net/manual/es/function.gettext.php

И... Если вы используете Apache (например, в Xampp), пожалуйста, Stop и Start (Restart), когда вы хотите проверить новое изменение на определенном языке с помощью gettext(), иначе измените не будут затронуты