Changeset 21813 for branches/version-2_12-dev/data/class
- Timestamp:
- 2012/05/07 19:41:24 (12 years ago)
- Location:
- branches/version-2_12-dev/data/class
- Files:
-
- 1 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_12-dev/data/class/util/SC_Utils.php
r21758 r21813 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 $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 } 1739 1802 }
Note: See TracChangeset
for help on using the changeset viewer.