Changeset 21916 for branches/version-2_12-dev/data/class/util/SC_Utils.php
- Timestamp:
- 2012/06/12 20:58:43 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_12-dev/data/class/util/SC_Utils.php
r21867 r21916 1736 1736 } 1737 1737 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 // 置換用のパラメーターに数値を追加 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 } 1739 1803 }
Note: See TracChangeset
for help on using the changeset viewer.