Ben bir mini-framework birlikte sordum önceki sorulara çok iyi cevap katılarak Gettext veya Zend_Translate kullanmadan multilingual websites ile ilgilenir ile geldi gibi this one.
languages/lang.en.php (çok dilli içerik kaynağı):
<?php
$lang = array(
'tagline_h2' => 'I create <a href="#content">websites</a>...',
languages/lang.es.php (başka dilde çok dilli içerik kaynağı):
<?php
$lang = array(
'tagline_h2' => 'Creo <a href="#content">sitios webs</a>...',
common.php (içerik kaynağının kontrolör):
<?php
session_start();
header('Cache-control: private'); // IE 6 FIX
if(isSet($_GET['lang']))
{
$lang = $_GET['lang'];
// register the session and set the cookie
$_SESSION['lang'] = $lang;
setcookie("lang", $lang, time() + (3600 * 24 * 30));
}
else if(isSet($_SESSION['lang']))
{
$lang = $_SESSION['lang'];
}
else if(isSet($_COOKIE['lang']))
{
$lang = $_COOKIE['lang'];
}
else
{
$lang = 'en';
}
//use appropiate lang.xx.php file according to the value of the $lang
switch ($lang) {
case 'en':
$lang_file = 'lang.en.php';
break;
case 'es':
$lang_file = 'lang.es.php';
break;
case 'tw':
$lang_file = 'lang.tw.php';
break;
case 'cn':
$lang_file = 'lang.cn.php';
break;
default:
$lang_file = 'lang.en.php';
}
//translation helper function
function lang($translation) {
global $lang;
return $lang[$translation]; }
include_once 'languages/'.$lang_file;
?>
index.php (the output):
<div id="tagline">
<h2><?php echo lang('tagline_h2'); ?></h2>
</div>
Benim lang.xx.php dosya ve benim index.php Tamam olduğumu düşünüyorum. Benim common.php hakkında oldukça emin değilim bir php acemi olduğum için. Ben orada unnecessary php code orada (ama her şey Tamam çalışır) düşünüyorum.
Herhangi bir öneriniz clean this code?