获取语​​言 OpenCart

Get languages OpenCart

我正在尝试获取 opencart 中的语言。在 PrestaShop 我是这样做的:

public function getLanguages($active = true, $id_shop = false, $ids_only = false)
{
    $languages = Language::getLanguages($active, $id_shop, $ids_only);

    $langs = "";
    foreach ($languages as $language) {
        $lang = array();
        $lang["lang_id"] = $language['id_lang'];
        $lang["name"] = $language['name'];
        $langs[] = $lang;
    }
    return $langs;
}

在 OpenCart 中有类似的方法吗?

谢谢!

请参考Assign Language Variable in OpenCart Or Loading files in the controller

$this->language->load('path/file');
$this->data['foo1'] = $this->language->get('bar1');
$this->data['foo2'] = $this->language->get('bar2');

希望对您有所帮助。

试试这个代码:

$this->language->load('path/file');
$data['first'] = $this->language->get('first');
$data['second'] = $this->language->get('second');

看来您需要所有语言的数据。如果您需要获取已安装的所有语言数据,您可以这样做:

$language_data = array();

                $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "language ORDER BY sort_order, name");

                foreach ($query->rows as $result) {
                    $language_data[$result['code']] = array(
                        'language_id' => $result['language_id'],
                        'name'        => $result['name'],
                        'code'        => $result['code'],
                        'locale'      => $result['locale'],
                        'image'       => $result['image'],
                        'directory'   => $result['directory'],
                        'sort_order'  => $result['sort_order'],
                        'status'      => $result['status']
                    );
                }

当然你可以用return $language_data;

创建函数

很简单:

$this->load->model('localisation/language');
$languages = $this->model_localisation_language->getLanguages();

结果:

Xdebug var dump (image)