Как создать файл.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, но я не вижу, как это сделать с помощью этого программного обеспечения.

Мы будем очень признательны за любую помощь!

Author: Volker E., 2010-03-25

3 answers

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

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

 9
Author: Colleen Dick, 2010-03-26 00:33:54

ДЛЯ 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), пожалуйста, остановите и запустите (перезапустите) его, когда вы хотите протестировать новое изменение на определенном языке с помощью gettext(), иначе изменение не будет затронуто

 8
Author: Lupen, 2015-05-16 10:55:22

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

См. также:

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

 0
Author: Álvaro González, 2010-03-25 11:16:20