ホームページ >PHPフレームワーク >ThinkPHP >ThinkPHP6 を使用してローカライズされた対話を実現する方法

ThinkPHP6 を使用してローカライズされた対話を実現する方法

PHPz
PHPzオリジナル
2023-06-20 09:11:301441ブラウズ

インターネットの発展とグローバリゼーションの加速に伴い、さまざまな地域や言語でやり取りできるようにローカライズする必要のある Web サイトやアプリケーションがますます増えています。ローカライズされたインタラクションとは、ユーザーがいる国や地域の言語、文化、習慣などの要素に基づいて、ユーザーのニーズを満たすように Web サイトまたはアプリケーションを調整することを指します。この記事では、ThinkPHP6 フレームワークを使用してローカライズされた対話を実現する方法を紹介します。

1. 多言語サポート

多言語サポートは、ローカライズされた対話の基礎です。 ThinkPHP6 フレームワークはさまざまな多言語サポート方法を提供しており、実際のニーズに応じて適切な方法を選択できます。

  1. ファイルベースの多言語サポート

ファイルベースの多言語サポートは、最も一般的に使用される方法です。異なる言語の翻訳ファイルを異なるディレクトリに保存し、言語パックを設定することで多言語サポートを実現できます。

まず、以下に示すように、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');

上記の手順を実行すると、アプリケーションに多言語サポートを実装できます。

  1. データベース ベースの多言語サポート

ファイル ベースの多言語サポートに加えて、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 は、さまざまな地域や言語に合わせて調整するための一連のローカライズされたインタラクティブ機能も提供します。以下に、一般的に使用されるローカライズされた対話型関数をいくつか示します。

  1. date_format()

date_format() 関数は、日付と時刻のフォーマットに使用されます。アプリケーションが異なる地域やロケールで実行されると、時刻と日付の形式も変わる場合があります。したがって、アプリケーションで日付と時刻をフォーマットするには、date_format() 関数を使用することが非常に必要です。

たとえば、次のコードは、現在時刻を「年-月-日 時:分:秒」の形式にフォーマットします:

$date = date('Y-m-d H:i:s');
echo date_format(date_create($date), 'Y-m-d H:i:s');
  1. number_format()

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
  1. setlocale()

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 サイトの他の関連記事を参照してください。

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