示例#1
0
 /**
  * 言語からTimeZoneを指定
  * @param string $lang 言語
  * @return array
  */
 public static function setTimeZone($lang = '')
 {
     if (empty($lang)) {
         return array('UTC', 0);
     }
     $l = AcceptLanguage::splitLocaleStr($lang);
     // When the name of a country is uncertain (国名が不明な場合)
     if (empty($l[2])) {
         $obj_l2c = new Lang2Country();
         $l[2] = $obj_l2c->getLang2Country($l[1]);
         if (empty($l[2])) {
             return array('UTC', 0);
         }
     }
     $obj = new TimeZone();
     $obj->set_datetime(UTIME);
     // Setting at judgment time. (判定時刻の設定)
     $obj->set_country($l[2]);
     // The acquisition country is specified. (取得国を指定)
     // With the installation country in case of the same
     // 設置者の国と同一の場合
     if ($lang == DEFAULT_LANG) {
         if (defined('DEFAULT_TZ_NAME')) {
             $obj->set_tz_name(DEFAULT_TZ_NAME);
         }
     }
     list($zone, $zonetime) = $obj->get_zonetime();
     if ($zonetime == 0 || empty($zone)) {
         return array('UTC', 0);
     }
     return array($zone, $zonetime);
 }
示例#2
0
function plugin___inline()
{
    global $language_considering_setting_level;
    global $language;
    global $i18n_temp_msg;
    switch (func_num_args()) {
        case 1:
            list($msg) = func_get_args();
            // $parm_lang = DEFAULT_LANG;
            $parm_lang = 'en_US';
            break;
        default:
            list($parm_lang, $msg) = func_get_args();
    }
    $msg = strip_htmltag($msg);
    // FIXME: level 5
    $view_lang = $language_considering_setting_level == 0 ? Lang::getLanguage(5) : $language;
    $view_lang_split = AcceptLanguage::splitLocaleStr($view_lang);
    // ja_JP なら ja に分割
    if ($parm_lang == $view_lang || $parm_lang == $view_lang_split[1]) {
        return $msg;
    }
    // 指定言語と同じ
    // 指定文字列が en 以外の場合は、ベース言語に変換後、他言語に変換する
    $parm_lang_split = AcceptLanguage::splitLocaleStr($parm_lang);
    if (isset($i18n_temp_msg)) {
        $temp_msg = i18n_TempMsg($parm_lang_split, $view_lang_split, $msg);
        if (!empty($temp_msg)) {
            return $temp_msg;
        }
    }
    if ($parm_lang_split[1] !== 'en') {
        $msg = i18n_ConfMsgGet($parm_lang_split, $msg, 1);
    }
    // :config から、単語を検索
    return i18n_ConfMsgGet($view_lang_split, $msg);
}
示例#3
0
function plugin_multilang_accept($lang)
{
    global $language_considering_setting_level;
    global $language;
    // FIXME: level 5
    $env = $language_considering_setting_level == 0 ? Lang::getLanguage(5) : $language;
    $l = AcceptLanguage::splitLocaleStr($env);
    return $lang == $env || $lang == $l[1];
}