我一直在尝试为PHP创建一个字符串文字文件,因此我可以将所有字符串保存在一个文件中。
我想知道做以下事情是否是一种好习惯:
class Literals
{
const String1 = "Hello";
const String2 = "World!";
//... (up to 100+ literals)...
}
然后在我的代码中的某处我可以这样称呼它:
$hello = Literals::String1;
这是好习惯吗?
答案 0 :(得分:3)
这取决于你要对字符串做什么。如果你要向用户展示它们,那么肯定的是,这是一种做国际化的简单方法,尽管如果你要做很多事情,你会想要看一些更高级的东西。如果您只是将它们用于关联数组键,数据库列名或其他内部事物,那么不,只需将它们保持内联。
答案 1 :(得分:1)
希望你没有真正称它们为String1 ... StringN:)
如果对于本地化我个人会更喜欢这个(Apple使用):
在代码中使用类似:
<h1><?php localize("Homepage","String for the homepage") ?></h1>
function localize($key,$help='') {
//do a lookup of the key and if not found use the key itself
}
然后,您可以使用解析器查找所有字符串并创建引用转换:
$strings = array(
/** String for the homepage */
'Homepage' => 'Homepage'
);
这样做的好处是主语言版本将始终有效,并且可以在需要时添加其他翻译。 它的缺点是你需要一个解析器来查找所有字符串。