我想翻译来自默认语言文件(由CI提供)的多种语言。我还想对这些值进行一些排序(例如,将它们插入到下拉列表中,我希望它们按字母顺序排序)。
我有一个在CodeIgniter中运行的项目,并且正在将所有硬编码文本移动到语言文件中。这也包括一些数据库表。
例如,我有下表:
+-------------+---------------------+--------------------+---------------+
| language_id | language_nl | language_en | language_code |
+-------------+---------------------+--------------------+---------------+
| 1 | Afrikaans | Afrikaans | AF |
| 2 | Albanese | Albanian | SQ |
| 3 | Arabisch | Arabic | AR |
| 4 | Armeens | Armenian | HY |
| 5 | baskisch | Basque | EU |
| 6 | Bengalees | Bengali | BN |
| | | | |
+-------------+---------------------+--------------------+---------------+
现在,我想将此表转移到我的语言文件中。
首先,我将删除language_nl
和language_en
列。
还必须引入一个新列language_key
。
所以它应该像这样:
+-------------+--------------+---------------+
| language_id | language_key | language_code |
+-------------+--------------+---------------+
| 1 | language_af | AF |
| 2 | language_sq | SQ |
| 3 | language_ar | AR |
| 4 | language_hy | HY |
| 5 | language_eu | EU |
| 6 | language_bn | BN |
+-------------+--------------+---------------+
然后在我的语言文件中添加以下行:
$lang["language_af"] = "African";
$lang["language_sq"] = "Albanian";
$lang["language_ar"] = "Arabic";
依此类推...
然后,我将创建一个管理器类,以帮助我找到密钥每种必需语言的翻译。 看起来像这样:
public function getLanguageName($key) {
return lang(key);
}
现在我有两个主要问题:
1)这是解决我遇到的问题的好方法吗?
2)假设我需要在下拉菜单中显示语言。我希望此下拉列表按字母顺序排序(当然,根据所选语言的顺序会有所不同)。我该如何解决这个问题?我是否要从语言文件中加载所有值,将它们放入数组中,然后对该数组进行排序?