【问题标题】:yii2 gridview column headers not translatedyii2 gridview 列标题未翻译
【发布时间】:2015-09-01 12:21:47
【问题描述】:

目前在使用由 Yii 自己提供的 GridView Widget 时翻译标题的问题。

正在翻译页面和项目指示器以及页面的所有其他功能,当我在没有 GridView 小部件的情况下构建此表时,一切都很好。但是现在在手动做了几个表之后,我想看看是否有人知道这个问题的解决方案。

总结一下:

  • i18N 在整个网站上运行正常
  • GridView 小部件无法进行翻译
  • 翻译正在进行,例如 ActiveForm
  • 所有标头都添加到正确的消息文件中。

以及这里对应的代码:

//Controller-Action
$releaseQuery = new Query();
    $releaseQuery->
    select("`amount` AS 'Amount', 
            `created` AS 'Created',
            `user`.`email` AS 'User',
            `cinema`.`name` AS 'Cinema',
            `date` AS 'Date'")->
    from("`release`")->
        join('left join', '`user`', '`release`.`created_by` = `user`.`id`')->
        join('left join', '`cinema`', '`release`.`cinemaid` = `cinema`.`id`');
    $dataProvider = new ActiveDataProvider([
        'query' => $releaseQuery,
        'pagination' => [
            'pageSize' => 50,
        ],
    ]);

// View
<?= GridView::widget([
        'dataProvider' => $dataProvider,
        'columns' => [
            'Amount:currency',
            'Created',
            'User',
            'Cinema',
            'Date',
        ],
    ]) ?>

【问题讨论】:

    标签: php gridview widget yii2


    【解决方案1】:

    检查你的模型中是否有属性标签中的 i18n

    喜欢这个示例(如果没有,则必须在 gridview 的标签参数中添加或添加它们)

    public function attributeLabels()
    {
        return [
            'name' => Yii::t('app', 'Name'),
            'type' => Yii::t('app', 'Type'),
            'description' => Yii::t('app', 'Description'),
            'rule_name' => Yii::t('app', 'Rule Name'),
            'data' => Yii::t('app', 'Data'),
            'created_at' => Yii::t('app', 'Created At'),
            'updated_at' => Yii::t('app', 'Updated At'),
        ];
    }
    

    如果您使用 gii remenber 生成模型以设置 i18n 复选框

    如果您在查询中使用新列名,这些成为 gridview e 中的属性,您必须使用适当的翻译功能管理相对标签

    <?= GridView::widget([
        'dataProvider' => $dataProvider,
        'columns' => [
            ['attribute' => 'Amount',
             'label' => Yii::t('app', 'Amount'),],
            .......
    
        ],
    ]) ?>
    

    【讨论】:

    • 我在模型中设置了属性标签。但是,我在查询中使用了一组不同的标签。即使在消息文件中定义了这两者,我也会尝试摆弄这个。
    • 查询中的列名成为 grdiView 中的属性而不是标签。我认为你必须添加标签与 Yii::t
    猜你喜欢
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多