Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php gettext不是';行不通_Php_Translation_Gettext_Php Gettext - Fatal编程技术网

php gettext不是';行不通

php gettext不是';行不通,php,translation,gettext,php-gettext,Php,Translation,Gettext,Php Gettext,我正在尝试使用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!"); ?>&

我正在尝试使用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");
试试:

试试:


可能太晚了,但我遇到了同样的问题:

第一个-您需要将
.utf8
添加到
$locale
字符串中 第二-使用
locale-a检查您的系统是否支持该语言,如果未安装该语言,例如de_de:
sudo 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');

也许太晚了,但我也有同样的问题:

第一个-您需要将
.utf8
添加到
$locale
字符串中 第二-使用
locale-a检查您的系统是否支持该语言,如果未安装该语言,例如de_de:
sudo 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');

有错误吗?你怎么知道它不起作用了?他们只是停留在英语中吗?检查
setlocale()
的返回值可能会有所帮助。我相信在某些情况下,这可能返回FALSE。接下来,我最近也遇到了类似的问题。使用Zend_Translate和Zend_语言环境(来自Zend框架)似乎解决了我在让gettext识别我的语言环境时遇到的所有问题;如果你选择在谷歌上查找,可以找到大量的文档。是的,它们只是用英语。编辑:选中,它确实返回false。你也可以试试我的它需要
$\u ENV[“language”]=“de_de”中的语言标志
而不是
setlocale
putenv
。有错误吗?你怎么知道它不起作用了?他们只是停留在英语中吗?检查
setlocale()
的返回值可能会有所帮助。我相信在某些情况下,这可能返回FALSE。接下来,我最近也遇到了类似的问题。使用Zend_Translate和Zend_语言环境(来自Zend框架)似乎解决了我在让gettext识别我的语言环境时遇到的所有问题;如果你选择在谷歌上查找,可以找到大量的文档。是的,它们只是用英语。编辑:选中,它确实返回false。你也可以试试我的它需要
$\u ENV[“language”]=“de_de”中的语言标志
而不是
setlocale
putenv
。从PHP手册注释中复制和粘贴需要属性。答案是:
试试看:
而一堆代码也不是很漂亮。(它也用于实际的gettext扩展,不太可能帮助用户使用userland php gettext。)这位先生的回答帮助了我!确保服务器使用'locale-a'命令识别您的区域设置?并检查所有这些方法的返回值,看看哪里有bug:)从PHP手册注释中复制和粘贴确实需要属性。答案是:
试试看:
而一堆代码也不是很漂亮。(它也用于实际的gettext扩展,不太可能帮助用户使用userland php gettext。)这位先生的回答帮助了我!确保服务器使用'locale-a'命令识别您的区域设置?并检查所有这些方法的返回值,以查看其中的错误:)