3

より効率的な方法で記述できると思われるコードがありますが、一部のPHPクエリにはまだ少し錆びています。

次のクエリを書くためのより良い方法はありますか?

<?php 
if(qtrans_getLanguage()=='en'): echo 'Latest News'; endif;
if(qtrans_getLanguage()=='it'): echo 'Ultime notizie'; endif; 
if(qtrans_getLanguage()=='de'): echo 'Aktuelle Nachrichten'; endif; 
if(qtrans_getLanguage()=='zh'): echo '最新消息'; endif;
if(qtrans_getLanguage()=='es'): echo 'Últimas noticias'; endif;
if(qtrans_getLanguage()=='fr'): echo 'Dernières nouvelles'; endif; 
?>
4

2 に答える 2

8

ルックアップ テーブルを使用します。

$table = array(
   'en' => 'Latest News',
   'it' => 'Ultime notizie',
   ....
);

echo $table[qtrans_getLanguage()];
于 2012-11-08T13:32:16.790 に答える
2

言語マップを使用できます。をシミュレートしようとしているように見えますi18nが、通常、次のような言語ファイル定義が表示されます。

// lang.php
$LANG = array();
include_once('lang/english.php');
include_once('lang/french.php');

// lang/english.php
$LANG['en'] = array();
$lang['en']['LATEST_NEWS'] = 'Latests News';

// lang/french.php
$LANG['fr'] = array();
$lang['fr']['LATEST_NEWS'] = 'Dernières nouvelles';

// ... etc.

次に、コード内で次を使用できます。

<?= $LANG[qtrans_getLanguage()]['LATEST_NEWS']; ?>

または、必要な言語ファイルのみを含めて非常にシンプルにし、定数を最小限に抑えることもできます。

// lang/en.php
$LANG['LATEST_NEWS'] = 'Latest News';

次に、ヘッダーで:

include('lang/' . qtrans_getLanguage() . '.php');

<?= $LANG['LATEST_NEWS']; ?>
于 2012-11-08T13:34:24.057 に答える