2017-10-06 78 views
0

我想创建一个新的多语言网站。我用poEDitgetText()函数。我不知道我用这段代码遗漏了什么:多语言网站poEDit和getText()

<?php 
    if (!function_exists("gettext")) 
    { 
     echo "gettext is not installed\n"; 
    } else { 
     echo "gettext is supported\n"; 
    } 

    $language = 'ar_JO'; 
    putenv("LANG=$language"); 
    setlocale(LC_ALL, $language); 

    $domain = 'ar_JO'; 
    bindtextdomain($domain, "./locale"); 
    bind_textdomain_codeset($domain, 'UTF-8'); 
    textdomain($domain); 

    echo _("HELLO_WORLD"); 
    echo _("hi this to be translated "); 

回答

0

该目录是非常导入的。创建这样的目录结构:

locale/de_DE/LC_MESSAGES/messages_de_DE.mo 
locale/de_DE/LC_MESSAGES/messages_de_DE.po 

然后尝试这个例子代码:

<?php 

$locale = 'de_DE'; 
//$locale = 'fr_CH'; 
$domain = 'messages'; 
$codeset = 'UTF-8'; 
$directory = __DIR__ . '/locale'; 

// Activate the locale settings 
putenv('LC_ALL=' . $locale); 
setlocale(LC_ALL, $locale); 

// Debugging output 
$file = sprintf('%s/%s/LC_MESSAGES/%s_%s.mo', $directory, $locale, $domain, $locale); 
echo $file . "\n"; 

// Generate new text domain 
$textDomain = sprintf('%s_%s', $domain, $locale); 

// Set base directory for all locales 
bindtextdomain($textDomain, $directory); 

// Set domain codeset (optional) 
bind_textdomain_codeset($textDomain, $codeset); 

// File: ./locale/de_DE/LC_MESSAGES/messages_de_DE.mo 
textdomain($textDomain); 

// test translations 
echo _('Yes'); 
+0

我有这个 “C:\ WAMP \ WWW \ loginSystemOOP /区域/ ar_JO/LC_MESSAGES/messages_ar_JO.mo” 我的文件结构是'C:\ wamp \ www \ loginSystemOOP/locale/ar_JO/LC_MESSAGES /' –