我对为我的网页脚本定义配置的更好方法有些怀疑 目前我有这样的事情:
switch($lang){
case 'en':
define('VAR1', 'abc')
define('VAR2', 'def')
break;
case 'unk':
define('VAR1', 'omg')
define('VAR2', 'wtf')
break;
}
等。看起来有些奇怪(不是我的想法),但它运作正常 然而,我的想法是定义一系列这些配置:
$vars = array(
'en'=>array(
'VAR1'=>'abc',
'VAR2'=>'def'
),
'unk'=>array(
'VAR1'=>'omg',
'VAR2'=>'wtf'
)
)
您如何看待哪一个更好? define
方式有点漂亮,因为我只需要编写<?=VAR1 ?>
而不是<?=$vars[$lang]['VAR1'] ?>
,但使用define
是明智的吗?
答案 0 :(得分:2)
你可能在谈论本地化。最好的方法是使用gettext-related tools。
如果你在谈论配置,最好的方法就是使用PHP可以轻松解析的ini文件。
答案 1 :(得分:2)
IMO,您应该将翻译拆分为不同的文件,而不是将2(或更多)放在同一个文件中。如果您有超过1000行翻译,会发生什么?
如果你想使用DEFINE并切换,你可以尝试:
switch ($lang) {
case 'en':
require_once ('path/to/lang/trans.en.ext');
break;
case 'unk':
require_once ('path/to/lang/trans.en.ext');
break;
default:
require_once ('path/to/lang/trans.default.ext');
break;
}
将您的设置放在这些文件中。我在我的项目中使用相同的方法,但仅用于生产,开发和沙箱设置之间的配置。对于本地化,我创建了一个类,它的工作方式与您描述的几乎相同,但使用的是单独的文件。
祝你好运!答案 2 :(得分:0)
我建议编写和阅读INI脚本。大多数最终用户和系统管理员都习惯使用这种格式。