一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - php 中英文語言轉換類

php 中英文語言轉換類

2019-12-11 13:37php教程網 PHP教程

想做個中英文的功能試一下,只是把一些常用且有規律的詞匯比如 ‘評論’ ,時間單位(幾秒幾小時前這些)可以自由的轉化。

起初想到制成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,

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 2021年国内自拍 | 日本成人免费在线视频 | 我的妹妹最近有点怪在线观看 | 四虎影院在线免费观看 | 国内小情侣一二三区在线视频 | 猛操美女 | 日你逼 | 久99视频精品免费观看福利 | 日日骑夜夜骑 | 精品久久免费视频 | 免费看视频高清在线观看 | 欧美日韩亚毛片免费观看 | 欧美日韩综合网在线观看 | 深夜免费看 | 亚洲国产韩国欧美在线不卡 | 免费黄色片在线观看 | 国产精品99爱免费视频 | 久久亚洲网站 | 久久电影精品久久99久久 | 成人欧美视频在线看免费 | 男男gaygays国内 | 女同学高中你下面好紧 | 好姑娘在线视频观看免费 | 韩国一级淫片特黄特刺激 | 丁香网五月天 | 日本久久热 | 日本免费全黄一级裸片视频 | 无遮免费网站在线入口 | 91国内精品久久久久怡红院 | 黑人巨大和日本娇小中出 | 日本特黄一级大片 | 亚洲欧美一区二区三区不卡 | 亚洲国产天堂综合一区 | 亚洲一区二区三区不卡在线播放 | 扒开老师两片湿漉的肉 | 欧美日韩一区二区中文字幕视频 | 校草太大了h | 成人特级毛片69免费观看 | 亚洲第一se情网站 | 毛片影院| 欧美bbxx|