ホームページ  >  記事  >  バックエンド開発  >  thinkphp が多言語関数を実装する_PHP チュートリアル

thinkphp が多言語関数を実装する_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:36:521712ブラウズ

この記事では主に多言語機能(言語パック)を実装するための thinkphp を紹介します。必要な方は参考にしてください。1. Home (選択したプロジェクト名) の config.php に次の設定を追加します。 ​ コードは以下のように表示されます: '設定値'                                                                                                                                                                                                                                                                                                 'LANG_AUTO_DETECT' => true, // 言語を自動的に検出します 'DEFAULT_LANG' 'DEFAULT_LANG' => 'zh-cn', // デフォルトの言語 'LANG_LIST' 'LANG_LIST' => 'en-us,zh-cn,zh-tw', //許可される言語のリストを記述する必要があります。 'VAR_LANGUAGE' => 'l', // デフォルトの言語切り替え変数 ); ?> ​ ​ 2. php ファイル (tag.php) をホームの conf フォルダーに追加し、次のコードを追加します。 ​ コードは以下のように表示されます: 戻り配列( // 次の定義行を追加するだけです 'app_begin' => array('CheckLang') ); ​ ​ 3. Extend/Behavior/CheckLangBehavior.class.php ファイルを Home/lib/Behavior/ にコピーします (thinkphp パッケージのフルバージョンのみが利用可能です。ない場合は自分で作成してください)。 ​ CheckLangBehavior.class.php コード: ​ コードは以下のように表示されます: true, // 多言語機能をオンにした後に有効になります。 'Lang_list' = & gt', // 切り替え可能な言語リストはカンマで区切られます。 'Var_ language' = & gt; // デフォルトの言語切り替え変数 ); ​ //動作拡張の実行エントリを実行する必要があります パブリック関数 run(&$params){ // 静的キャッシュを有効にする $this->checkLanguage(); } ​ /*** 言語チェック * ブラウザがサポートする言語を確認し、言語パックを自動的にロードします * @アクセス非公開 * @return void ​​*/ プライベート関数 checkLanguage() { //言語パック機能を有効にせず、フレームワーク言語ファイルをロードして直接リターンするだけです If (!C('LANG_SWITCH_ON')){ 戻る; } } $langSet = C('DEFAULT_LANG'); // 言語パック機能が有効になります // 自動検出設定が有効かどうかに基づいて言語の選択を取得します If (C('LANG_AUTO_DETECT')){ If(isset($_GET[C('VAR_LANGUAGE')])){ $langSet = $_GET[C('VAR_LANGUAGE')];// 言語変数は URL に設定されます Cookie('think_lang',$langSet,3600); }elseif(cookie('think_lang')){// ユーザーの最後の選択を取得します $langSet = cookie('think_lang'); }elseif(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){// ブラウザ言語を自動的に検出します preg_match('/^([a-zd-]+)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches); $langSet = $matches[1]; Cookie('think_lang',$langSet,3600); } if(false ===tripos(C('LANG_LIST'),$langSet)) { // 不正な言語パラメータ $langSet = C('DEFAULT_LANG'); } } }// 現在の言語を定義します define('LANG_SET',strto lower($langSet)); ​ $group = ''; $path = (定義('GROUP_NAME') && C('APP_GROUP_MODE')==1) BASE_LIB_PATH.'Lang/'.LANG_SET.'/' : LANG_PATH.LANG_SET.'/'; // プロジェクトのパブリック言語パッケージを読み取ります If(is_file(LANG_PATH.LANG_SET.'/common.php')) L(include LANG_PATH.LANG_SET.'/common.php'); // グループ化された共通言語パッケージを読み取ります If(定義済み('GROUP_NAME')){ if(C('APP_GROUP_MODE')==1){ // 独立したグループ化 $file = $path.'common.php'; }else{// 通常のグループ化 $file = $path.GROUP_NAME.'.php'; $group = GROUP_NAME.C('TMPL_FILE_DEPR'); } if(is_file($file)) L($file を含む); } } // 現在のモジュール言語パッケージを読み取ります If (is_file($path.$group.strto lower(MODULE_NAME).'.php')) L(include $path.$group.strto lower(MODULE_NAME).'.php'); } } ​ ​ ​ 4. ホームの lang フォルダーの下に 3 つの言語フォルダーを作成します。 zh-cn en-us zh-tw です。 ​ 図に示すように、これら 3 つのフォルダーのそれぞれに common.php ファイルを作成します。 ​ common.php に、対応する内容を記述します。 ​ コードは以下のように表示されます: 'thinkphp の使用へようこそ', ); ?> コードは以下のように表示されます: 'ThinkPHP へようこそ', ); ?> ​ コードは以下のように表示されます: 'ThinkPHP へようこそ', ); ?> ​ ​ 5. tpl/Index/フォルダーの下にビューindex.htmlを作成します。 ​ コードは以下のように表示されます: ThinkPHP の例: 多言語

言語を切り替える: 簡体字中国語a href="?l=zh-tw">繁体字中国語 | 英語
{$Think.lang.welcome}
​ ​ 終わり! ​ 背景言語を切り替えたい場合は、次のように各文の前に L を追加します。 ​ コードは以下のように表示されます: パブリック関数インデックス(){ print L('add_user_error'); //add_user_error は単なる言語変数であり、特定の言語を言語パッケージに記述する必要があります。 $this->display(); } ​ ​ Cakephp のほうが良いと思います。すべての文に変数を与える必要はありません。

www.bkjia.com本当http://www.bkjia.com/PHPjc/737702.html技術記事この記事では主に多言語機能 (言語パック) を実装するための thinkphp を紹介します。必要な方は以下を参照してください。 1. ホーム (選択したプロジェクト名) の config.php に次の設定コードを追加します。?phpr ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。