ホームページ バックエンド開発 PHPチュートリアル thinkphp は多言語機能 (言語パック) を実装します。

thinkphp は多言語機能 (言語パック) を実装します。

Jun 06, 2018 pm 03:52 PM
thinkphp 多言語 言語パック

この記事では、多言語機能 (言語パック) を実装するための thinkphp を主に紹介します。必要な方は参考にしてください。

1. ホーム (選択したプロジェクト名) に次の設定を追加します。コード

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

<?php
return array(
    //&#39;配置项&#39;=>&#39;配置值&#39;
        &#39;LANG_SWITCH_ON&#39;     =>     true,    //开启语言包功能        
        &#39;LANG_AUTO_DETECT&#39;     =>     true, // 自动侦测语言
        &#39;DEFAULT_LANG&#39;         =>     &#39;zh-cn&#39;, // 默认语言        
        &#39;LANG_LIST&#39;            =>    &#39;en-us,zh-cn,zh-tw&#39;, //必须写可允许的语言列表
        &#39;VAR_LANGUAGE&#39;     => &#39;l&#39;, // 默认语言切换变量
);
?>
ログイン後にコピー
2. php ファイル (tag.php) を Home の conf フォルダーに追加し、次のコードを追加します:

コードをコピーします

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

return array(
    // 添加下面一行定义即可
    &#39;app_begin&#39; => array(&#39;CheckLang&#39;)
);
ログイン後にコピー
3. Extend/Behavior/CheckLangBehavior.class を配置します。 .php ファイルを Home/lib/Behavior/ にコピーします (thinkphp パッケージのフルバージョンでのみ利用可能です。そうでない場合は、自分で作成してください)

CheckLangBehavior.class.php コード:

コードをコピーします

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

<?php
defined(&#39;THINK_PATH&#39;) or exit();
/**
 * 语言检测 并自动加载语言包
 * @category   Extend
 * @package  Extend
 * @subpackage  Behavior
 */
class CheckLangBehavior extends Behavior {
    // 行为参数定义(默认值) 可在项目配置中覆盖
    protected $options   =  array(
            &#39;LANG_SWITCH_ON&#39;        => false,   // 默认关闭语言包功能
            &#39;LANG_AUTO_DETECT&#39;      => true,   // 自动侦测语言 开启多语言功能后有效
            &#39;LANG_LIST&#39;             => &#39;zh-cn&#39;, // 允许切换的语言列表 用逗号分隔
            &#39;VAR_LANGUAGE&#39;          => &#39;l&#39;,        // 默认语言切换变量
        );
    // 行为扩展的执行入口必须是run
    public function run(&$params){
        // 开启静态缓存
        $this->checkLanguage();
    }
    /**
     * 语言检查
     * 检查浏览器支持语言,并自动加载语言包
     * @access private
     * @return void
     */
    private function checkLanguage() {
        // 不开启语言包功能,仅仅加载框架语言文件直接返回
        if (!C(&#39;LANG_SWITCH_ON&#39;)){
            return;
        }
        $langSet = C(&#39;DEFAULT_LANG&#39;);
        // 启用了语言包功能
        // 根据是否启用自动侦测设置获取语言选择
        if (C(&#39;LANG_AUTO_DETECT&#39;)){
            if(isset($_GET[C(&#39;VAR_LANGUAGE&#39;)])){
                $langSet = $_GET[C(&#39;VAR_LANGUAGE&#39;)];// url中设置了语言变量
                cookie(&#39;think_language&#39;,$langSet,3600);
            }elseif(cookie(&#39;think_language&#39;)){// 获取上次用户的选择
                $langSet = cookie(&#39;think_language&#39;);
            }elseif(isset($_SERVER[&#39;HTTP_ACCEPT_LANGUAGE&#39;])){// 自动侦测浏览器语言
                preg_match(&#39;/^([a-z\d\-]+)/i&#39;, $_SERVER[&#39;HTTP_ACCEPT_LANGUAGE&#39;], $matches);
                $langSet = $matches[1];
                cookie(&#39;think_language&#39;,$langSet,3600);
            }
            if(false === stripos(C(&#39;LANG_LIST&#39;),$langSet)) { // 非法语言参数
                $langSet = C(&#39;DEFAULT_LANG&#39;);
            }
        }
        // 定义当前语言
        define(&#39;LANG_SET&#39;,strtolower($langSet));
        $group = &#39;&#39;;
        $path    =   (defined(&#39;GROUP_NAME&#39;) && C(&#39;APP_GROUP_MODE&#39;)==1) ? BASE_LIB_PATH.&#39;Lang/&#39;.LANG_SET.&#39;/&#39; : LANG_PATH.LANG_SET.&#39;/&#39;;
        // 读取项目公共语言包
        if(is_file(LANG_PATH.LANG_SET.&#39;/common.php&#39;))
            L(include LANG_PATH.LANG_SET.&#39;/common.php&#39;);     
        // 读取分组公共语言包
        if(defined(&#39;GROUP_NAME&#39;)){
            if(C(&#39;APP_GROUP_MODE&#39;)==1){ // 独立分组
                $file = $path.&#39;common.php&#39;;
            }else{ // 普通分组
                $file = $path.GROUP_NAME.&#39;.php&#39;;
                $group = GROUP_NAME.C(&#39;TMPL_FILE_DEPR&#39;);
            }
            if(is_file($file))
                L(include $file);
        }
        // 读取当前模块语言包
        if (is_file($path.$group.strtolower(MODULE_NAME).&#39;.php&#39;))
            L(include $path.$group.strtolower(MODULE_NAME).&#39;.php&#39;);
    }
}
ログイン後にコピー
4. ホームの lang フォルダーの下に 3 つの言語フォルダーを作成します。それらは zh-cn en-us zh-tw です。

図に示すように、これら 3 つのフォルダーのそれぞれに common.php ファイルを作成します。

common.php に対応して


を書き込みます。 コードをコピー

Code As次のとおりです:

<?php
return array(
        &#39;welcome&#39;=>&#39;Welcome to use thinkphp&#39;,
);
?>
ログイン後にコピー
コードをコピーします

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

<?php
return array(
    &#39;welcome&#39;=>&#39;欢迎使用ThinkPHP&#39;,
);
?>
ログイン後にコピー
コードをコピーします

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

<?php
return array(
    &#39;welcome&#39;=>&#39;歡迎使用ThinkPHP&#39;,
);
?>
ログイン後にコピー
5. tpl/Index/ フォルダーの下にビューindex.html を作成します

コード

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>ThinkPHP示例:多语言</title>
 </head>
 <body>
 <p class="main">
<p>切换语言:<a href="?l=zh-cn">简体中文</a> | <a href="?l=zh-tw">繁体中文</a> | <a href="?l=en-us">英文</a></p>
 <p class="result">{$Think.lang.welcome}</p>
</p>
 </body>
</html>
ログイン後にコピー
これで完了です!

背景言語を切り替えたい場合は、次のように各文の前に L を追加します:

コードをコピーします

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

public function index(){
print  L(&#39;add_user_error&#39;);  //add_user_error只是语言变量,具体的语言要到语言包里写
$this->display();
}
ログイン後にコピー
cakephp のほうが良いと思います。与える必要はありません。各文には変数が与えられます。

関連する推奨事項:

ThinkPHP 自動検証失敗の解決策

以上がthinkphp は多言語機能 (言語パック) を実装します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Win11 で中国語言語パックをインストールできない場合の解決策 Win11 で中国語言語パックをインストールできない場合の解決策 Mar 09, 2024 am 09:15 AM

Win11 は Microsoft が発売した最新のオペレーティング システムで、以前のバージョンと比較してインターフェイスのデザインとユーザー エクスペリエンスが大幅に向上しています。ただし、一部のユーザーは、Win11 をインストールした後、中国語の言語パックをインストールできないという問題が発生し、システムで中国語を使用する際に問題が発生したと報告しました。この記事では、ユーザーが中国語をスムーズに使用できるように、Win11 で中国語言語パックをインストールできない問題の解決策をいくつか紹介します。まず、中国語言語パックをインストールできない理由を理解する必要があります。一般的に言えば、Win11

Win11 で中国語言語パックをインストールできないことを解決する戦略 Win11 で中国語言語パックをインストールできないことを解決する戦略 Mar 08, 2024 am 11:51 AM

Win11 で中国語言語パックをインストールできない場合の戦略 Windows 11 のリリースにより、多くのユーザーがこの新しいオペレーティング システムにアップグレードするのが待ちきれません。ただし、一部のユーザーは中国語言語パックをインストールしようとすると問題が発生し、中国語インターフェイスを適切に使用できなくなります。この記事では、Win11で中国語言語パックをインストールできない問題について説明し、いくつかの対策を提案します。まず、Win11 に中国語言語パックをインストールするときに問題が発生する理由を調べてみましょう。これはシステムのせいである可能性があります

thinkphpプロジェクトの実行方法 thinkphpプロジェクトの実行方法 Apr 09, 2024 pm 05:33 PM

ThinkPHP プロジェクトを実行するには、Composer をインストールし、Composer を使用してプロジェクトを作成し、プロジェクト ディレクトリに入り、php bin/consoleserve を実行し、http://localhost:8000 にアクセスしてようこそページを表示する必要があります。

thinkphp にはいくつかのバージョンがあります thinkphp にはいくつかのバージョンがあります Apr 09, 2024 pm 06:09 PM

ThinkPHP には、さまざまな PHP バージョン向けに設計された複数のバージョンがあります。メジャー バージョンには 3.2、5.0、5.1、および 6.0 が含まれますが、マイナー バージョンはバグを修正し、新機能を提供するために使用されます。最新の安定バージョンは ThinkPHP 6.0.16 です。バージョンを選択するときは、PHP バージョン、機能要件、コミュニティ サポートを考慮してください。最高のパフォーマンスとサポートを得るには、最新の安定バージョンを使用することをお勧めします。

thinkphpの実行方法 thinkphpの実行方法 Apr 09, 2024 pm 05:39 PM

ThinkPHP フレームワークをローカルで実行する手順: ThinkPHP フレームワークをローカル ディレクトリにダウンロードして解凍します。 ThinkPHP ルート ディレクトリを指す仮想ホスト (オプション) を作成します。データベース接続パラメータを構成します。 Webサーバーを起動します。 ThinkPHP アプリケーションを初期化します。 ThinkPHP アプリケーションの URL にアクセスして実行します。

win10システムにインストールされている言語パックを削除する方法 win10システムにインストールされている言語パックを削除する方法 Jan 06, 2024 pm 10:37 PM

win10 オペレーティング システムを使用する場合、場合によっては、システム内の言語パックを削除する必要がある場合があります。このとき、最初に言語オプションを見つけてから、言語パックの追加を選択し、このプロセス中に、削除する言語パックのチェックを外して削除します。 win10 システムにインストールされている言語パックを削除する方法: 1. win+i を使用して設定を開き、時間と言語のオプションを見つけます。 2. 時間と言語のオプションで「言語」オプションを選択します。 3. 「言語の追加」を選択し、次のステップに進みます 4. 言語を追加する場合は、言語パックのチェックを外します 追加が完了すると、言語パックと音声パックを別々にダウンロードできます。

win7 言語パックはどこに保存されていますか? win7 言語パックはどこに保存されていますか? Jan 16, 2024 pm 03:06 PM

コンピューターに win7 オペレーティング システムがインストールされており、言語パックを変更するか、それに関連する変更を加えたい場合は、まずコンピューターの言語バーのフォルダーの場所を見つける必要があります。しかし、多くの人は言語バーフォルダーがどこにあるのかまだ知りません。編集者が知っている限り、システムのフォント フォルダーに関連する変更を加えることができます。詳細な手順について、エディターがどのように実行したかを見てみましょう ~ win7 言語パックはどのフォルダーにありますか? 1. スタート メニューを開き、コントロール パネルを見つけ、クリックしてに入ります。 2. ジャンプしたコントロール パネル インターフェイスで、時計、言語、地域のオプションを見つけてクリックして入力します。 3. ジャンプインターフェイスで、「表示言語オプションのインストール」または「アンインストール」をクリックします。 4. ジャンプ インターフェイスで、[インストール] をクリックして言語の選択を表示します。

laravelとthinkphpではどちらが優れていますか? laravelとthinkphpではどちらが優れていますか? Apr 09, 2024 pm 03:18 PM

Laravel フレームワークと ThinkPHP フレームワークのパフォーマンスの比較: ThinkPHP は、最適化とキャッシュに重点を置いて、一般に Laravel よりもパフォーマンスが優れています。 Laravel は優れたパフォーマンスを発揮しますが、複雑なアプリケーションの場合は、ThinkPHP の方が適している可能性があります。

See all articles