首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gettext未显示翻译

gettext未显示翻译
EN

Stack Overflow用户
提问于 2012-01-10 12:32:31
回答 3查看 1.2K关注 0票数 0

我正在尝试在debian上安装gettext,它在我的本地计算机上的Wamp上运行得很好,但在服务器上却不行。我这样做是为了安装:

代码语言:javascript
复制
apt-get install -V gettext

我启动这个:

代码语言:javascript
复制
# apt-cache search --names-only gettext

libgettext-ant-tasks-java - Java classes for internationalization (i18n) - Ant tasks
gettext-base - GNU Internationalization utilities for the base system
gettext-doc - Documentation for GNU gettext
gettext-el - Emacs po-mode for editing gettext .po files
gettext - GNU Internationalization utilities
libgettext-activerecord-ruby-common - GetText localization for Ruby programs using ActiveRecord
libgettext-activerecord-ruby1.8 - GetText localization for Ruby programs using ActiveRecord
libgettext-activerecord-ruby1.9.1 - GetText localization for Ruby programs using ActiveRecord
libgettext-activerecord-ruby - GetText localization for Ruby programs using ActiveRecord
libgettext-commons-java - Java classes for internationalization (i18n)
libgettext-rails-ruby-doc - Gettext support for Rails 2.3
libgettext-rails-ruby1.8 - Gettext support for Rails >= 2.3
libgettext-rails-ruby - Gettext support for Rails >= 2.3
libgettext-ruby-util - Gettext utilities for ruby (dummy package)
libgettext-ruby1.8 - Gettext for ruby1.8
libgettext-ruby1.9.1 - Gettext for ruby1.9.1
libintl-gettext-ruby1.8 - Gettext wrapper for Ruby 1.8
libintl-gettext-ruby - Gettext wrapper for Ruby
liblocale-gettext-perl - Using libc functions for internationalization in Perl
liblocale-maketext-gettext-perl - Perl module bridging gettext and Maketext localization frameworks
libgettext-ocaml-dev - OCaml internationalization library
libgettext-ocaml - OCaml internationalization shared library
php-gettext - read gettext MO files directly, without requiring anything other than PHP
smarty-gettext - Gettext plugin enabling internationalization in Smarty

我的phpinfo():

代码语言:javascript
复制
GetText Support     enabled

我的php代码:

代码语言:javascript
复制
    putenv("LANG=nl_NL"); 
setlocale(LC_ALL, "nl_NL"); 
bindtextdomain("greetings", "./locale/");  
textdomain("greetings"); 


echo _("Hello World");

greetings.po:

代码语言:javascript
复制
msgid "Hello World"
msgstr "Hallo Wereld"

greetings.mo in:

代码语言:javascript
复制
locale/nl_NL/LC_MESSAGES/

其他信息:

代码语言:javascript
复制
PHP Version 5.3.3-7+squeeze3

我学习了很多教程,但没有一个有效,最后一个是http://www.aota.net/forums/showthread.php?threadid=10615

通常它应该输出"Hallo Wereld",但它仍然是"Hello World“。我重新启动了服务器,翻译已经进行了一段时间,所以不是缓存问题。

非常感谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-10 13:04:29

好吧,我刚刚发现了如何制作它。

所以在Debian上我们这样做:

代码语言:javascript
复制
dpkg-reconfigure locales

然后我们选择我们需要的语言。

当我们输入# locale -a (如果您选择了.utf8)时,代码必须与我们输入的完全相同。

代码语言:javascript
复制
putenv('LC_ALL=nl_NL.utf8');
setlocale(LC_ALL, "nl_NL.utf8");
bindtextdomain("greetings", "./locale");
textdomain("greetings");


echo gettext("Hello World");

很奇怪,但它是有效的。

票数 1
EN

Stack Overflow用户

发布于 2012-01-10 12:38:14

一个想法是:尝试在bindtexdomain(...)中使用不带斜杠的完整路径。

编辑/尝试#2:尝试运行unset LANG并重启Apache。

票数 1
EN

Stack Overflow用户

发布于 2014-10-09 22:56:38

有效的解决方案是在您的语言名称后添加".utf-8“。

另一种解决方案可能是在你的debian中添加"locales“而不是".utf8”。

我在OVH服务器(托管公司)中注意到了这一结果,您的第一个配置正在运行:

$ locale -a

en_GB

en_GB.iso88591

en_GB.iso885915

en_GB.utf8

fr_FR

fr_FR.iso88591

fr_FR.iso885915

fr_FR.utf8

在我的debian (synology)服务器上,只有:

$ locale -a

en_GB.utf8

fr_FR.utf8

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8798594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档