(他の質問を見た ことがありますが、それらの回答は役に立ちませんでした)
私は、翻訳に 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
現在の作業ディレクトリへの相対パスの代わりに絶対パスを使用しようとしましたが、同じ結果になりました。
私はここで途方に暮れています。続行する方法について何か提案はありますか?