php 中英文语言转换类代码


Posted in PHP onAugust 11, 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 相关文章推荐
windows xp下安装pear
Dec 02 PHP
PHP设计模式之命令模式的深入解析
Jun 13 PHP
php ZipArchive压缩函数详解实例
Nov 06 PHP
PHP检测用户语言的方法
Jun 15 PHP
php数组生成html下拉列表的方法
Jul 20 PHP
在WordPress中使用wp_count_posts函数来统计文章数量
Jan 05 PHP
thinkPHP框架对接支付宝即时到账接口回调操作示例
Nov 14 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
Nov 14 PHP
php基于 swoole 实现的异步处理任务功能示例
Aug 13 PHP
ThinkPHP 5.1 跨域配置方法
Oct 11 PHP
laravel框架 laravel-admin上传图片到oss的方法
Oct 13 PHP
thinkphp框架类库扩展操作示例
Nov 26 PHP
php中计算中文字符串长度、截取中文字符串的函数代码
Aug 09 #PHP
php数据结构 算法(PHP描述) 简单选择排序 simple selection sort
Aug 09 #PHP
php的urlencode()URL编码函数浅析
Aug 09 #PHP
php简单的会话类代码
Aug 08 #PHP
php中将时间差转换为字符串提示的实现代码
Aug 08 #PHP
兼容firefox,chrome的网页灰度效果
Aug 08 #PHP
用php解析html的实现代码
Aug 08 #PHP
You might like
php使用异或实现的加密解密实例
2013/09/04 PHP
PHP实现将HTML5中Canvas图像保存到服务器的方法
2014/11/28 PHP
PHP+JQUERY操作JSON实例
2017/03/23 PHP
PHP大文件分块上传功能实例详解
2019/07/22 PHP
javascript同步Import,同步调用外部js的方法
2008/07/08 Javascript
Enter转换为Tab的小例子(兼容IE,Firefox)
2013/11/14 Javascript
js实现缓冲运动效果的方法
2015/04/10 Javascript
JS实现漂亮的淡蓝色滑动门效果代码
2015/09/23 Javascript
移动端基础事件总结与应用
2017/01/12 Javascript
深入探究node之Transform
2017/07/20 Javascript
深入理解ES7的async/await的用法
2017/09/09 Javascript
详解Vue如何支持JSX语法
2017/11/10 Javascript
vue实现图片加载完成前的loading组件方法
2018/02/05 Javascript
微信小程序实现左右联动的实战记录
2018/07/05 Javascript
原生javascript如何实现共享onload事件
2020/07/03 Javascript
[48:48]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Dream TIME
2014/05/21 DOTA
python中类变量与成员变量的使用注意点总结
2017/04/29 Python
详解tensorflow实现迁移学习实例
2018/02/10 Python
Flask框架web开发之零基础入门
2018/12/10 Python
django框架模型层功能、组成与用法分析
2019/07/30 Python
使用python获取邮箱邮件的设置方法
2019/09/20 Python
Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解
2020/02/12 Python
Python 使用双重循环打印图形菱形操作
2020/08/09 Python
css3 media 响应式布局的简单实例
2016/08/03 HTML / CSS
利用CSS3实现进度条的两种姿势详解
2017/03/21 HTML / CSS
浅谈HTML5 Web Worker的使用
2018/01/05 HTML / CSS
韩国江南富人区高端时尚百货商场:Galleria(格乐丽雅)
2018/03/27 全球购物
Myprotein台湾官方网站:全球领先的运动营养品牌
2018/12/10 全球购物
UNIX文件系统分类
2014/11/11 面试题
内科护士实习自我鉴定
2013/10/17 职场文书
初三物理教学反思
2014/01/21 职场文书
商务专员岗位职责范本
2014/06/29 职场文书
个人违纪检讨书
2014/09/15 职场文书
办公室领导干部作风整顿个人整改措施
2014/09/17 职场文书
红色故事汇观后感
2015/06/18 职场文书
音乐课《小猫钓鱼》教学反思
2016/02/18 职场文书