使用字典翻译的问题

#1 newsun668

今天,我试了一下字典翻译技术,发现了一个问题。
我有一个index.html模板页,上面有一个下拉选择框,可以选择当前语言:中文和英文的发现,模仿教程中的示例,却发现选择中文时却显示是英文,选择英文却显示英文。文件如下:
cn.php  放在 /lang 目录
return array(
'About'=>'关于',
'Tools'=>'工具',
'File'=>'文件',
'Chinese'=>'中文',
'Englist'=>'英语',
'TEXT'=>'有时候我们会希望让使用者输入比较大量的文字,此时,文字输入列就显得不敷使用'
);
?>

en.php   放在 /lang 目录
return array(
'TEXT'=>'THIS IS LONG TEXT'

);
?>

index.html 模板(摘选主要的)




<{T w=$message[0] }>


  

<{T w=$message[1] }>

  

<{T w=$message[2] }>

  
  

<{T w="TEXT" }>



index.php

define("SP_PATH",dirname(__FILE__)."/SpeedPHP");
define("APP_PATH",dirname(__FILE__));
$spConfig = array(
    'lang' => array(
       'en'=>APP_PATH . '/lang/en.php',
        'cn' => APP_PATH . '/lang/cn.php'

        
    ),
    'view' => array(
        'enabled' => TRUE, // 开启视图
        'config' =>array(
            'template_dir' => APP_PATH.'/tpl', // 模板目录
            'compile_dir' => APP_PATH.'/tmp', // 编译目录
            'cache_dir' => APP_PATH.'/tmp', // 缓存目录
            'left_delimiter' => '<{',  // smarty左限定符
            'right_delimiter' => '}>', // smarty右限定符
        ),
    )
);
require(SP_PATH."/SpeedPHP.php");
spRun(); // SpeedPHP 3新特性

main.php 控制器
class main extends spController
{
    function index(){
        $my_lang = $this->spArgs("lang","en"); // 默认是英语
        $this->setLang($my_lang);
        $this->my_lang = $my_lang;
        
        $this->message=array('File','About','Tools');

        $this->display("index.html");
    }
}
?>


就是以上的代码。如果把 index.php 中的两行绿色文字改为如下,则正常显示
'en'=>APP_PATH . '/lang/cn.php',
  'cn' => APP_PATH . '/lang/en.php'


但这并不符合思考的逻辑,怎么办呢?







2013-10-20 01:30:17

#2 jake

一般的做法就行,你想的太过了

英文字段:
"choose_cn" => "选择中文"
"choose_en" => "选择英文"

中文字典:
"choose_cn" => "xuanzhezhongwen"
"choose_en" => "xuanzheyingwen"

2013-10-20 16:43:57

#3 newsun668

jake 发表于 2013-10-20 16:43
一般的做法就行,你想的太过了

英文字段:
{:soso_e100:}谢谢jake的指导!我看不明白你的意思,能说详细点吗?

2013-10-20 18:51:00

#4 jake

newsun668 发表于 2013-10-20 18:51
谢谢jake的指导!我看不明白你的意思,能说详细点吗?
其实是因为我不明白你说的“选择中文时却显示是英文,选择英文却显示英文 ”是什么意思

2013-10-20 21:12:21

#5 newsun668

jake 发表于 2013-10-20 21:12
其实是因为我不明白你说的“选择中文时却显示是英文,选择英文却显示英文 ”是什么意思
...
是我写错了,不好意思,应该是这样的:正常是选择中文后显示中文界面,选择英文后显示英文界面;但现在是选择了中文却显示英文,选择英文却显示中文。

2013-10-22 04:12:19

#6 jake

newsun668 发表于 2013-10-22 04:12
是我写错了,不好意思,应该是这样的:正常是选择中文后显示中文界面,选择英文后显示英文界面;但现在是 ...
不管你的程序逻辑如何,这里有个最简单的解决方法:让用户选择中文(看起来是中文,但是程序员上是英文)的时候,显示中文界面。

2013-10-22 08:14:34