如何在 Yii2 中翻译 static 属性?

How can translate the static property in Yii2?

我想使用 Yii::t('app,'') 翻译静态 属性。

这是我的静态变量:

public static $status = [
    '1' => 'Active',
    '0' => 'In Active',
];

如果我在这里使用这样的翻译:

public static $status = [
    '1' => Yii::t('app','Active'),
    '0' => 'In Active',
];

它抛出错误 "Constant expression contains invalid operations"。

您无法翻译对象属性的默认值。解决它最简单的方法是使用静态方法:

public function getStatuses(): array {
    return [
        '1' => Yii::t('app', 'Active'),
        '0' => Yii::t('app', 'Inactive'),
    ];
}

您还可以在 class cunstractor 或 init 方法上为 $status 变量赋值。