Как установить 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 alcool<br/>et à faible 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' => '其它' ) 

Благодаря!

Просто

  $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' => '其它' ); 

просто проверьте, установлен ли $_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']; 

Проверьте, существует ли в вашем языке массив, а если нет, вернитесь к 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 alcool<br/>et à faible 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' => '其它' ) ); ?>