ホームページ >バックエンド開発 >PHPチュートリアル >php中国語・英語変換クラスの詳しい説明

php中国語・英語変換クラスの詳しい説明

怪我咯
怪我咯オリジナル
2017-07-14 10:37:573828ブラウズ

多言語ウェブサイト開発は、言語間の問題の解決に重点を置いています。
それでは、この問題をどうやって解決すればいいのでしょうか?大きく3つのステップに分けられます:

1. 多言語ページ
2. 多言語データベース
3. 統一されたユーザーアクセス言語

1. 多言語ページ
考慮すべき問題:
A. 文字を自動的に認識するユーザーがログインするときに、別の言語パックを呼び出しますか?
B. ユーザーが別の言語に切り替えると、別の言語パッケージが呼び出されますか?
C. 複数の言語を追加した後のディレクトリ構造?

ページの多言語化とは、ここで静的言語パッケージを使用できることを意味します。
言語ディレクトリは、設計時に、言語ごとに個別のサブディレクトリを含めて含める必要があります。
英語/en、簡体字中国語/gb、繁体字中国語/b5など(他の言語に拡張可能)
各ディレクトリには、各ページの言語バージョンが含まれています。言語バージョンを選択すると、対応するバージョンの言語パックを呼び出すことができます。

以下はコード例です

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(); は、文字列が最初に出現する位置を検索するもので、戻り値は 6 です。文字列パートをインターセプトします
以下は、
デバッグ中に追加されたコードです​​

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

lto (ここで翻訳される英語)

unit.txt ファイルのコンテンツ形式は、
hello-hello min-small minutes- minutes です。 - minutes

$special は、 lto() が複数回呼び出されることでパフォーマンスが無駄になるため、グローバルになるように設計されています。
$type はロードされたファイルの効率を考慮して公開されるように設計されており、数日前にこれらを表示する必要がない場合もあるので、用途に応じてこれらを分けた方がよい場合があります。 menu.txt は特にメニューの翻訳を担当し、削除などの操作のために翻訳された txt テキストの特別なコレクションもあります。このように、読み込むテキストも自由に設定することができます。

以上がphp中国語・英語変換クラスの詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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