站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
建站程序
开发
服务器
办公软件
开发教程
服务器教程
软件使用教程
运营教程
热门电子书
WordPress教程
宝塔面板教程
CSS教程
Shopify教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
SpeedPHP/多语言实现
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
{{SpeedPHP top}} 在sp框架中,[[应用程序]]的界面多语言功能很容易就能够实现。而且在sp框架扩展类的[[Google]]翻译类帮助下,甚至能实现有着二十多种语言的多语言功能。 ==多语言实现== 首先,创建多语言的应用系统需要的是一个翻译器[[程序]],在sp框架中,这个翻译器可以有字典文本以及翻译函数两种,并且翻译函数可以是单独的函数,也可以是某个[[PHP]]类的方法函数。翻译器的功能都只有一个,就是将输入的默认语言词语,输出成目标语言词语。这里我们介绍以下两类翻译器的建立: 字典文本是比较简单而且常用的,下面就是一个字段文本的例子,默认语言是英文,对应的是中文:cn.php <pre> <?php return array( 'hello' => '你好', 'login' => '登录', 'about' => '关于' ); </pre> 很简单,其实就是PHP中的数组,键是默认语言词语,对应的值就是翻译后的词语。 注意:请注意,字典文件务必是[[UTF-8]]编码! 翻译函数则是通过某个函数或类的方法来进行翻译的程序,这里我们使用了sp框架扩展类中的多语言翻译类来作为例子,将英文翻译成中文: <pre> ... function translateto_cn($w) { return spClass("GoogleTranslate")->t("en", "zh-cn",$w); // 调用了GoogleTranslate的t方法 } ... </pre> 以上的[[代码]]可以放到index.php或通过import进入程序中作为一个全局的函数。 当然,sp框架扩展类GoogleTranslate是支持许多语言的,所以我们不仅可以制作中英对照的翻译器,而且可以制作更多不同语言的翻译器,同样的,我们的应用程序就可以不仅是双语的程序了。 注意:某些语言可能会有些特殊的要求,比如右对齐等等,在这个翻译函数中都可以进行这种加工。 另外我们希望开发者可以深入了解一下sp框架扩展中的翻译类,因为该翻译类是带有自动形成缓存字典功能的,可以避免了远程翻译接口的多次调用。 当翻译器建立完成后,我们就可以配置一下应用程序,将这些翻译器都对应起来: <pre> ... $spConfig = array( "mode" => "debug", ... 'lang' => array( // 多语言设置 'en' => 'default', // 标识为en的语言是default 'cn' => APP_PATH.'/cn.php', // cn的语言是通过字典文件翻译,这里是字典文件的路径。 'fr' => array("GoogleTranslate","zh_cn2fr"), // fr的语言是通过Google翻译类进行的 ), ... } </pre> 上面将多语言设置了之后,我们就可以对访问者进行语言设置,一般情况是让访问者选择自己的语言,或者通过判断IP等方法自动为访问者选择语言。sp框架提供了spController的方法setLang()来设置访问者的语言。在控制器中可以用: <pre> <?php class main extands spController { ... function setMyLang(){ $this->setLand('cn'); // 设置当前访问者为cn ... </pre> 这里设置了当前访问者的语言为cn,也就是中文,对应上面设置的'cn' => APP_PATH.'/cn.php',将通过cn.php这个字典来进行界面翻译。 注意:setLang是通过COOKIE来对访问者进行设置的,所以访问者在下次访问我们的[[网站]]时就不需要在进行语言选择了。 同时,sp框架也提供了与setLang对应的getLang函数,调用$this->getLang()将返回当前访问者的语言标识,比如cn。 然后在我们的程序或模板中使用T()来进行输出词语,T()将自动的将适合访问者的语言输出,当然如果找不到对应的语言词语,那么T()会将默认语言的词语输出。 在程序中可以用: <pre> ... echo T("hello"); ... </pre> 在[[Smarty]]模板中: <pre>... <b>{T w='hello'}</b> ... </pre> 因为前面我们设置了当前访问者的语言为cn,所以我们就可以看到输出对应"hello"的"你好"。 ==参考来源== http://speedphp.com/manual.html {{SpeedPHP}} [[category:SpeedPHP|D]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)
本页使用的模板:
模板:SpeedPHP
(
编辑
)
模板:SpeedPHP top
(
编辑
)