组件如何解析它的语言和皮肤
你嵌入的组件有两层:外壳(Caputchin 外饰、它的复选框或品牌条、它的措辞和颜色),以及当你用一个游戏时,它里面的那个 游戏。每一层都有一种语言和一个皮肤,组件在它加载时于服务器上解析两者。这一页解释外壳如何解析,以及它如何和游戏对齐、好让两者绝不冲突。
要自定义一个游戏自己的语言、皮肤和配置,见 游戏自定义。这一页讲的是外壳。
外壳交付什么
外壳是完全自包含的。它把它的界面字符串以每种官方语言、以及一套亮和一套暗调色板捆绑在内,于是即便没有自定义、没有网络,它也总有正确的东西可渲染。替换那些捆绑的字符串、颜色或链接就是 白标,一个 Apex 档的功能;下面的解析无论你有没有覆盖都一样。
外壳如何挑一种语言
当组件加载时,它按这个顺序决定向服务器请求哪种语言:
- 组件的
locale属性,如果页面设了一个(一个明确的选择)。 - 否则,访客的浏览器语言。
服务器随后把那个与外壳的语言匹配(你的覆盖在先,然后是捆绑集合):一个精确匹配、然后基础语言、然后外壳的默认、然后它的第一种语言。所以外壳总是渲染出真实的措辞。
外壳如何挑一个皮肤
皮肤同样的形状:
- 组件的
skin属性,如果页面设了一个:light、dark,或一个预设名。 - 否则,访客的系统偏好(
prefers-color-scheme)。
服务器把那个解析成一套具体的亮或暗调色板(你的覆盖在先,然后是捆绑的)。每个预设声明它在哪种模式下工作;一个模式为 any 的预设在任一背景上都好看,因而对两种模式都有资格。外壳开箱即带一套亮和一套暗调色板,而解析出的皮肤总是报告一种具体的亮或暗模式,那正是外饰所渲染的。
外壳如何跟随游戏
这就是把它们绑在一起的那部分。当一个游戏被挂载时,外壳不直接从访客信号解析它的语言和皮肤。相反它 跟随游戏:组件先解析游戏,然后用游戏解析出的语言和亮或暗模式作为外壳的输入。
所以如果一位访客的浏览器是法语、而游戏解析为法语,那么周围的外饰也以法语渲染。如果游戏解析为它的暗皮肤,外饰就转暗以相配。只有当没有游戏被挂载时(朴素的复选框组件),或者当游戏没有解析出它自己的语言或皮肤时,外壳才回退到访客自己的语言和系统偏好。
结果是游戏和它周围的外饰总是一致,而无需你分别配置外壳和游戏来相配。
配置
外壳还有一个小小的 配置:它品牌条里的链接目标(主页链接和法律链接)。不像语言和皮肤,这个没有访客输入;服务器从你的覆盖或捆绑的默认来解析它。更改那些链接是 白标 的一部分。
另见
- 给组件做白标:替换外壳的措辞、颜色和链接。
- 用 CSS 给组件设样式:从你自己的样式表瞄准外壳的那些 part。
- 游戏自定义:游戏自己的语言、皮肤和配置。