ホームページ  >  記事  >  バックエンド開発  >  PHP中国語と英語の言語変換クラス_PHPチュートリアル

PHP中国語と英語の言語変換クラス_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:24:19809ブラウズ

最初は操作しやすいXML文書形式で作ろうと考えました。 XML はあまり効率的ではないことがわかりました
さらに、これらは異なるテンプレートですが、時間プロンプトなどの一部の単語は不確実で、分または日である可能性があります。複数の数字にsを付けることも可能です
さて、配列にしますが、配列はPHPファイル内で変数にしなければならず、展開が大変です(これが私が知っていて思っていることです)
最後に txt テキスト ファイルにしました。ファイルを開く、文字列を検索する、文字列をインターセプトするなどの効率も心配していました。幸いなことに、最終的に実行したところ、平均的なマシンで約 0.0004 秒かかりました。これには驚きました。 . 結局のところ、複数回呼び出す必要があるため、非常に遅いだろうと思いました。
それでは、コードに行きましょう

コードをコピーします コードは次のとおりです:

クラス言語
{
static $lanObject; // ユニット、ダッシュボード、メニュー、その他
public $lan; // 言語
private $special; // ファイル内の共通関数 __construct()
if( isset($_GET['hl']) || isset($_POST['hl' ]) )
{
switch( isset($_GET['hl'])?$_GET['hl']:$_POST['hl'] )
{
case 'en':
$this->lan = 'en';
ケース 'zh':
$this->lan = 'zh';
ケース 'all':
$this->lan = 'all';エラー();
}
}
else
$this->lan = isset($_COOKIE['hl']) $_COOKIE['hl']:'zh'
パブリック静的関数 getObject();
{
if( ! (self::$lanObjectinstanceofself) )
self::$lanObject = new language();
return self::$lanObject
}
public function lto($key) //$key;は英語です
{
if ( $this->lan !== 'zh' )
return $key;
if( empty($this->special) ) // $special が null の場合
{
if ( isset($this->type) )
$this->special = file_get_contents($this->type.'.txt');
else
return $key
}
echo $this-> search($key);
}
プライベート関数 search($searchTozh) // PHP 文字列
{
$key_start = strpos($this->special,$searchTozh);特別,' ',$ key_start);
$len_str = strlen($searchTozh);
$for_sub = $key_start + $len_str + 1;
return substr($this->special, $for_sub, $key_end - $for_sub );
}
}


strpos(); たとえば、「hello world」の「wo」の場合、戻り値は 6 です。文字列の一部です
次のステップは、デバッグ中に追加することです



コードをコピーします

コードは次のとおりです:


$la = language::getObject();
$la-> type = 'unit'; $la->lto('min' ); $la->lto('hello');ここで翻訳されます); unit.txt ファイルのコンテンツ形式は hello -Hello min-小分-分-分
です。
$special はグローバルになるように設計されており、lto() が複数回呼び出されることが予想されます。ファイルが繰り返しロードされると、パフォーマンスが無駄になります。
$type はロードされたファイルの効率を考慮して公開されるように設計されており、数日前にこれらを表示する必要がない場合もあるので、用途に応じてこれらを分けた方がよい場合があります。 menu.txt は特にメニューの翻訳を担当し、削除などの操作のために翻訳された txt テキストの特別なコレクションもあります。このように、読み込むテキストも自由に設定することができます。
わかりました、プログラムは改善できます。http リクエストでクライアント言語に従って $lan を設定しませんでした。



http://www.bkjia.com/PHPjc/324291.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/324291.html

技術記事
最初は操作しやすいXML文書形式で作ろうと考えました。 XML はあまり効率的ではなく、さまざまなテンプレートがあることがわかりましたが、これには時間などのいくつかの単語に小さな問題があります...

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。