>情况
假设我们有以下类:
<?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')
);
}
但不知何故,我觉得有一些更优雅的方法可以做到这一点。
我认为有两种严肃的方法:
1( 使用获取文本和 PO 文件,您可以通过 po-Edit 轻松编辑
2( 使用数组进行 lokalization:
// lang.english.php
$text_arr['new'] = "New";
// lang.german.php
$text_arr['new'] = "Neu";
然后包括用户指定的语言文件。在代码本身中,您只使用变量
就我自己而言,我更喜欢 gettext 和 po 文件而不是数组,因为它们在处理语言时更有用。特别是您的翻译不需要编写源代码。
两个版本在性能方面几乎相同。我前段时间读过一篇关于那个sime的文章。当我明天晚上回家时,我可以查看我的浏览器书签并将其发布在这里。或者你可以谷歌一下。