Я пытаюсь вставить третий язык в существующую страницу, которая уже на французском и английском языках. Я начинаю с 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' => '其它' ) ); ?>