2012-01-10 19 views
0

私はdebianにgettextをインストールしようとしていますが、ローカルコンピュータのWampでは完全に動作しますが、サーバ上では動作しません。私は、インストールのためにこれをしなかった:gettext翻訳なし

apt-get install -V gettext 

私はこれを起動します。

# apt-cache search --names-only gettext 

libgettext-ant-tasks-java - Java classes for internationalization (i18n) - Ant tasks 
gettext-base - GNU Internationalization utilities for the base system 
gettext-doc - Documentation for GNU gettext 
gettext-el - Emacs po-mode for editing gettext .po files 
gettext - GNU Internationalization utilities 
libgettext-activerecord-ruby-common - GetText localization for Ruby programs using ActiveRecord 
libgettext-activerecord-ruby1.8 - GetText localization for Ruby programs using ActiveRecord 
libgettext-activerecord-ruby1.9.1 - GetText localization for Ruby programs using ActiveRecord 
libgettext-activerecord-ruby - GetText localization for Ruby programs using ActiveRecord 
libgettext-commons-java - Java classes for internationalization (i18n) 
libgettext-rails-ruby-doc - Gettext support for Rails 2.3 
libgettext-rails-ruby1.8 - Gettext support for Rails >= 2.3 
libgettext-rails-ruby - Gettext support for Rails >= 2.3 
libgettext-ruby-util - Gettext utilities for ruby (dummy package) 
libgettext-ruby1.8 - Gettext for ruby1.8 
libgettext-ruby1.9.1 - Gettext for ruby1.9.1 
libintl-gettext-ruby1.8 - Gettext wrapper for Ruby 1.8 
libintl-gettext-ruby - Gettext wrapper for Ruby 
liblocale-gettext-perl - Using libc functions for internationalization in Perl 
liblocale-maketext-gettext-perl - Perl module bridging gettext and Maketext localization frameworks 
libgettext-ocaml-dev - OCaml internationalization library 
libgettext-ocaml - OCaml internationalization shared library 
php-gettext - read gettext MO files directly, without requiring anything other than PHP 
smarty-gettext - Gettext plugin enabling internationalization in Smarty 

私のphpinfo():

GetText Support  enabled 

私のPHPコード:

putenv("LANG=nl_NL"); 
setlocale(LC_ALL, "nl_NL"); 
bindtextdomain("greetings", "./locale/"); 
textdomain("greetings"); 


echo _("Hello World"); 

挨拶を。 po:

msgid "Hello World" 
msgstr "Hallo Wereld" 

greetings.mo中:

locale/nl_NL/LC_MESSAGES/ 

その他の情報:

PHP Version 5.3.3-7+squeeze3 

私はチュートリアルの多くを踏襲し、それらのどれもが機能しない、最後の1はhttp://www.aota.net/forums/showthread.php?threadid=10615

ました通常は "Hallo Wereld"を出力するはずですが、それでも "Hello World"です。 サーバを再起動してしばらくして翻訳が行われたので、キャッシュに問題はありません。

ありがとうございました。

答えて

1

私はちょうどそれを作る方法を発見しました。

だからDebianの上で、私たちは行います

dpkg-reconfigure locales 

は、我々は我々が必要とする言語を選択します。

とコードがインクルード

putenv('LC_ALL=nl_NL.utf8'); 
setlocale(LC_ALL, "nl_NL.utf8"); 
bindtextdomain("greetings", "./locale"); 
textdomain("greetings"); 


echo gettext("Hello World"); 

ストレンジ(あなたが1つを選択した場合.UTF8)しかし、それは動作します、我々は#ロケール-aを入力したときとまったく同じ書き込みを持っている必要があります。

1

アイデア:bindtexdomain(...)の完全パスを末尾にスラッシュなしで使用してみてください。

編集/試してください2: unset LANGを実行してApacheを再起動してください。

+0

はで更新 – user1040899

+0

:-(動作しません別のアイデア。 –

+0

私は方法を見つけた、私は私の質問に答えた。それが私を助けなかったとしても、私はあなたの答えに+1をくれました:-)ありがとう。 – user1040899

0

あなたの言語名の後ろに ".utf-8"を追加するのが有効です。

もう一つの解決策は、あなたのdebianに ".utf8"を付けずに "ロケール"を追加することです。

$のロケールen_GB

表すen_GB

-a:

は、私は、どのあなたの最初の設定が働いている、OVHサーバ(ホスティング会社)で、この結果に気づきました。ISO88591

en_GB.iso885915

en_GB.utf8

fr_FRの

fr_FR.iso88591

fr_FR.iso885915

fr_FR.utf8

私のDebianでのD(SYNOLOGY)サーバーのみ:

$ロケール

-a en_GB.utf8

fr_FR.utf8