多言語のWebサイトまたはアプリケーション開発では、通常、さまざまな言語の言語パック(言語ファイル)を作成する必要があります。これらの言語パックは、キーと価値のペアの形で存在し、キーはテキストの識別子を表し、値は特定の翻訳コンテンツを表します。 PHPは、これらの言語パックを処理するさまざまな方法を提供し、 array_fill_keysは、キー価値ペアの配列を動的に導くのに役立つ非常に実用的な関数の1つです。この記事では、 array_fill_keysを使用して、言語パックのキー価値構造を動的に設定する方法について説明します。
array_fill_keysは、特定のキー配列と値に基づいて新しい連想配列を生成できるPHPの関数です。 2つのパラメーターを受け入れます。
キー:キーを含む配列。
値:入力する値、すべての生成されたキーはこの値に対応します。
たとえば、 array_fill_keysを使用して言語パッケージの構造を入力すると、既存のキーリストに基づいて言語パッケージテンプレートを動的に生成できます。
たとえば、キー価値のペアを含む単純な言語パッケージ構造があるとします。
`''歓迎" => 'ようこそ'
'login' => 'login'
「登録」=>「登録」
array_fill_keysを介してこれらのキー価値ペアを動的に生成したいと考えています。まず、コードの例をご覧ください。
<?php
$keys = ['welcome', 'login', 'register'];
$value = '翻訳されていません'; // デフォルト値
$lang = array_fill_keys($keys, $value);
print_r($lang);
?>
上記のコードを実行すると、配列が生成され、すべてのキーが「翻訳されていない」に対応し、出力は次のとおりです。
Array
(
[welcome] => 翻訳されていません
[login] => 翻訳されていません
[register] => 翻訳されていません
)
この方法は、多言語アプリケーション用の予備的な言語パッケージ構造を作成するのに非常に適しており、その後、必要に応じて対応する値を徐々に置き換えることができます。
言語パッケージを動的に作成し、さまざまな言語に従って入力したいとします。最初にarray_fill_keysを介して言語パッケージの構造を初期化し、次に言語の切り替えに従って各キーの値を置き換えることができます。
Webサイトには2つの言語があると仮定します。英語(EN)と中国語(ZH)、 ARRAY_FILL_KEYSを使用して言語パッケージテンプレートを初期化し、異なる言語でコンテンツを動的に設定する方法の例です。
<?php
// 言語キー
$keys = ['welcome', 'login', 'register'];
// 言語パック構造を初期化します,すべての値はです '翻訳されていません'
$lang_en = array_fill_keys($keys, 'Not Translated');
$lang_zh = array_fill_keys($keys, '翻訳されていません');
// 言語に応じてコンテンツを動的に取り付けます
$lang_en['welcome'] = 'Welcome';
$lang_en['login'] = 'Login';
$lang_en['register'] = 'Register';
$lang_zh['welcome'] = 'いらっしゃいませ';
$lang_zh['login'] = 'ログイン';
$lang_zh['register'] = '登録する';
// 英語と中国語のパックを印刷します
echo "English Language Pack:\n";
print_r($lang_en);
echo "\nChinese Language Pack:\n";
print_r($lang_zh);
?>
上記のコードでは、 Array_fill_keysを使用して「翻訳されていない」のデフォルト値を使用して、最初に言語パッケージ構造を初期化します。次に、対応するキー価値ペアは、異なる言語の翻訳コンテンツに従って動的に変更されます。最後に、英語と中国語の2つの言語パックを手に入れました。
English Language Pack:
Array
(
[welcome] => Welcome
[login] => Login
[register] => Register
)
Chinese Language Pack:
Array
(
[welcome] => いらっしゃいませ
[login] => ログイン
[register] => 登録する
)
あなたのウェブサイトまたはアプリケーションにリンクする必要がある多くのテキストがあり、これらのテキストへのリンクが異なる言語によって異なる場合がある場合、 array_fill_keysは、URLで言語パックを動的に処理するのにも役立ちます。
言語に応じてドメイン名を変更する必要があるリンクがあるとし、次のようにすることができます。
<?php
// 言語キー
$keys = ['homepage', 'about_us', 'contact'];
// 言語パック構造を初期化します,すべての値はです默认 URL
$lang_en = array_fill_keys($keys, 'http://example.com');
$lang_zh = array_fill_keys($keys, 'http://example.com');
// 言語に応じたダイナミックフィリング URL
$lang_en['homepage'] = 'http://m66.net/en/home';
$lang_en['about_us'] = 'http://m66.net/en/about';
$lang_en['contact'] = 'http://m66.net/en/contact';
$lang_zh['homepage'] = 'http://m66.net/zh/home';
$lang_zh['about_us'] = 'http://m66.net/zh/about';
$lang_zh['contact'] = 'http://m66.net/zh/contact';
// 英語と中国語のパックを印刷します的 URL
echo "English Language Pack URLs:\n";
print_r($lang_en);
echo "\nChinese Language Pack URLs:\n";
print_r($lang_zh);
?>
上記のコードでは、最初にURLを含む言語パッケージ構造を初期化し、次に異なる言語に従ってURLのドメイン名部分を変更します。すべてのURLは、 M66.NETドメイン名に置き換えられています。