簡體   English   中英

gettext沒有翻譯顯示

[英]gettext no translations showed

我正在嘗試在debian上安裝gettext,它在我本地計算機上的Wamp上完美運行,但在服務器上卻沒有。 我這樣做是為了安裝:

apt-get install -V gettext

我發布了這個:

# 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():

GetText Support     enabled

我的PHP代碼:

    putenv("LANG=nl_NL"); 
setlocale(LC_ALL, "nl_NL"); 
bindtextdomain("greetings", "./locale/");  
textdomain("greetings"); 


echo _("Hello World");

greetings.po:

msgid "Hello World"
msgstr "Hallo Wereld"

greetings.mo in:

locale/nl_NL/LC_MESSAGES/

其他信息:

PHP Version 5.3.3-7+squeeze3

我遵循了很多教程,但沒有一個是有效的,最后一個是http://www.aota.net/forums/showthread.php?threadid=10615

通常它應該輸出“Hallo Wereld”,但它仍然是“Hello World”。 我重新啟動了服務器並且已經進行了一段時間的翻譯,所以這不是緩存問題。

非常感謝你。

一個想法:嘗試使用bindtexdomain(...)的完整路徑而不使用尾部斜杠。

編輯/嘗試#2:嘗試運行未unset LANG並重新啟動Apache。

好的,我剛剛發現了如何制作它。

所以在Debian上我們做:

dpkg-reconfigure locales

然后我們選擇我們需要的語言。

並且代碼必須具有完全相同的寫作然后我們輸入#locale -a(.utf8,如果你選擇那個)

putenv('LC_ALL=nl_NL.utf8');
setlocale(LC_ALL, "nl_NL.utf8");
bindtextdomain("greetings", "./locale");
textdomain("greetings");


echo gettext("Hello World");

奇怪,但它的工作原理。

有效地,解決方案是在您的語言名稱后添加“.utf-8”。

另一個解決方案可能是在沒有“.utf8”的情況下為你的debian添加“locales”。

我在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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM