如何获得joomla语言列表

时间:2011-08-10 12:00:59

标签: joomla

我需要为我的joomla网站中安装的所有语言提供语言列表,以使用下拉列表中的列表。

$lg = &JFactory::getLanguage();
foreach ($lg->getKnownLanguages() as $l)
echo $l->getName() . ', ';

我该怎么办?

3 个答案:

答案 0 :(得分:3)

正如您在ContentLanguage字段类型文档中看到的那样:

http://docs.joomla.org/ContentLanguage_form_field_type

$languages = JLanguage::getKnownLanguages();

更多信息:

https://stackoverflow.com/a/26977901/634177

答案 1 :(得分:2)

第一次数据库查询:

$db =& JFactory::getDbo();
$db->setQuery(
    'SELECT sef, title_native' .
    ' FROM #__languages' .
    ' ORDER BY sef ASC'
);
$options = $db->loadObjectList();
$selected = "en_GB"

其次在您的布局中:

echo JHtml::_('select.options', $options, 'sef', 'title_native', $selected);

这将输出HTML <select>标记,默认情况下选择“英文”

修改 如果你想在JForm(Joomla&gt; 1.6)中使用它,有一个名为“contentlanguage”的字段类型

<field name="languages" type="contentlanguage" />

答案 2 :(得分:2)

您也可以使用适当的com_languages类

JLoader::register('LanguagesModelInstalled', JPATH_ADMINISTRATOR.DS.'components'.DS.'com_languages'.DS.'models'.DS.'installed.php');
$lang = new LanguagesModelInstalled();
$current_languages = $lang ->getData();

然后从检索到的数据中创建选择列表