php gettext不是';行不通
我正在尝试使用php gettext设置本地化,但无论如何它似乎都不起作用 我有一个index.php: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 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'命令识别您的区域设置?并检查所有这些方法的返回值,以查看其中的错误:)