ホームページ > 記事 > PHPフレームワーク > ThinkPHP6 を使用してローカライズされた対話を実現する方法
インターネットの発展とグローバリゼーションの加速に伴い、さまざまな地域や言語でやり取りできるようにローカライズする必要のある Web サイトやアプリケーションがますます増えています。ローカライズされたインタラクションとは、ユーザーがいる国や地域の言語、文化、習慣などの要素に基づいて、ユーザーのニーズを満たすように Web サイトまたはアプリケーションを調整することを指します。この記事では、ThinkPHP6 フレームワークを使用してローカライズされた対話を実現する方法を紹介します。
1. 多言語サポート
多言語サポートは、ローカライズされた対話の基礎です。 ThinkPHP6 フレームワークはさまざまな多言語サポート方法を提供しており、実際のニーズに応じて適切な方法を選択できます。
ファイルベースの多言語サポートは、最も一般的に使用される方法です。異なる言語の翻訳ファイルを異なるディレクトリに保存し、言語パックを設定することで多言語サポートを実現できます。
まず、以下に示すように、config ディレクトリに lang.php ファイルを作成し、言語パッケージの構成項目を設定します。
<?php return [ // 默认语言 'default_lang' => 'zh-cn', // 扩展语言包 'extend_list' => [ 'zh-cn','en-us' ], ];
説明:
default_lang: デフォルト言語パック。
extend_list: 拡張言語パックのリスト。
次に、対応する言語パック ディレクトリを app/lang ディレクトリに作成します。中国語の言語パッケージを例として、lang ディレクトリの下に zh-cn ディレクトリを作成し、その下に zh-cn を作成します。以下に示すように、中国語の翻訳に対応するキーと値のペアを保存するために使用される .php ファイル:
<?php return [ 'hello' => '你好', 'welcome' => '欢迎', ];
英語言語パッケージに en-us ディレクトリを作成し、en-us.php ファイルを作成します。このディレクトリには、以下に示すように、英語翻訳に対応するキーと値のペアを保存するために使用されます。
<?php return [ 'hello' => 'Hello', 'welcome' => 'Welcome', ];
最後に、コントローラーまたはビューで Lang クラスを使用して翻訳します。例:
echo Lang::get('hello');
上記の手順を実行すると、アプリケーションに多言語サポートを実装できます。
ファイル ベースの多言語サポートに加えて、ThinkPHP6 はデータベース ベースの多言語サポートも提供します。この方式では、翻訳情報をデータベースに蓄積することで多言語対応を実現します。
まず、以下に示すように、翻訳情報を保存する言語テーブルをデータベースに作成します。
CREATE TABLE `language` ( `id` int unsigned NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL COMMENT '翻译名称', `lang` varchar(10) NOT NULL COMMENT '语言包', `value` varchar(255) NOT NULL COMMENT '翻译内容', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
次に、config ディレクトリに lang.php 構成ファイルを作成し、言語パッケージを次のように設定します。以下に示すデータベース モード:
<?php return [ // 语言类型 'type' => 'db', // 默认语言 'default_lang' => 'zh-cn', // 数据表名 'table_name' => 'language', ];
説明:
type: 言語パッケージのタイプ。ここではデータベース モードに設定されます。
default_lang: デフォルトの言語。
table_name: 翻訳情報を格納するデータテーブルの名前。
最後に、翻訳のためにコントローラーまたはビューで Lang クラスを使用するだけです。例:
echo Lang::get('hello');
上記の手順を通じて、データベースを使用してアプリケーションに翻訳情報を保存することで、次のことを実現できます。多言語サポート。
2. ローカライズされたインタラクション
多言語サポートに加えて、ThinkPHP6 は、さまざまな地域や言語に合わせて調整するための一連のローカライズされたインタラクティブ機能も提供します。以下に、一般的に使用されるローカライズされた対話型関数をいくつか示します。
date_format() 関数は、日付と時刻のフォーマットに使用されます。アプリケーションが異なる地域やロケールで実行されると、時刻と日付の形式も変わる場合があります。したがって、アプリケーションで日付と時刻をフォーマットするには、date_format() 関数を使用することが非常に必要です。
たとえば、次のコードは、現在時刻を「年-月-日 時:分:秒」の形式にフォーマットします:
$date = date('Y-m-d H:i:s'); echo date_format(date_create($date), 'Y-m-d H:i:s');
number_format() 関数は、数値の書式設定に使用されます。国や地域によって数値の形式が異なるため、必要に応じてnumber_format() 関数を使用して数値の形式を設定できます。例:
$num1 = 1234567.89; $num2 = 9876543.21; echo number_format($num1, 2, '.', ','); echo number_format($num2, 2, '.', ',');
出力結果は次のとおりです:
1,234,567.89 9,876,543.21
setlocale() 関数は、ローカリゼーション関連の環境を設定するために使用されます。変数。たとえば、setlocale() 関数を使用して、日付と時刻の形式、通貨記号、数値形式などを設定できます。具体的な内容については、PHP マニュアルの関連する手順を参照してください。例:
setlocale(LC_TIME, 'en_US.UTF8'); echo strftime("%b %d %Y %H:%M:%S");
上記のコードは、日付と時刻を「Jan 01 2022 00:00:00」の形式で出力します。
上記の方法により、ThinkPHP6 フレームワークの下でローカライズされたインタラクションを実現し、さまざまな地域や言語のユーザーにより良いエクスペリエンスを提供できます。
以上がThinkPHP6 を使用してローカライズされた対話を実現する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。