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 相关文章推荐
PHP define函数的使用说明
Aug 27 PHP
PHP 在线翻译函数代码
May 07 PHP
php学习之 循环结构实现代码
Jun 09 PHP
介绍一些PHP判断变量的函数
Apr 24 PHP
THINKPHP2.0到3.0有哪些改进之处
Jan 04 PHP
php提交表单发送邮件的方法
Mar 20 PHP
CI框架整合smarty步骤详解
May 19 PHP
PHP二维数组去重算法
Dec 17 PHP
PHP缓存工具XCache安装与使用方法详解
Apr 09 PHP
PHP中用Trait封装单例模式的实现
Dec 18 PHP
PHP 数组操作详解【遍历、指针、函数等】
May 13 PHP
PHP实现计算器小功能
Aug 28 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将access数据库转换到mysql数据库的方法
2014/12/24 PHP
PHP简单读取xml文件的方法示例
2017/04/20 PHP
jQuery实现的文字hover颜色渐变效果实例
2016/02/20 Javascript
JS面向对象(3)之Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
2016/02/25 Javascript
js通过classname来获取元素的方法
2016/11/24 Javascript
如何实现json数据可视化详解
2016/11/24 Javascript
从零开始学习Node.js系列教程之基于connect和express框架的多页面实现数学运算示例
2017/04/13 Javascript
Angularjs 手写日历的实现代码(不用插件)
2017/10/18 Javascript
在vue项目中集成graphql(vue-ApolloClient)
2018/09/08 Javascript
vue里input根据value改变背景色的实例
2018/09/29 Javascript
详解vue-router导航守卫
2019/01/19 Javascript
ES6基础之默认参数值
2019/02/21 Javascript
使用node.JS中的url模块解析URL信息
2020/02/06 Javascript
vue 使用 canvas 实现手写电子签名
2020/03/06 Javascript
[01:57]2016完美“圣”典风云人物:国士无双专访
2016/12/04 DOTA
利用Python的Django框架生成PDF文件的教程
2015/07/22 Python
python 队列详解及实例代码
2016/10/18 Python
详谈python中冒号与逗号的区别
2018/04/18 Python
python 重定向获取真实url的方法
2018/05/11 Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
2018/12/12 Python
python 实现一次性在文件中写入多行的方法
2019/01/28 Python
解决Django一个表单对应多个按钮的问题
2019/07/18 Python
Python解决pip install时出现的Could not fetch URL问题
2019/08/01 Python
Python进程的通信Queue、Pipe实例分析
2020/03/30 Python
HTML5 WebSocket实现点对点聊天的示例代码
2018/01/31 HTML / CSS
Shoes For Crews法国官网:美国领先的防滑鞋设计和制造商
2018/01/01 全球购物
定制iPhone和Macbook保护壳:Slick Case
2018/11/21 全球购物
生物技术专业研究生自荐信
2013/09/22 职场文书
幼师自我鉴定范文
2013/10/01 职场文书
暑期社会实践先进个人主要事迹
2014/05/22 职场文书
幼儿园六一亲子活动方案
2014/08/26 职场文书
六一领导慰问欢迎词
2015/01/26 职场文书
我的兄弟姐妹观后感
2015/06/15 职场文书
婚宴新娘致辞
2015/07/28 职场文书
离职员工给领导和同事的感谢信
2015/11/03 职场文书
用Python监控你的朋友都在浏览哪些网站?
2021/05/27 Python