Ignore:
Timestamp:
2012/06/13 10:36:38 (12 years ago)
Author:
pineray
Message:

#163 国際化対応

再度差し戻し.

File:
1 edited

Legend:

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

    r21916 r21920  
    17361736    } 
    17371737 
    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         // 置換用のパラメーターに数値を追加 
    1780         $args[':count'] = number_format($count); 
    1781  
    1782         // 言語コードが指定されていなければ、サイトの言語コードを使用する 
    1783         if (empty($options['lang_code'])) { 
    1784             $options['lang_code'] = LANG_CODE; 
    1785         } 
    1786         // 機種IDが指定されていなければ、機種を判別する 
    1787         if (empty($options['device_type_id'])) { 
    1788             $options['device_type_id'] = SC_Display_Ex::detectDevice(); 
    1789         } 
    1790  
    1791         // 適切な複数形の書式を判定 
    1792         $index = SC_Helper_Locale_Ex::get_plural_index($count, $options['lang_code']); 
    1793  
    1794         // pluralの文字列はnull文字で結合されている 
    1795         $key = $single . chr(0) . $plural; 
    1796         // メッセージエイリアスに対応する、指定言語の文字列を取得 
    1797         $translated = SC_Helper_Locale_Ex::get_locale($key, $options['lang_code'], $options['device_type_id']); 
    1798         // null文字で分割 
    1799         $list = explode(chr(0), $translated); 
    1800  
    1801         return strtr($list[$index], $args); 
    1802     } 
     1738 
    18031739} 
Note: See TracChangeset for help on using the changeset viewer.