我正在构建一个php代码来填充一些元数据从同一个站点db获取信息,这个站点是英语,法语和西班牙语。现在我需要在每种语言中创建3个句子,并且我从数据库中获取了一些需要翻译的字符串。有没有办法可以使用JText :: _从语言文件中获取翻译并将其设置为每种语言的不同变量。 ?
我的意思是
$var_en = JText::_($cat_name) //store the category name in english
$var_fr = JText::_($cat_name) //store the category name in french
如何在我的代码中为JText指定我想要使用的语言?
它可能很复杂我知道,为了更好地理解,我将与您分享我的代码
function createmetadatainfo(){
global $mtconf;
//USE THIS IF SCRIPT EXECUTION TAKES TOO LONG
//set_time_limit(300);
//USE THE $app OBJECT TO CLOSE THE APPLICATION BEFORE JOOMLA RENDERS THE SITE
$app = JFactory::getApplication('admin');
//DATABASE
global $database;
$database =& JFactory::getDBO();
//CREATE AND UPDATE METADESC FOR CATEGORIES.
$query = 'SELECT
`cat_id` , `cat_name` , `cat_links`
FROM
`#__mt_cats`
ORDER BY
`cat_id`';
$database->setQuery($query);
$metaCats = $database->loadAssocList();
foreach ($metaCats as $value) {
//building metadescription sentences in different languages.
$meta_en = $value['cat_links']." listings on ".$value['cat_name']." category";
$meta_fr = $value['cat_links']." annonces sur ".$value['cat_name']." catégorie";
$meta_es = $value['cat_links']." listados en la categoría ".$value['cat_name'];
$cat_id = $value['cat_id'];
$query_cat_metadesc = "UPDATE `#__mt_cats` SET `metadesc` = '$meta_en' ,
`metadesc_fr` = '$meta_fr' ,
`metadesc_es` = '$meta_es'
WHERE `cat_id` = '$cat_id'";
$database->setQuery($query_cat_metadesc);
$database->query();
}
//CLOSE the $app
$app->close();
}
请注意foreach声明中我需要以不同语言存储$ meta_en,$ meta_fr和$ meta_es变量$ value [' cat_name']
答案 0 :(得分:0)
JText::_()
来电和使用不会为您提供更改语言的方法。它适用于应用程序范围的转换,因此使用了每个请求绑定的应用程序语言。
相反,您可以考虑创建自己的JLanguage
对象,以便更好地控制使用哪种语言。