Changeset 21813


Ignore:
Timestamp:
2012/05/07 19:41:24 (9 years ago)
Author:
pineray
Message:

refs #163 国際化対応

メッセージ置換のための関数群を作成.

Location:
branches/version-2_12-dev
Files:
9 added
3 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_12-dev/data/class/util/SC_Utils.php

    r21758 r21813  
    17361736    } 
    17371737 
    1738  
     1738    /** 
     1739     * メッセージエイリアスを翻訳する. 
     1740     * 
     1741     * @param string $string メッセージエイリアス 
     1742     * @param array $args 置換用のパラメーター 
     1743     * @param array $options オプション 
     1744     * @return string 表示するメッセージ 
     1745     */ 
     1746    function t($string, $args = array(), $options = array()) { 
     1747        // 言語コードが指定されていなければ、サイトの言語コードを使用する 
     1748        if (empty($options['lang_code'])) { 
     1749            $options['lang_code'] = LANG_CODE; 
     1750        } 
     1751        // 機種IDが指定されていなければ、機種を判別する 
     1752        if (empty($options['device_type_id'])) { 
     1753            $options['device_type_id'] = SC_Display_Ex::detectDevice(); 
     1754        } 
     1755 
     1756        // メッセージエイリアスに対応する、指定言語の文字列を取得 
     1757        $translated = SC_Helper_Locale_Ex::get_locale($string, $options['lang_code'], $options['device_type_id']); 
     1758 
     1759        // パラメーターが指定されていれば、メッセージを置換する 
     1760        if (empty($args)) { 
     1761          return $translated; 
     1762        } 
     1763        else { 
     1764          return strtr($translated, $args); 
     1765        } 
     1766    } 
     1767 
     1768    /** 
     1769     * メッセージエイリアス翻訳の複数形対応. 
     1770     * 
     1771     * @param integer $count 表示する数値 
     1772     * @param string $single メッセージエイリアス(単数) 
     1773     * @param string $plural メッセージエイリアス(複数) 
     1774     * @param array $args 置換用のパラメーター 
     1775     * @param array $options オプション 
     1776     * @return string 表示するメッセージ 
     1777     */ 
     1778    function t_plural($count, $single, $plural, $args = array(), $options = array()) { 
     1779        $args[':count'] = $count; 
     1780 
     1781        // 言語コードが指定されていなければ、サイトの言語コードを使用する 
     1782        if (empty($options['lang_code'])) { 
     1783            $options['lang_code'] = LANG_CODE; 
     1784        } 
     1785        // 機種IDが指定されていなければ、機種を判別する 
     1786        if (empty($options['device_type_id'])) { 
     1787            $options['device_type_id'] = SC_Display_Ex::detectDevice(); 
     1788        } 
     1789 
     1790        // 適切な複数形の書式を判定 
     1791        $index = SC_Helper_Locale_Ex::get_plural_index($count, $options['lang_code']); 
     1792 
     1793        // pluralの文字列はnull文字で結合されている 
     1794        $key = $single . chr(0) . $plural; 
     1795        // メッセージエイリアスに対応する、指定言語の文字列を取得 
     1796        $translated = SC_Helper_Locale_Ex::get_locale($key, $options['lang_code'], $options['device_type_id']); 
     1797        // null文字で分割 
     1798        $list = explode(chr(0), $translated); 
     1799 
     1800        return strtr($list[$index], $args); 
     1801    } 
    17391802} 
  • branches/version-2_12-dev/data/mtb_constants_init.php

    r21812 r21813  
    3232/** アップデート管理用ファイル格納場所 */ 
    3333define('UPDATE_HTTP', "http://sv01.ec-cube.net/info/index.php"); 
     34/** 言語コード */ 
     35define('LANG_CODE', "ja"); 
    3436/** 文字コード */ 
    3537define('CHAR_CODE', "UTF-8"); 
  • branches/version-2_12-dev/html/install/sql/insert_data.sql

    r21812 r21813  
    10271027INSERT INTO mtb_constants (id, name, rank, remarks) VALUES ('MASTER_DATA_REALDIR', 'DATA_REALDIR . "cache/"', 27, 'マスターデータキャッシュディレクトリ'); 
    10281028INSERT INTO mtb_constants (id, name, rank, remarks) VALUES ('UPDATE_HTTP', '"http://sv01.ec-cube.net/info/index.php"', 28, 'アップデート管理用ファイル格納場所'); 
     1029INSERT INTO mtb_constants (id, name, rank, remarks) VALUES ('LANG_CODE', '"ja"', 38, '言語コード'); 
    10291030INSERT INTO mtb_constants (id, name, rank, remarks) VALUES ('CHAR_CODE', '"UTF-8"', 39, '文字コード'); 
    10301031INSERT INTO mtb_constants (id, name, rank, remarks) VALUES ('LOCALE', '"ja_JP.UTF-8"', 40, 'ロケール設定'); 
Note: See TracChangeset for help on using the changeset viewer.