php 中英文语言转换类


Posted in PHP onSeptember 07, 2011

起初想到制成XML文档形式,这样操作也起来很容易。只是看到说XML效率不怎样
再者就是不同的模板,可这样也有个小问题,有些词汇比如时间提示是不确定,与可能是minute ,day。也有可能复数加 s
那好吧,做成数组,可数组就得做成在php文件的变量,很难做些扩展(我所知道所认为的是这样)
最后做成txt文本文件的形式,同样也为这样的效率担心,打开文件,搜索字符串,截取字符串这些,所幸最后运行了一下,一般机子大概0.0004秒,这让我很惊奇原以为会很慢,毕竟要调用多次。
好吧,上代码

class language 
{ 
static $lanObject; 
public $type; // unit , dashboard , menu ,other 
public $lan; // language 
private $special; // The common in the file 
private function __construct() 
{ 
if( isset($_GET['hl']) || isset($_POST['hl']) ) 
{ 
switch( isset($_GET['hl'])?$_GET['hl']:$_POST['hl'] ) 
{ 
case 'en': 
$this->lan = 'en'; 
case 'zh': 
$this->lan = 'zh'; 
case 'all': 
$this->lan = 'all'; 
default: 
$this->error(); 
} 
} 
else 
$this->lan = isset($_COOKIE['hl']) ? $_COOKIE['hl']:'zh'; 
} 
public static function getObject() 
{ 
if( !(self::$lanObject instanceof self) ) 
self::$lanObject = new language(); 
return self::$lanObject; 
} 
public function lto($key) //$key is English 
{ 
if( $this->lan !== 'zh' ) 
return $key; 
if( empty($this->special) ) // if the $special is null 
{ 
if( isset($this->type) ) 
$this->special = file_get_contents($this->type.'.txt'); 
else 
return $key; 
} 
echo $this->search($key); 
} 
private function search($searchTozh) // PHP String 
{ 
$key_start = strpos($this->special,$searchTozh); 
$key_end = strpos($this->special,' ',$key_start); 
$len_str = strlen($searchTozh); 
$for_sub = $key_start + $len_str + 1; 
return substr($this->special, $for_sub, $key_end - $for_sub); 
} 
}

strpos(); 是找到字符串第一次出现的位置 比如 ‘wo' 在 ‘hello world' 中,返回值为 6
substr();是截取字符串的一部分


接下来是调试时加上的代码

$la = language::getObject(); 
$la->type = 'unit'; 
$la->lto('min'); 
echo '<br/>'; 
$la->lto('hello');

lto(这里面要翻译的英文); 
unit.txt 文件的内容格式是
hello-你好 min-小 minute-分钟 minutes-分钟
 
$special设计为全局也是想到不止一次会调用lto() ,如果反复加载文件太浪费性能了。
$type设计为公有是考虑到加载的文件的效率问题,有的时候并不需要显示几天前这些,所以不如把这些按使用类型分开,比如有专门负责菜单翻译的menu.txt ,也有专门为操作,比如删除,收藏 翻译的txt文本。这样可以自由设定要加载的文本
语言也可以自由设定。
好吧,程序还可以改进,我没有按http请求中的客户端语言来设置$lan,
PHP 相关文章推荐
PHP编实现程动态图像的创建代码
Sep 28 PHP
PHP 缓存实现代码及详细注释
May 16 PHP
PHP调用Webservice实例代码
Jul 29 PHP
PHP swfupload图片上传的实例代码
Sep 30 PHP
迅速确定php多维数组的深度的方法
Jan 07 PHP
一个php生成16位随机数的代码(两种方法)
Sep 16 PHP
php实现多维数组中每个单元值(数字)翻倍的方法
Feb 16 PHP
PHP内核探索之解释器的执行过程
Dec 22 PHP
PHP实现mysqli批量执行多条语句的方法示例
Jul 22 PHP
Laravel 队列使用的实现
Jan 08 PHP
php7新特性的理解和比较总结
Apr 14 PHP
Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作示例
Oct 12 PHP
php继承的一个应用
Sep 06 #PHP
php 抽象类的简单应用
Sep 06 #PHP
PHP中PDO基础教程 入门级
Sep 04 #PHP
PHP中PDO的错误处理
Sep 04 #PHP
php中将网址转换为超链接的函数
Sep 02 #PHP
php ajax 静态分页过程形式
Sep 02 #PHP
php中防止伪造跨站请求的小招式
Sep 02 #PHP
You might like
适用于php-5.2 的 php.ini 中文版[金步国翻译]
2011/04/17 PHP
解析WordPress中函数钩子hook的作用及基本用法
2015/12/22 PHP
PHP 500报错的快速解决方法
2016/12/14 PHP
ThinkPHP 模板substr的截取字符串函数详解
2017/01/09 PHP
php实现等比例压缩图片
2018/07/26 PHP
php+Ajax处理xml与json格式数据的方法示例
2019/03/04 PHP
js中parseInt函数浅谈
2013/07/31 Javascript
javascript中创建对象的几种方法总结
2013/11/01 Javascript
多种jQuery绑定事件的实现方式
2016/06/13 Javascript
完美解决浏览器跨域的几种方法(汇总)
2017/05/08 Javascript
详解原生js实现offset方法
2017/06/15 Javascript
JQuery扩展对象方法操作示例
2018/08/21 jQuery
Node.js console控制台简单用法分析
2019/01/04 Javascript
微信小程序如何实现全局重新加载
2019/06/05 Javascript
微信小程序自定义弹窗实现详解(可通用)
2019/07/04 Javascript
JS 实现发送短信验证码的“59秒后重新发送验证短信”功能
2019/08/23 Javascript
Vue路由守卫之路由独享守卫
2019/09/25 Javascript
[01:23]2014DOTA2国际邀请赛 球迷无处不在Ti现场世界杯受关注
2014/07/10 DOTA
[00:18]天涯墨客三技能展示
2018/08/25 DOTA
[01:02:47]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
[01:00:30]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第二场 10.31
2020/11/02 DOTA
[46:47]完美世界DOTA2联赛PWL S2 FTD vs Magma 第二场 11.20
2020/11/23 DOTA
Python的Scrapy爬虫框架简单学习笔记
2016/01/20 Python
python+mongodb数据抓取详细介绍
2017/10/25 Python
对python多线程SSH登录并发脚本详解
2019/02/14 Python
Python count函数使用方法实例解析
2020/03/23 Python
详解Django中的FBV和CBV对比分析
2021/03/01 Python
HTML5文档结构标签
2017/04/21 HTML / CSS
“型”走纽约上东区:Sam Edelman
2017/04/02 全球购物
Under Armour安德玛中国官网:美国高端运动科技品牌
2018/03/09 全球购物
用JAVA实现一种排序,JAVA类实现序列化的方法(二种)
2014/04/23 面试题
考试退步检讨书
2014/01/15 职场文书
四风批评与自我批评发言稿
2014/10/14 职场文书
龙潭大峡谷导游词
2015/02/10 职场文书
农民工工资支付承诺书
2015/05/04 职场文书
爱心捐赠活动简讯
2015/07/20 职场文书