0

情况
假设我们有以下课程:

<?php
class User {
const STATUS_NEW = 0;
const STATUS_DELETED = 1;

public static $aStatuses = array(
  self::STATUS_NEW     => 'New',
  self::STATUS_DELETED => 'Deleted'
);

// ...
}
?>

问题
如何制作字符串NewDeleted准备好进行本地化(在示例中使用 gettext)?

可能的解决方案?

...
public static function getStatuses() {
  return array(
    self::STATUS_NEW     => _('New'),
    self::STATUS_DELETED => _('Deleted')
  );
}

但不知何故,我觉得有一些更优雅的方式来做到这一点。

4

1 回答 1

0

我认为有两种严重的方法:

1) 使用 gettext 和 po-files,您可以使用 po-edit 轻松编辑

2) 使用数组进行定位:

// lang.english.php
$text_arr['new'] = "New"; 

// lang.german.php
$text_arr['new'] = "Neu";

然后包含用户指定的语言文件。在代码本身中,您只使用变量

就我自己而言,我更喜欢 gettext 和 po-files 而不是数组,因为它们在处理语言时更有用。特别是您的翻译不需要编写源代码。

两个版本在性能方面几乎相同。我读过一篇关于那个时候的文章。当我明天晚上回家时,我可以查看我的浏览器书签并将其发布在这里。或者你可以谷歌它。

于 2013-06-08T18:10:56.897 回答