表格字段翻译

数据表格中所有使用到字段的地方都会自动读取语言包中的翻译。

{tip} 语言包的详细使用方法请参考多语言

语言包名称

语言包名称需要与控制器名相对应,假如控制器名UserProfileController,则对应的语言包为resources/lang/{当前语言}/user-profile.php(需要转化为小写中划线风格)。

如果想要更改语言包的名称,可以通过下面两种方式进行更改

方式1

  1. use Dcat\Admin\Http\Controllers\AdminController;
  2. class UserController extends AdminController
  3. {
  4. /**
  5. * 指定翻译文件名称
  6. *
  7. * @var string
  8. */
  9. protected $translation = 'user1';
  10. ...
  11. }

方式2

  1. use Dcat\Admin\Admin;
  2. Admin::translation('user1');

示例

现在假设语言包resources/lang/zh_CN/user-profile.php内容如下:

  1. return [
  2. 'fields' => [
  3. 'name' => '名称',
  4. 'age' => '年龄',
  5. 'class' => '班级',
  6. ],
  7. ];

控制器UserProfileController中设置的Grid字段会自动读取以上翻译:

  1. // 不设置labael会自动读取语言包翻译
  2. $grid->id();
  3. $grid->name;
  4. $grid->age;
  5. $grid->class;
  6. $grid->filter(function ($filter) {
  7. $filter->gt('age');
  8. });
  9. // 上面代码等同于
  10. $grid->name('名称');
  11. $grid->age('年龄');
  12. // 也可这样使用
  13. $grid->id(admin_trans_field('id'));
  14. $grid->name(admin_trans_field('name'));
  15. $grid->age(admin_trans_field('age'));

公共翻译

admin_trans_field函数找不到当前控制器中对指定字段的翻译时,会去global.php中查找。如果某些字段是很多数据表中都有的,可以把这些翻译写在resources/lang/{当前语言}/global.php文件中。

  1. return [
  2. // 常用的字段放在 global.php 中可以所有控制器共用。
  3. 'fields' => [
  4. 'id' => 'ID',
  5. 'created_at' => '创建时间',
  6. 'updated_at' => '更新时间',
  7. ],
  8. ];