PHP 関数を使用して多言語 Web サイトを処理する方法

PHPz
リリース: 2023-06-16 08:26:01
オリジナル
1425 人が閲覧しました

今日のインターネット時代では、多言語 Web サイトを構築することは非常に一般的です。 Web サイトの閲覧者を増やすために、多くの企業や個人が Web サイトを多言語バージョンにすることを選択します。この場合、多言語の問題にいかに効率的に対処するかが非常に重要なテーマになります。この記事では、PHP 関数を使用して多言語 Web サイトを処理する方法に焦点を当てます。

  1. 多言語 Web サイトの原理を理解する

PHP 処理方法を紹介する前に、まず多言語 Web サイトの原理を理解してください。一般に、多言語 Web サイトでは、まずユーザーのブラウザ言語設定に従って対応する言語バージョンが選択され、次にページのコンテンツが翻訳されて表示されます。この場合、複数の言語バージョンのサポートを実装するにはどうすればよいでしょうか?

現時点では、Web サイトの言語リソースを独立した言語パッケージに配置し、いくつかの識別子を使用してさまざまな言語バージョンのリソースにインデックスを付けることを選択します。この言語パックは通常、XML、JSON などの特定のファイル形式です。翻訳する必要があるすべての文字列は、この識別子を使用して、対応する言語リソースを参照します。

たとえば、Web サイトの英語版では、文字列「about us」は「$LANG['about_us']」と表現でき、Web サイトの中国語版では、文字列「about us」と表現できます。 us" は " $LANG['about_us']" と表現できます。この 2 つに対応する言語リソース ファイルは次のとおりです。

//en.xml
<?xml version="1.0" encoding="utf-8"?>
<language>
    <string id="about_us">About Us</string>
</language>

//zh_CN.xml
<?xml version="1.0" encoding="utf-8"?>
<language>
    <string id="about_us">关于我们</string>
</language>
ログイン後にコピー
    #PHP 関数を使用して多言語 Web サイトを処理する
上記の言語解析戦略を使用すると、PHP 関数を使用して多言語 Web サイトを処理できます。一般的に使用される PHP 関数をいくつか示します。

(1) simplexml_load_file(): XML ファイルを解析し、解析操作を容易にするために XML ファイルを SimpleXMLElement オブジェクトに変換するために使用されます。

(2) json_decode(): 解析操作を容易にするために、json 形式の言語リソース ファイルを php オブジェクトまたは配列に解析するために使用されます。

(3)_(): 対応する言語リソース ファイル内の翻訳文字列を取得するために使用されます。通常はテンプレート ファイルで使用されます。例:

<p><?php echo _("about_us"); ?></p>
ログイン後にコピー

この関数は、言語と自動的に一致します。現在のユーザー 対応する言語リソース ファイルを選択し、対応する識別子の翻訳文字列を返すように設定します。

(4) eval() 関数: この関数は、PHP コードを文字列形式で実行でき、多言語翻訳関数または言語リソース ファイルを動的に生成するために使用できます。ただし、eval はセキュリティ上の問題を引き起こしやすいため、使用する場合は注意が必要です。

    多言語 Web サイトを実装するためのコード例
次に、多言語 Web サイトを実装するための簡単なコード例を示します:

<?php
    //获取当前用户的语言偏好设置
    $user_lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
    //定义语言文件路径
    $lang_file = './lang/'.$user_lang.'.json';
    //解析语言文件
    if(!file_exists($lang_file)){
        $lang_file = './lang/en.json';//找不到则默认用英文
    }
    $lang_json = file_get_contents($lang_file);
    $lang = json_decode($lang_json, true);

    //定义翻译函数,用于获取对应的翻译串
    function __($id){
        global $lang;
        return isset($lang[$id]) ? $lang[$id] : $id;
    }
?>

<!--html代码-->
<html>
    <head>
        <title><?php echo __('website_title'); ?></title>
    </head>
    <body>
        <h1><?php echo __('welcome_to_website'); ?></h1>
        <p><?php echo __('about_us'); ?></p>
        <p><?php echo __('contact_us'); ?></p>
    </body>
</html>
ログイン後にコピー
Inこの例では、まずユーザーの言語設定に従って対応する言語ファイルを選択し、言語リソース ファイルを json 形式で解析します。次に、翻訳関数 __($id) を定義して、対応する翻訳文字列を取得します。最後に、多言語翻訳のために HTML コードで __('string identifier') を使用します。

この設計により、多言語 Web サイトを簡単に実装し、ページ言語切り替えの複雑さを軽減し、ページ開発をより簡単かつ便利にすることができます。もちろん、多言語 Web サイトを実装する場合は、言語リソースの管理、言語パッケージのメンテナンスなど、いくつかの詳細にも注意を払う必要があります。しかし、一般に、この方法は多言語 Web サイトを迅速かつ効率的に構築できるため、ページ開発に大きな利便性をもたらします。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!