質問

いくつかのチュートリアルが(Poedit / w)のgettextのためにそこに存在してい...残念ながら、それはUNIX環境のために、ほとんどです。そして、さらに多くの不幸な私は、Windows XP上で私のWAMPサーバーを実行しています(私はUNIX環境用に開発しています)とチュートリアルのどれも私のために正常に動作しgettextを得ることができないことです。 manページ( http://us3.php.net/manual/en/からbook.gettext.php の)、Windows環境でのさまざまなプロセスだと思われます。私はコメントでのソリューションのいくつかを試してみましたが、私はまだそれが仕事を得ることができません! 、私はうまくいけば、誰かがこの事は仕事を得るために正しい方向に私を指すことができ、これに多くの時間を費やしてきてください! (と私は私の欲求不満を共有するが、他アウトがあると確信しています)。これまでのところ、私のセットアップで、私は唯一の出力に「Hello World!」を取得しています私は翻訳された文字列を取得する必要があるのに対します。

ここに私のセットアップ/コードは、これまでのところあります:

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

}
$locale = "deu_DEU"; // apparently the locales are different on a WINDOWS platform

putenv("LC_ALL=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain("greetings", ".\locale");
textdomain("greetings");


echo _("Hello World"); 

?>

フォルダ構造

root:     C:\Program Files\WampServer 2\www
test.php: C:\Program Files\WampServer 2\www\site
.po:      C:\Program Files\WampServer 2\www\site\locale\deu_DEU\LC_MESSAGES\greetings.po
.mo:      C:\Program Files\WampServer 2\www\site\locale\deu_DEU\LC_MESSAGES\greetings.mo

教えてください!あなたの時間をありがとう:)

役に立ちましたか?

解決 6

私はロケールがインストールされていなかったので、それがあった。

他のヒント

私のローカルマシン上のgettextと協力しながら、私は問題に走った、といくつかの検索後、私は私の問題を解決し、このページを発見しました: http://www.kipras.com/getting -gettext・ツー・ワーク・イン・アパッチ・オン・ウィンドウ/ 96

私は、Webページから引用しています:

  

Linuxサーバー(または任意の他のサーバー上   窓離れて)、それを行う方法があります   この:

setlocale(LC_MESSAGES, “en_US”);
     上に場所を設定するには、

正しい方法   窓はこれです:

putenv(“LC_ALL=en_US”);

私は同じ問題を抱えていた、その上に、ほぼ一日かそこらを無駄にしました。 ( - 32ビットWampServer 2.1E)最後に、I、すなわち(バージョン2.1)WAMP Serverをアンインストールし、のインストール新しいバージョンのために、非常に簡単な解決策を見つけました。それは奇妙だが、それは完全に問題を解決します。

ここでは私のために働いたサンプルコードがあります:

<?php

    $locale = "deu_DEU";

    putenv("LC_ALL=$locale");
    setlocale(LC_ALL, $locale);

    bindtextdomain("greetings", "./locale");
    textdomain("greetings");

    echo _("Hello World");

?>

それがお役に立てば幸いです。

私はこの上の完全な調査を行っていなかったが、私はあなたの過ちの一つは、無効なロケール・コードを使用したことであることを確信している - これらはgettextのロケールであり、彼らは、クロスプラットフォームである - ロケールのコードが同じであっても、Windows上で。

単に「デ」ロケールコードとして、それが動作するはず使用してみてください。また、あなたのPHPのgettextの拡張インストールされ、(のphpinfoで確認してください)が作動していることを確認してください。

遅すぎるかもしれないが、私は私のWAMP PHPの設定で「短いオープンタグを」有効にするまで、私は同様の問題を抱えていた。

これは私のために働いたソリューションです。これは、最新のwampserver上で動作します。 (ソース: http://www.extradrm.com/blog/?p=1035

1)ここからのphp-gettextをダウンロード: https://launchpad.net/php-gettext/ + をダウンロードし、解凍します。

2)テストlanguage.phpと同じフォルダに、パッケージのルートで見つかった以下のファイルを追加します。 - gettext.inc - gettext.php - streams.php

3)あなたのphp.iniを開き、wampserverのphp_gettext.dllをコメントアウトします:

;extension=php_gettext.dll

4)これは新しいテストファイルテストlanguage.phpある

<?php
error_reporting(E_ALL | E_STRICT);

// define constants
define('PROJECT_DIR', realpath('./'));
define('LOCALE_DIR', 'C:/wamp/www/test/locale');
define('DEFAULT_LOCALE', 'es_ES');

require_once('gettext.inc');

$supported_locales = array('en_US', 'sr_CS', 'de_CH','es_ES');
$encoding = 'UTF-8';

$locale = (isset($_GET['lang']))? $_GET['lang'] : DEFAULT_LOCALE;

//var_dump($locale);die();

// gettext setup
T_setlocale(LC_MESSAGES, $locale);
// Set the text domain as 'messages'
$domain = 'messages';
bindtextdomain($domain, LOCALE_DIR);
// bind_textdomain_codeset is supported only in PHP 4.2.0+
if (function_exists('bind_textdomain_codeset'))
bind_textdomain_codeset($domain, $encoding);
textdomain($domain);

echo gettext("HELLO_WORLD");
?>

このすべての後、あなたは、フォルダをロケールフォルダ、en_USの(あるいは他の言語)を作成したフォルダをLC_MESSAGES、その後messages.poファイルを置く必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top