遥远的狼族 发表于 2012-4-17 17:53:56

关于URI 路由,多国语

初学CI。 看了一个下午看得内分泌失调。
这里的路由规则虽然有通配符。 但是好像并不能提供真正的便利。

因为无法分辨是get参数还是控制器还是函数。 最终不得已需要给每个控制器 函数写路由规则。

初学愚见。 求解:
多国语的参数 我要将它前置在控制器前。 路由规则要怎么写?。。

另外多国语, 这里使用 每次引用一个语言文件即将 $lang数组合并起来。这里还需要避免键值相同被后来者给覆盖。 所以官方推荐使用前缀

我觉得我朋友写的一个方法还更好用
        /**
       *
       * 这里与CI默认的语言相互独立
       * 使用方法例:self::t('index','this is a test.');
       * 翻译文件为返回一个二维数组的php文件
       * @param $filename 翻译文件名称,不包涵".php"
       * @param $key        要返回的数组中的键名
       * @param $lang        语言的get参数
       * @param $directory 翻译文件放置的目录
       */
        public static function t($filename, $key, $lang = 'lang',$directory = 'languagex')
    {
            if(!isset($_GET[$lang]))
                    return $key;
            //语言文件只读取application下的$directory目录
               if(!file_exists($langPath = dirname(BASEPATH). '/'.APPPATH. $directory))
               {
                       @mkdir($langPath);
                       return $key;
               }
               
               $array = array();
               $file = $langPath. '/'.$_GET[$lang].'/'.$filename. '.php';
               if(file_exists($file))
               {
                       $array = require($file);
                       return isset($array[$key]) ? $array[$key] : $key;
               }else{
                       return $key;
               }
    }
也是愚见。。。

很想学好CI。 但是目前来看。 它轻量级, 速度快。 却要付出很多代价。 开发起来好像不方便。

求指点

Hex 发表于 2012-4-17 18:44:04

多国语言的问题,可能直接用 CI 本身的功能会比较麻烦。。。
我很少做多国语言的东西,呵呵

as3291363 发表于 2012-4-17 22:48:19

我感覺很好控制啊. 主要還是熟悉 和 習慣問題吧.

遥远的狼族 发表于 2012-4-18 13:45:15

多谢。之前一直用Yii。就很容易去对比。   
页: [1]
查看完整版本: 关于URI 路由,多国语