0

よし、4ヶ国語(ギリシャ語、フランス語、英語、ドイツ語)の多言語サポートサイトを作らざるを得なくなった。設定方法についていくつかのアイデアがありますが、これについてセカンドオピニオンが欲しいです。

最初のオプションはinclude、ユーザーの設定に基づくファイルです。

/* 
------------------
Language: English   in   ENGLISH.PHP
------------------ 
*/

$lang['TITLE'] = 'My website page title';
$lang['HOME'] = 'Home';

/* 
------------------
Language: French  in   FRENCH.PHP
------------------
*/
$lang['TITLE'] = 'Titre site-web';
$lang['HOME'] = 'Accueil';

ファイルはそれに応じて含まれます: include_once 'ENGLISH.PHP';etc.

もう 1 つのオプションは、一般的なファイルを 1 つ作成することですが、言語出力は配列にします。

$lang = array("en"=> array("TITLE"=>'My website page title',
                           "HOME" =>'Home'),

              "fr"=> array("TITLE"=>'Titre site-web',
                           "HOME" =>'Accueil'));



$set = $USER_INFO->langPref();   //  output:    en, fr, gr, de

echo $lang[$set]['TITLE'];

2 番目のオプションの方が管理しやすいようですが、この方法に欠点があるかどうかはわかりません...

ご意見はありますか?

ちなみに、全部自分で翻訳するつもりでした。

4

2 に答える 2

2

時間を無駄にしないでください。フレームワークを使用してください。たとえば、Symfony2 には優れた国際化コンポーネントがあります。

http://symfony.com/doc/current/components/intl.html

またはCakePHP、さらに簡単=)

http://book.cakephp.org/2.0/en/core-libraries/internationalization-and-localization.html

しかし...本当に...本当に最初からやりたいのなら=) .poファイルのようなものを使うことをお勧めします。ここに役立つ記事があります。http://www.icanlocalize.com/site/tutorials/how-to-translate-with-gettext-po-and-pot-files/

フレームワークの使用を強くお勧めします。CMS にもこの機能が組み込まれています...

これが役立つことを願っています。

于 2013-06-07T01:11:36.887 に答える
1

.ini を使用して言語を保存できます。

set = $USER_INFO->langPref(); 
if(file_exists("PATH_TO_FOLDER_LANGUAGE/".$set.'.ini')){
    $arrLanguage= parse_ini_file("PATH_TO_FOLDER_LANGUAGE/".$set.'.ini');
}else{
    $arrLanguage = array();
    echo "Language file not found";
}

print_r($arrLanguage);

ini ファイルでは、同じになります。

TITLE=Titre site-web
HOME=Accueil'

init ファイルの詳細については、http: //en.wikipedia.org/wiki/INI_fileを参照してください。

それがあなたを助けることを願っています!

于 2013-06-07T01:33:00.120 に答える