2

(他の質問を見 ことがありますが、それらの回答は役に立ちませんでした)

私は、翻訳に php gettext を使用するアプリケーションを持っており、OSX と FreeBSD で何年も働いています。Debian 7.6 32bit ( ) に移植しようとしたところLinux debian32bit 3.2.0-4-686-pae #1 SMP Debian 3.2.60-1+deb7u3 i686 GNU/Linux、翻訳以外はすべて機能しました。CLIワンライナーに問題があります:

env LANG=nl_NL.UTF-8 php -r 'var_dump(bindtextdomain("foo","locale")); var_dump(textdomain("foo")); var_dump(getenv("LANG")); var_dump(_("low"));'

locale/nl/LC_MESSAGES/foo.moのオランダ語訳が含まれていlowます。laag

OSX Maverick の場合:

string(34) "/Users/foobar/workspace/bar/locale"
string(5) "foo"
string(11) "nl_NL.UTF-8"
string(4) "laag" <-- Success!

FreeBSD 10 64 ビットの場合:

string(24) "/usr/local/foobar/locale"
string(5) "foo"
string(11) "nl_NL.UTF-8"
string(4) "laag" <-- Success!

ただし、Debian 7 では:

string(19) "/home/foobar/locale"
string(5) "foo"
string(11) "nl_NL.UTF-8"
string(3) "low" <-- Failure!

php-gettext がインストールされています。

$ php -i | egrep -i 'PHP version|gettext'
PHP Version => 5.4.4-14+deb7u14
gettext
GetText Support => enabled

locale -a与えます:

C
C.UTF-8
en_US.utf8
nl_NL.utf8
POSIX

だから私は nl_NL.UTF-8 の代わりに nl_NL.utf8 を試しました: 同じ結果。

foo.moファイルを下に置いてみましたがlocale/nl_NL/LC_MESSAGES、同じ結果です。

locale現在の作業ディレクトリへの相対パスの代わりに絶対パスを使用しようとしましたが、同じ結果になりました。

私はここで途方に暮れています。続行する方法について何か提案はありますか?

4

1 に答える 1