场合
假设我们有以下课程:
<?php
class User {
const STATUS_NEW = 0;
const STATUS_DELETED = 1;
public static $aStatuses = array(
self::STATUS_NEW => 'New',
self::STATUS_DELETED => 'Deleted'
);
// ...
}
?>
问题
如何使字符串New
和Deleted
准备好进行本地化(在示例中使用gettext)?
可能的解决方案?
...
public static function getStatuses() {
return array(
self::STATUS_NEW => _('New'),
self::STATUS_DELETED => _('Deleted')
);
}
但不知怎的,我觉得有更优雅的方式来做这件事。
答案 0 :(得分:0)
我认为有两种严肃的方法:
1)使用gettext和po文件,您可以使用po-edit轻松编辑
2)使用数组进行lokalization:
// lang.english.php
$text_arr['new'] = "New";
// lang.german.php
$text_arr['new'] = "Neu";
然后包含用户指定的语言文件。在代码本身中,您只使用变量
对于我自己,我更喜欢gettext和po-files而不是数组,因为它们在处理语言时更加实用。特别是你的翻译不需要编写源代码。
两个版本在性能方面几乎相同。我刚读了一篇关于那个时间的文章。当我明天晚上回家时,我可以查看我的浏览器书签并在此处发布。或者你可以google它。