Как создать .po файл? - PullRequest
       54

Как создать .po файл?

15 голосов
/ 25 марта 2010

В 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, но не могу понять, как это сделать с этим программным обеспечением.

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

Ответы [ 3 ]

8 голосов
/ 26 марта 2010

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

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

8 голосов
/ 21 ноября 2012

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(), иначе изменение не будет затронуто

0 голосов
/ 25 марта 2010

Существует много инструментов, таких как Poedit . В PHP это обрабатывается расширением Gettext .

Смотри также:

Если у вас возникли проблемы с Poedit, не стесняйтесь сообщить некоторые подробности.

...