Translation podobno kot ima Magento:
Za delovanje potrebuješ Zend_Traslate. Adapter lahko spremeniš na gettext ali kaj drugega.
Struktura language folderja:
language/
si/
news.csv
index.csv
en/
news.csv
index.csv
Vsebina csv:
"String we want translated","Tekst, ki ga želimo prevest"
if ($config->cache->usecache) {
ZendTranslate::setCache($cache);
}
$translate = new ZendTranslate(
array(
'adapter' => 'csv',
'content' => FOLDERLANG, // pot do language folderja
'scan' => ZendTranslate::LOCALEDIRECTORY,
'ignore' => array('.svn'),
'disableNotices'=> 'true',
'locale' => $lang_id,
'delimiter' => ','
)
);
}
function __($key,$locale=null)
{
global $translate;
return $translate->translate($key,$locale);
}
S to funkcijo lahko na izi prevajaš:
<?= __("String we want translated"); ?>
Še Smarty modifier za view:
<?php
/*
* Smarty plugin
* @package Smarty
* @subpackage plugins
* Filename: .../smarty/plugins/modifier.t.php
* -------------------------------------------------------------
* Translation helper
* by Damjan Žnidaršič
* damjan@xhtml.si
*/
function smartymodifiert($string, $position = null, $length = null)
{
global $translate;
$manage = '<var style="outline:1px dotted red;padding:1px;">'.$translate->translate($string).'</var>';
//return $manage;
return $translate->translate($string);
}
$manage je zato, ker sem testiral prevajanje v frontendu (tako kot ima Magento). Samo click event dodaš na <var> in narediš api za prevajanje. Dela k piškot.
Najbolj všeč mi je, da je minimalno programiranja. It just works :)