通过函数将语言环境字符串输出到json中

时间:2013-07-03 22:57:16

标签: php json function locale

我正在尝试通过函数将一堆语言环境字符串导出到json对象中,但似乎没有从.mo文件中提取字符串。我的代码如下:

lang.php

<?php

define('_COOKIE_EXPIRE', 60 * 60 * 24 * 30);

$lang = "es";

if(isset($_COOKIE['lang'])){
    $lang = $_COOKIE['lang'];
}

if(isset($_GET['lang'])){
    $lang = $_GET['lang'];
}

define('_LANG', $lang);
setcookie('lang', _LANG, time() + _COOKIE_EXPIRE);

switch($lang){
    case 'es':
        $lc = "es_HN.UTF-8";
        break;
    case 'en':
        $lc = "en_US.UTF-8";
        break;
}

putenv("LC_ALL=$lc");
setlocale(LC_ALL, $lc);
bindtextdomain("messages", "./locale");
bind_textdomain_codeset('messages', 'UTF-8');
textdomain("messages");

?>

的functions.php

function getProjectsImages(){ 
    //....
    $json = '{Proyectos: [';
    while(...){
    $json .= ($first?'':', ') . '{' .
             'id: ' . $row["id_proyecto"] . ', ' .
             'cliente: "' . $row["nombre_cliente"] . '", ' .
             'portada: "' . $row["portada_proyecto"] . '", ' .
             'actividades: "' . _($row["actividades_proyecto"]) . '", ' .
             'resumen: "' . _($row["resumen_proyecto"]) . '"}';
        if($first) $first = false;
    }
    $json .= ']}';
    return $json;

}

即使我选择的语言是英语,所有通过_("text")打印的字符串都是用西班牙语打印的。这是处理函数内部语言环境的正确方法吗?

0 个答案:

没有答案