web-dev-qa-db-ja.com

.poファイルを生成する方法は?

WAMPserver(Apache、MySQL、PHP)を使用しているWindowsでは、次のものがあります。

//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をダウンロードしましたが、そのソフトウェアでこれを実現する方法がわかりません。

どんな助けでも大歓迎です!

15
tobefound

PoEditは、.poファイルを作成するためのツールです。あなたはそれで少し設定をしなければならず、それは最も簡単ではありません。動作する方法は、設定したマーカー文字列でラップされたソースコード内のすべてのテキストを検索することです。これが、翻訳者に提供するソーステキストになります。次に、それをターゲット言語に翻訳し、翻訳ファイルを保存して返送します。次に、これらのファイルをphpアプリケーションの特別なディレクトリにダンプし、gettext拡張機能が翻訳文字列の1つを検出すると、適切な翻訳をフェッチします。

Poeditに夢中になった場所について詳細を示していただければ、おそらくもっとお役に立てます。

8
Colleen Dick

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

AND ... Apache(Xamppなど)を使用している場合は、gettext()を使用して定義された言語で新しい変更をテストするときに、Apacheを停止して開始(再起動)してください。変更は影響を受けません

8
Lupen

Poedit などの多くのツールがあります。 PHPでは、 Gettext extension によって処理されます。

参照:

Poeditで問題が発生した場合は、お気軽に詳細をお知らせください。

0