Как установить 3 языка с php?

Я пытаюсь вставить третий язык в существующую страницу, которая уже на французском и английском языках. Я начинаю с php.

Здесь код:

<!--?php
$lang = (isset($_GET['lang']) && $_GET['lang'] == 'en') ? 'en' : 'fr' ;
$langParam = ($lang == 'en') ? '&lang=en' : '';
$typeTerms = array(


'fr' =--> array(
 'WINES' => 'vins',
 'BEERS' => 'Bières',
 'MALTCOOLER' => 'boisson à base de malt',
 'CIDER' => 'cidres',
 'ALCOHOLFREE' => 'produits sans alcoolet à ****** teneur en alcool',
 'OTHERS' => 'autres'
),

'en' => array(
 'WINES' => 'Wines',
 'BEERS' => 'Beers',
 'MALTCOOLER' => 'Malt Based Cooler',
 'CIDER' => 'Cider',
 'ALCOHOLFREE' => 'Alcohol-free and low-alcoholic products',
 'OTHERS' => 'Others'
)
);




?>

И я хочу вставить этот массив и заставить его работать!

'zh' => array(
 'WINES' => '葡萄酒',
 'BEERS' => '啤酒',
 'MALTCOOLER' => '麦芽果酒',
 'CIDER' => '苹果酒',
 'ALCOHOLFREE' => '无酒精及低度酒精饮料',
 'OTHERS' => '其它'
)

Благодарю!

4 ответа

Просто

$lang = isset($_GET['lang'])?$_GET['lang']:"en";
 if(!in_array($lang,array("en","fr","zh"))) $lang = "en";

Чтобы добавить новый:

$typeTerms['zh'] = array(
 'WINES' => '葡萄酒',
 'BEERS' => '啤酒',
 'MALTCOOLER' => '麦芽果酒',
 'CIDER' => '苹果酒',
 'ALCOHOLFREE' => '无酒精及低度酒精饮料',
 'OTHERS' => '其它'
 );


Проверьте, существует ли в вашем языке массив, а если нет, вернитесь к fr:

$typeTerms = array(
 // terms go here
);
$lang = isset( $typeTerms[ $_GET[ 'lang' ] ] ) ? $_GET[ 'lang' ] : 'fr';
$langParam = ($lang != 'fr') ? "&lang=$lang" : '';

Обратите внимание, что вам нужно поместить этот код после определения $typeTerms.

Таким образом, вы можете добавить столько языков в свои $typeTerms и никогда не беспокоиться о внесении других изменений в код.


Используя оператор switch, чтобы проверить, является ли язык en или zh. Если это fr или что-то еще, отступает на основной язык fr.

<!--?php

 switch($_GET['lang']) {
 case 'en' : $lang = 'en'; break;
 case 'zh' : $lang = 'zh'; break;
 case 'fr' :
 default: $lang = 'fr'; break;
 }

 $langParam = in_array( $lang, array('en', 'zh') ) ? '&lang=' . $lang : '';

 $typeTerms = array(

 'fr' =--> array(
 'WINES' => 'vins',
 'BEERS' => 'Bières',
 'MALTCOOLER' => 'boisson à base de malt',
 'CIDER' => 'cidres',
 'ALCOHOLFREE' => 'produits sans alcoolet à ****** teneur en alcool',
 'OTHERS' => 'autres'
 ),

 'en' => array(
 'WINES' => 'Wines',
 'BEERS' => 'Beers',
 'MALTCOOLER' => 'Malt Based Cooler',
 'CIDER' => 'Cider',
 'ALCOHOLFREE' => 'Alcohol-free and low-alcoholic products',
 'OTHERS' => 'Others'
 ),

 'zh' => array(
 'WINES' => '葡萄酒',
 'BEERS' => '啤酒',
 'MALTCOOLER' => '麦芽果酒',
 'CIDER' => '苹果酒',
 'ALCOHOLFREE' => '无酒精及低度酒精饮料',
 'OTHERS' => '其它'
 )

 );

?>


просто проверьте, установлен ли $_GET['lang']:

if(isset($_GET['lang']) && in_array($_GET['lang'], array('en, 'fr', 'zh')))
 $lang = $_GET['lang'];
else
 $lang = 'en'; // your Default lang

Затем определите массив слов:

$words = array(
'en' => array(...),
 'fr' => array(...),
 'zh' => array(...)
);

и использовать массив:

echo $words[$lang]['beers'];

licensed under cc by-sa 3.0 with attribution.