ホームページ  >  記事  >  PHPフレームワーク  >  ThinkPHP6 を使用して多言語機能を実現する

ThinkPHP6 を使用して多言語機能を実現する

WBOY
WBOYオリジナル
2023-06-21 14:39:293669ブラウズ

インターネットの継続的な発展に伴い、世界中のユーザーにより良いサービスを提供するために、ますます多くの Web サイトやアプリケーションが多言語機能をサポートする必要があります。 Web 開発において、ThinkPHP は非常に優れた PHP フレームワークであり、多言語サポートが組み込まれているため、開発者は多言語アプリケーションを簡単に実装できます。この記事では、ThinkPHP6 フレームワークを使用して多言語機能を実現する方法を紹介します。

1. 多言語設定

ThinkPHP6 で多言語機能を実装するには、アプリケーションの config ディレクトリに新しい lang.php ファイルを作成して多言語を設定する必要があります。サポート。以下に示すように、このファイルで複数の言語パックを構成でき、デフォルトの言語と言語変数を設定できます。

<?php

return [
    'default_lang'  => 'zh-cn', // 默认语言
    'lang_detect_var'   => 'lang', // 语言检测变量
    'lang_list' => ['zh-cn', 'en-us'], // 支持的语言列表

    'LANG_SWITCH_ON' => true, // 开启语言包功能

    'phrase'    => ['hello' => '你好', 'world' => '世界'], // 语言变量
];

上記の言語構成では、デフォルトの言語を中国語 (zh-cn) に設定します。 、サポートされています。言語リストは中国語と英語で、言語パック機能が有効になっており、2 つの言語変数 hello と world が設定されています。このうち、lang_detect_var は言語の GET パラメータを検出するために使用され、デフォルトは lang、つまり URL に ?lang=en を追加することで言語を切り替えます。

2. 言語パックファイル

言語パックファイルは、言語変数を格納するPHPファイルで、各言語に対応した言語パックディレクトリに作成されます。たとえば、lang/zh-cn ディレクトリに lang.php ファイルを作成して中国語の変数を保存します。

<?php

return [
    'hello' => '你好',
    'world' => '世界',
    'welcome'   => '欢迎',
];

同様に、lang/en-us ディレクトリに lang.php ファイルを作成して英語の変数を保存します。変数:

<?php

return [
    'hello' => 'Hello',
    'world' => 'World',
    'welcome'   => 'Welcome',
];

上の例では、hello、world、welcome という 3 つの言語変数を保存しました。

3. 言語パッケージの呼び出し

アプリケーションでは、 メソッドを使用して、現在の言語パッケージの言語変数を取得できます。 メソッドを使用する場合、2 番目のパラメーターを設定して、呼び出す言語パックを指定できます。例:

echo __('hello'); // 输出当前语言包中的 hello 变量
echo __('hello', 'en-us'); // 输出英文语言包中的 hello 变量

言語変数が存在しない場合、__ メソッドは変数の名前を返します。言語変数の値が現在の言語パッケージに設定されていない場合、フレームワークはデフォルトの言語パッケージ内の対応する値を自動的に照会します。デフォルトの言語パッケージに変数の値がない場合、変数の名前は返される。

4. 言語パッケージの切り替え

アプリケーションでは、言語変数を設定する方法を使用して、多言語機能を切り替えることができます。たとえば、コントローラーでは、以下に示すように、setLang メソッドを使用して言語変数を設定できます。

public function setLang()
{
    $lang = input('param.lang');

    if (in_array($lang, config('lang_list'))) {
        cookie('think_var', $lang);
        $this->redirect('index/index');
    } else {
        $this->error('语言不存在');
    }
}

上記のコードでは、まず lang パラメーターを取得し、その値がサポートされている値に含まれているかどうかを判断します。 language list が存在する場合、言語変数を設定し、ホームページにリダイレクトします。存在しない場合は、エラー メッセージが表示されます。

5. まとめ

この記事では、ThinkPHP6 フレームワークを使用して多言語機能を実現する方法を紹介します。多言語構成、言語パック ファイル、言語パック呼び出しなどの手順を実行することで、アプリケーションに多言語サポートを簡単に追加できるようになりました。この記事が、多言語機能を実装する必要がある開発者に役立つことを願っています。

以上がThinkPHP6 を使用して多言語機能を実現するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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