欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php 中英文語言轉(zhuǎn)換類

 更新時(shí)間:2011年09月07日 00:32:50   作者:  
想做個(gè)中英文的功能試一下,只是把一些常用且有規(guī)律的詞匯比如 ‘評(píng)論’ ,時(shí)間單位(幾秒幾小時(shí)前這些)可以自由的轉(zhuǎn)化。
起初想到制成XML文檔形式,這樣操作也起來很容易。只是看到說XML效率不怎樣
再者就是不同的模板,可這樣也有個(gè)小問題,有些詞匯比如時(shí)間提示是不確定,與可能是minute ,day。也有可能復(fù)數(shù)加 s
那好吧,做成數(shù)組,可數(shù)組就得做成在php文件的變量,很難做些擴(kuò)展(我所知道所認(rèn)為的是這樣)
最后做成txt文本文件的形式,同樣也為這樣的效率擔(dān)心,打開文件,搜索字符串,截取字符串這些,所幸最后運(yùn)行了一下,一般機(jī)子大概0.0004秒,這讓我很驚奇原以為會(huì)很慢,畢竟要調(diào)用多次。
好吧,上代碼
復(fù)制代碼 代碼如下:

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(); 是找到字符串第一次出現(xiàn)的位置 比如 ‘wo' 在 ‘hello world' 中,返回值為 6
substr();是截取字符串的一部分  
接下來是調(diào)試時(shí)加上的代碼
復(fù)制代碼 代碼如下:

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

lto(這里面要翻譯的英文); 
unit.txt 文件的內(nèi)容格式是
hello-你好 min-小 minute-分鐘 minutes-分鐘
 
$special設(shè)計(jì)為全局也是想到不止一次會(huì)調(diào)用lto() ,如果反復(fù)加載文件太浪費(fèi)性能了。
$type設(shè)計(jì)為公有是考慮到加載的文件的效率問題,有的時(shí)候并不需要顯示幾天前這些,所以不如把這些按使用類型分開,比如有專門負(fù)責(zé)菜單翻譯的menu.txt ,也有專門為操作,比如刪除,收藏 翻譯的txt文本。這樣可以自由設(shè)定要加載的文本
語言也可以自由設(shè)定。
好吧,程序還可以改進(jìn),我沒有按http請(qǐng)求中的客戶端語言來設(shè)置$lan,

相關(guān)文章

  • PHP會(huì)話處理的10個(gè)函數(shù)

    PHP會(huì)話處理的10個(gè)函數(shù)

    在PHP開發(fā)中,比起Cookie,Session 是存儲(chǔ)在服務(wù)器端的會(huì)話,相對(duì)安全,并且不像 Cookie 那樣有存儲(chǔ)長(zhǎng)度限制,這里我們?cè)敿?xì)介紹一下PHP處理會(huì)話函數(shù)將要用到10個(gè)函數(shù)
    2015-08-08
  • php7安裝mongoDB擴(kuò)展的方法分析

    php7安裝mongoDB擴(kuò)展的方法分析

    這篇文章主要介紹了php7安裝mongoDB擴(kuò)展的方法,簡(jiǎn)單分析了php7安裝MongoDB擴(kuò)展的步驟與相關(guān)配置操作技巧,需要的朋友可以參考下
    2017-08-08
  • php根據(jù)命令行參數(shù)生成配置文件詳解

    php根據(jù)命令行參數(shù)生成配置文件詳解

    這篇文章主要介紹了php根據(jù)命令行參數(shù)生成配置文件,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 深入Apache與Nginx的優(yōu)缺點(diǎn)比較詳解

    深入Apache與Nginx的優(yōu)缺點(diǎn)比較詳解

    本篇文章是對(duì)Apache與Nginx的優(yōu)點(diǎn)與缺點(diǎn)進(jìn)行了詳細(xì)的分析比較,需要的朋友參考下
    2013-06-06
  • PHP實(shí)現(xiàn)上傳圖片到數(shù)據(jù)庫并顯示輸出的方法

    PHP實(shí)現(xiàn)上傳圖片到數(shù)據(jù)庫并顯示輸出的方法

    這篇文章主要介紹了PHP實(shí)現(xiàn)上傳圖片到數(shù)據(jù)庫并顯示輸出的方法,結(jié)合實(shí)例形式分析了php采用二進(jìn)制形式存儲(chǔ)圖片及讀取顯示的相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05
  • PHP實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建XML文檔的方法

    PHP實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建XML文檔的方法

    這篇文章主要介紹了PHP實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建XML文檔的方法,結(jié)合實(shí)例形式分析了php針對(duì)xml格式數(shù)據(jù)的構(gòu)建及文件讀寫相關(guān)操作技巧,需要的朋友可以參考下
    2018-03-03
  • Snoopy類使用小例子

    Snoopy類使用小例子

    下載:http://sourceforge.net/projects/snoopy/ 今天才發(fā)現(xiàn)這個(gè)好東西,趕緊去下載了來看看,是用的parse_url 還是比較習(xí)慣curl
    2008-04-04
  • PHP中讀寫文件實(shí)現(xiàn)代碼

    PHP中讀寫文件實(shí)現(xiàn)代碼

    PHP中讀寫文件實(shí)現(xiàn)代碼,整理的還不錯(cuò),需要的朋友可以參考下。
    2011-10-10
  • php寫app用的框架整理

    php寫app用的框架整理

    在本篇文章里小編給大家整理的是關(guān)于php寫app用的框架的相關(guān)知識(shí)點(diǎn),有需要的朋友們學(xué)習(xí)下。
    2019-09-09
  • linux下為php添加curl擴(kuò)展的方法

    linux下為php添加curl擴(kuò)展的方法

    一般php源碼的擴(kuò)展庫里已經(jīng)帶了curl的擴(kuò)展,所以沒有必要下載,直接將編譯擴(kuò)展即可
    2011-07-07

最新評(píng)論