1

php-gettext を使用してローカライズをセットアップしようとしていますが、どうにもうまくいかないようです。

私はindex.phpを持っています:

<?php require_once "localization.php";?>

<a href="?locale=en_US">English</a> |
<a href="?locale=de_DE">German</a> 

<br>
<?php echo _("Hello World!"); ?><br>
<?php echo _("My name is"); ?> Bob.

および localization.php

<?php $locale = false;
if (isset($_GET["locale"])) { $locale = $_GET["locale"];}
putenv("LC_ALL=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain("messages", "./locale");
textdomain("messages");

また、./locale/de_DE/LC_MESSAGES/messages.po / .mo の下に翻訳ファイルを作成しました。

Ubuntu 11.04(natty)、PHPバージョン5.3.5-1ubuntu7.3、apache2でこれを試しています

助言がありますか?

4

2 に答える 2

1

試す:

<?php
$directory = dirname(__FILE__).'/locale';
$domain = 'messages';
$locale ="your_locale"; //like pt_BR.utf8";

putenv("LANG=".$locale); //not needed for my tests, but people say it's useful for windows

setlocale( LC_MESSAGES, $locale);
bindtextdomain($domain, $directory);
textdomain($domain);
bind_textdomain_codeset($domain, 'UTF-8');
?>
于 2011-12-04T17:22:06.837 に答える
0

遅すぎるかもしれませんが、同じ問題がありました:

1 つ目 - 文字列に追加.utf8する必要があります 2 つ目 - 言語をインストールしていない場合は、de_DE など$localeを使用して、システムが言語をサポートしていることを確認します。locale -asudo apt-get install language-pack-de-base

$locale = "de_DE.utf8";
if (isset($_GET["locale"])) $locale = $_GET["locale"];

$domain = 'messages';
$directory = dirname(__FILE__);//your path to locale folder may differ

setlocale( LC_MESSAGES, $locale);
bindtextdomain($domain, $directory);
textdomain($domain);
bind_textdomain_codeset($domain, 'UTF-8');
于 2013-05-06T09:13:09.587 に答える