# 自定义 UI 文本

从 Blessing Skin 5.0.0 开始,您可以在管理面板中的「多语言」页面自定义 Blessing Skin 上的 UI 文本(同时也包括后端返回的消息文本)。

# 理解概念

对于每一条文本,都有三个属性,分别是「分组」、「键」、「文本」。

以用户仪表盘中关于积分系统介绍的那段文本为例,在 Blessing Skin 内部,是通过调用 trans('user.score-intro.introduction') 来获取该文本的。

# 分组

上面的整个 user.score-intro.introduction 可被小数点分成三段,其中第一段就是「分组」。以刚刚的文本为例,这里的分组就是 user

实际上,它是 Blessing Skin 目录下 resources/lang/{xxx}/(其中 xxx 为语种,如 enzh_CN)下的文件名(不含扩展名,即 .yml)。 例如,上面提到的那条文本就位于 resources/lang/{xxx}/user.yml 文件内。 该目录下还有 admin.ymlskinlib.yml 等文件,所以相应地,它们的「分组」就是 adminskinlib,依此类推。

#

还是以 user.score-intro.introduction 为例。键就是除了「分组」后剩下的部分。 所以对于这条文本,它的键就是 score-intro.introduction

但要注意,在语言文件(YAML 文件)里,文件结构并不是像这个键那样为扁平化结构,而是树状结构,是嵌套的。 打开 resources/lang/{xxx}/user.yml 文件,我们就可以发现,该条文本位于 score-intro 块中的 introduction 条。

# 文本

就是该条目的具体文本内容。在大多数情况下,文本内容只能是单行的。

# 添加新条目

在页面右方的表单可以添加新的条目,填写好「分组」、「键」、「文本」并提交后,如果该条文本在 Blessing Skin 有定义过,那么刷新页面即可生效。

以修改「签到」按钮的文本为例。该条文本的分组是 front-end,键是 user.sign,文本则按您喜欢的去写,如「点此获取积分」。 提交之后,刷新 /user 页面,就能看到按钮文本被更新。

如果需要修改其它语种下的文本,请先切换站点语言。例如要修改英文下的某条文本,就需要先切换到英文页面,再去修改。 单单修改某一语种下的文本,不会影响其它语种下的内容。

# 修改现有条目

在「多语言」页面的列表里,选择想要修改的条目,单击「修改」按钮,即可在弹出的提示窗口内对文本内容进行修改。

如果需要修改其它语种下的文本,请先切换站点语言。

注意,只能修改该条目的文本内容,不能修改分组或键。

# 删除条目

当您想将某条文本恢复为 Blessing Skin 的默认值,将该条目删除即可。

WARNING

注意:删除某条目时,会同时删除该条目在所有语种下的内容。

# 被 JavaScript 渲染的文本

由于 Blessing Skin 的不少前端页面都在浏览器基于 JavaScript 进行渲染,因此它们无法直接获取 admin.ymluser.ymlskinlib.yml 等语言文件的内容。 对于这部分的语言文本,它们均为于 front-end.yml。上面提到的「签到」按钮就属于这种情况。

# 一点点技巧

由于 Blessing Skin 中存在大量的文本,对于多数用户也难以清楚某条文本的分组和键是什么。

这里有个技巧:想修改某条文本,然后全局搜索该条文本的内容,看看它是位于哪个分组下的什么键。 有时会遇到相同文本内容,但分组或键不同的情况,这时候拿这些不同的分组和键,多试几次就可以。