表格字段翻译
<h1>表格字段翻译</h1>
<p>数据表格中所有使用到字段的地方都会自动读取语言包中的翻译。</p>
<p>> {tip} 语言包的详细使用方法请参考<a><a href="trans.md">多语言</a></a>。</p>
<h3>语言包名称</h3>
<p>语言包名称需要与控制器名相对应,假如控制器名<code>UserProfileController</code>,则对应的语言包为<code>resources/lang/{当前语言}/user-profile.php</code>(需要转化为小写中划线风格)。</p>
<p>如果想要更改语言包的名称,可以通过下面两种方式进行更改</p>
<p>方式1</p>
<pre><code class="language-php">use Dcat\Admin\Http\Controllers\AdminController;
class UserController extends AdminController
{
/**
* 指定翻译文件名称
*
* @var string
*/
protected $translation = 'user1';
...
}</code></pre>
<p>方式2</p>
<pre><code class="language-php">use Dcat\Admin\Admin;
Admin::translation('user1');</code></pre>
<h3>示例</h3>
<p>现在假设语言包<code>resources/lang/zh_CN/user-profile.php</code>内容如下:</p>
<pre><code class="language-php">return [
'fields' =&gt; [
'name' =&gt; '名称',
'age' =&gt; '年龄',
'class' =&gt; '班级',
],
];</code></pre>
<p>控制器<code>UserProfileController</code>中设置的<code>Grid</code>字段会自动读取以上翻译:</p>
<pre><code class="language-php">// 不设置labael会自动读取语言包翻译
$grid-&gt;id();
$grid-&gt;name;
$grid-&gt;age;
$grid-&gt;class;
$grid-&gt;filter(function ($filter) {
$filter-&gt;gt('age');
});
// 上面代码等同于
$grid-&gt;name('名称');
$grid-&gt;age('年龄');
// 也可这样使用
$grid-&gt;id(admin_trans_field('id'));
$grid-&gt;name(admin_trans_field('name'));
$grid-&gt;age(admin_trans_field('age'));
</code></pre>
<h3>公共翻译</h3>
<p>当<code>admin_trans_field</code>函数找不到当前控制器中对指定字段的翻译时,会去<code>global.php</code>中查找。如果某些字段是很多数据表中都有的,可以把这些翻译写在<code>resources/lang/{当前语言}/global.php</code>文件中。</p>
<pre><code class="language-php">return [
// 常用的字段放在 global.php 中可以所有控制器共用。
'fields' =&gt; [
'id' =&gt; 'ID',
'created_at' =&gt; '创建时间',
'updated_at' =&gt; '更新时间',
],
];</code></pre>