Php gettext (. Pot ve Etaların sonra. Mo dosyalarını poEdit ile) tercüme metin görüntülenmeden değil!

4 Cevap php

Ben folling öğretici izledi: http://mel.melaxis.com/devblog/2005/08/06/localizing-php-web-sites-using-gettext/

Php gettext uzantısı hakkında (php.ini de yorum işaretlenmemiş)

Gettext aktive ama çeviri (Almanca) görünmüyor.

İşte dosyalar şunlardır:

C:\wamp\www\php-test\test.php:

<?php
require_once("localization.php");
echo _("Hello World!");
?>

C:\wamp\www\php-test\localization.php:

<?php
$locale = "de_DE";
if (isSet($_GET["locale"])) $locale = $_GET["locale"];
putenv("LC_ALL=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain("messages", "./locale");
textdomain("messages");
?>

C:\wamp\www\php-test\locale\de_DE\LC_MESSAGES\messages.po:

msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2010-02-14 00:35+0800\n"
"PO-Revision-Date: 2010-02-14 00:37+0800\n"
"Last-Translator: Jano Chen <weedcl@hotmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
"X-Poedit-Basepath: C:\\wamp\\www\\php-test\n"
"X-Poedit-Language: German\n"
"X-Poedit-Country: GERMANY\n"
"X-Poedit-SourceCharset: iso-8859-1\n"
"X-Poedit-SearchPath-0: .\n"

#: test.php:2
msgid "Hello World!"
msgstr "Hallo Welt!"

C:\wamp\www\php-test\locale\de_DE\LC_MESSAGES\messages.mo

(Üzgünüm bu dosyanın metni kopyalayıp olamaz nedense)

alt text

Ben açtığınızda "Hallo Welt" (Almanca Merhaba Dünya) göstermesi gerekir ama bunun yerine İngilizce (Merhaba Dünya) görüntüler.

Herhangi bir öneriniz?

PS: Ben Windows XP SP2 kullanıyorum

4 Cevap

Ben Wamp Server 2 (i) kullanılarak, ben onu kaldırdım ve Wamp Server 2 (c) kullanılan ve bu sorun giderilmiştir. Tuhaf.

setlocale (bunu okudun mu?) stated için kılavuz sayfasına gibi, pencereler language / country/region dizeleri farklı kullanır. gibi, de_DE ekleyerek çalışın böylece (aynı zamanda from the man page):

setlocale(LC_ALL, 'de_DE', 'deu_deu');

yerel bilgiler uyarı işlemi başına muhafaza edilir ayrıca bkz.

Biraz temel, biliyorum, ama web sunucusunu yeniden denemek mi? Bunu yapmak zorunda her benim .mo dosyaları güncelleyin.

Mesajı katalog (bindtextdomain fonksiyonunun ikinci parametresi) için sağlanan dizin yolunu size mo dosyayı kopyalamak zorunda bu dizinde / de_DE / LC_MESSAGES içermelidir.