source: branches/version-2_12-multilang/data/smarty_extends/modifier.t.php @ 22151

Revision 22151, 1.5 KB checked in by pineray, 10 years ago (diff)

#163 テキスト出力多言語対応

変数を翻訳する修飾子を追加.
default_t_plural 修飾子のコメントを修正.

Line 
1<?php
2/**
3 * Smarty plugin
4 * @package Smarty
5 * @subpackage plugins
6 */
7
8
9/**
10 * Smarty t modifier plugin
11 *
12 * Type:     modifier<br>
13 * Name:     t<br>
14 * Purpose:  translate variables
15 * @author   pineray 松田光貴 <matsudaterutaka at gmail dot com>
16 * @param string
17 * @return string
18 */
19function smarty_modifier_t($string)
20{
21    // 多言語対応用の関数が無ければ変数をそのまま出力
22    if (!function_exists('t')) {
23        return $string;
24    }
25
26    // パラメーター用の配列
27    $params = array();
28    // オプション用の配列
29    $options = array();
30
31    // 引数を取得
32    $args = func_get_args();
33    // パラメーターの引数があればセットする
34    if (count($args) > 1) {
35        array_shift($args); // $string
36
37        // 引数をパラメーターに変換
38        $max = floor(count($args)/2);
39        for ($i = 0; $i < $max; $i++) {
40            $key = $i * 2;
41            $params[$args[$key]] = $args[$key+1];
42        }
43
44        // 言語コードの指定があればオプションにセット
45        if (!empty($params['lang_code'])) {
46            $options['lang_code'] = $params['lang_code'];
47            unset($params['lang_code']);
48        }
49        // 機種の指定があればオプションにセット
50        if (!empty($params['device_type_id'])) {
51            $options['device_type_id'] = $params['device_type_id'];
52            unset($params['device_type_id']);
53        }
54    }
55
56    return t($string, $params, $options);
57}
Note: See TracBrowser for help on using the repository browser.