我正在开发一个商业目录的网站。 这些业务被分组到存储在数据库中的类别中。 我现在的问题是这个网站将是多语言的,类别的名称需要存储在语言文件中。 我可以简单地在类别表中添加一个名为"language_index"的列,然后像这样称呼它......
foreach($query_categories->result_array() as $cat){
$title = $this->lang->line($cat['language_index']);
}
但更大的问题是,如果在数据库中添加、修改或删除类别,则修改语言文件以更改、添加或删除某一行。在我的表单中创建类别时,我可以遍历所有语言,然后为每种语言添加一个表单字段,该字段将为每个语言文件保存不同的类别名称......例如:
<input type="text" name="english_cat_title">
<input type="text" name="filipino_cat_title">
但同样,我需要能够轻松修改category_names语言文件。 有人有什么建议吗?
最简单的方法:
你像这样存储你的类别:
id_category | lang | name
------------------------------
1 | en | Cat
1 | fr | Chat
....
您可以将主键设为 id_category + lang。
然后你通过语言得到你的类别:
$category = $this->db->get_where('categories', array('lang' => $user_lang))->row();
并将结果添加到全局语言:
$category_lang['category_name'] = $category->name;
$this->lang->language = array_merge($this->lang->language, $category_lang);
echo $this->lang('category_name');
当然,如果您有几行或其他什么,您可以适应。