2

これは分析的な質問です。

多言語システム、つまりユーザーが言語を変更できるシステムを作成するための最善の方法を知る必要があります。言語はCookieまたはデータベースに保存されます。
私は過去に、言語ごとに異なるファイルを使用して作業しました。たとえば、次のようになります。

nl.php

$lang['hi'] = 'Hoi';
$lang['howareyou'] = 'Hoe gaat het?';

en.php

$lang['hi'] = 'Hi'];
$lang['howareyou'] = 'How are you?';

index.php

include($language . '.php');

ご覧のとおり、このシステムは非効率的で安全ではありません。それを行うためのより良い方法はありますか?この瞬間にこれを行う方法はいくつか考えられますが、どれが良いかはわかりません。

誰かがこれを手伝ってくれますか?「こうやって!」と言うだけでなく、なぜそれが良い方法なのか教えてください。

4

2 に答える 2

4

Webインターフェイスを介してローカリゼーションテキストを変更する機能を提供する必要がない場合は、次のように行うことができます。

include / locales.php

<?php
    if (!isset($locales)) {
        $locales = array(
            "en" => array(
                "hi" => "Hi",
                "howareyou" => "How are you?"
            ),
            "nl" => array(
                "hi" => "Hoi",
                "howareyou" => "Hoe gaat het?"
            )
        );
    }
?>

index.php

include("include/locales.php");
if (!isset($locales[$language])) $locale = $locales[$deflang]; // $deflang could be "en"
else $locale = $locales[$deflang];

echo $locale["hi"]." ".$locale["howareyou"];

ハッシュを使用した単一のインクルードファイルの解析は非常に高速な操作であるため、これが最速のアプローチです。Webインターフェイスを介してローカリゼーション文字列を変更する機能を提供する必要がある場合は、ローカリゼーション文字列をDBに保存し、ページを表示するたびにそこからemを読み取る必要があります...このアプローチははるかに低速です。

于 2011-11-26T21:09:03.727 に答える
0

まず第一に、ファイルにこれ以上の言語を含める必要はありません。各言語を個別のファイルに保管してください。

  1. きれいです
  2. 定義されたキーを比較するスクリプトを作成できます。ファイルにキーがない場合は、この状況を修復するように人々に警告できます。

日付形式、数値形式などの言語ファイルで他の設定を保持できることを忘れないでください/

于 2011-11-26T21:37:32.810 に答える