> For the complete documentation index, see [llms.txt](https://hikaripe-sc.hikaricalyx.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hikaripe-sc.hikaricalyx.com/6.1/6.1.1.md).

# 6.1.1：针对 Edgeless 插件的多语言自适应实现方式

Hikari PE V8.0 是一个多语言的项目。

为了能够让 Edgeless 插件同时适应多种语言的 PE（例如 Hikari PE V8.0 TC 繁体中文版），我们建议 Edgeless 插件的开发者针对这一点新增多语言自适应特性。新增此特性不会影响其它兼容 Edgeless 插件的仅有简体中文版的 PE（含 Edgeless 自身）。

{% hint style="info" %}
以下内容也适用于 PE 内其它涉及到多语言自适应配置的部分。\
同样的，如果您对加以修改定制不感兴趣，请勿继续阅读这一章节。
{% endhint %}

我们假设您的插件的内容放置在了 `X:\Program Files\Edgeless\your_plugin_dir` 中。如要实现多语言自适应，除了要在您的插件目录中新建 `Localization` 目录之外，您还需要在 Edgeless 插件的加载脚本（cmd 或 wcs）开头新增以下内容。

针对 CMD 格式的加载脚本开头（注释部分无需复制）：

```
:: 以下命令会将语言代码存入变量 %langcode% 中
for /f "tokens=2* delims= " %%A in ('Reg Query HKLM\System\CurrentControlSet\Control\Nls\Language /v InstallLanguage') do set langcode=%%B
:: 以下命令会读取相关本地化后的代码，以及 fallback
if exist "%ProgramFiles%\Edgeless\your_plugin_dir\Localization\AppName_%langcode%.cmd" (
call "%ProgramFiles%\Edgeless\your_plugin_dir\Localization\AppName_%langcode%.cmd"
) else (
call "%ProgramFiles%\Edgeless\your_plugin_dir\Localization\AppName_0409.cmd"
)
```

&#x20;针对 WCS 格式的加载脚本开头（注释部分无需复制）：

```
// 以下命令会将语言代码存入变量 %langcode% 中
REGI $HKLM\SYSTEM\ControlSet001\Control\Nls\Language\InstallLanguage,langcode
// 以下命令会读取相关本地化后的代码，以及 fallback
IFEX %ProgramFiles%\Edgeless\your_plugin_dir\Localization\AppName_%langcode%.ini,LOAD %ProgramFiles%\Edgeless\MacType\Localization\AppName_%langcode%.ini!LOAD %ProgramFiles%\Edgeless\your_plugin_dir\Localization\AppName_0409.ini
```

位于 `Localization` 目录中的 `AppName_[语言代码].cmd` 或 `AppName_[语言代码].ini` 中，建议填写在特定语言下会如何操作的内容，即将对应语言显示的内容存入变量。以简体中文为例，它的语言代码为 `0804`，因此您需要在 `Localization` 中新建 `AppName_0804.cmd`。

`AppName_0804.cmd` 内容示例（必须保存为对应语言的本地编码，例如 `AppName_0804.cmd` 必须保存为 GBK 编码，`AppName_0404.cmd` 必须保存为 Big5 编码，`AppName_0411.cmd` 必须保存为 Shift-JIS 编码）：

```
set programset001=示例程序组
set my_plugin_name=示例插件名
```

AppName\_0804.ini 内容示例（可保存为 UTF-8 编码）：

```
ENVI programset001=示例程序集
ENVI my_plugin_name=示例插件名
```

如果不希望照顾太多语言，我们建议 Edgeless 开发者开发插件时，至少指定一种 fallback 语言。Hikari Calyx Tech 建议使用美国英语，编码 `0409`，因此您必须要新建 `AppName_0409.cmd` 或 `AppName_0409.ini`。这两个文件可以以 DOS 437 标准编码形式保存。

如需调用以上变量，CMD 或 WCS 各有调用方式。以下调用示例包含创建对应本地化语言名称的快捷方式、将适用于对应语言的程序配置文件改名、以及导入适用于对应语言的注册表的操作。

针对 CMD 格式的加载脚本调用示例：

```
PECMD LINK %Programs%\%programset001%\%my_plugin_name%,%ProgramFiles%\Edgeless\my_plugin_dir\my_plugin.exe
PECMD LINK %Desktop%\%my_plugin_name%,%ProgramFiles%\Edgeless\my_plugin_dir\my_plugin.exe
if exist "%ProgramFiles%\Edgeless\my_plugin_dir\plugincfg_%langcode%.ini" (
MOVE "%ProgramFiles%\Edgeless\my_plugin_dir\plugincfg_%langcode%.ini" "%ProgramFiles%\Edgeless\my_plugin_dir\plugincfg.ini"
) else (
MOVE "%ProgramFiles%\Edgeless\my_plugin_dir\plugincfg_%langcode%.ini" "%ProgramFiles%\Edgeless\my_plugin_dir\plugincfg.ini"
)
if exist "%ProgramFiles%\Edgeless\my_plugin_dir\pluginreg_%langcode%.reg" (
REG IMPORT "%ProgramFiles%\Edgeless\my_plugin_dir\pluginreg_%langcode%.reg"
) else (
REG IMPORT "%ProgramFiles%\Edgeless\my_plugin_dir\pluginreg_0409.reg"
)
```

{% hint style="info" %}
注意，如果调用命令中涉及到管道符号“`|`”的使用，必须要在参数前后添加英文半角双引号，即`"`。

示例：\
`PECMD "TEAM TIPS %my_tips_title%,%my_tips_name%,15000,1,#1|WAIT 15000"`
{% endhint %}

针对 WCS 格式的加载脚本调用示例：

```
LINK %Programs%\%programset001%\%my_plugin_name%,%ProgramFiles%\Edgeless\my_plugin_dir\my_plugin.exe
LINK %Desktop%\%my_plugin_name%,%ProgramFiles%\Edgeless\my_plugin_dir\my_plugin.exe
IFEX %ProgramFiles%\Edgeless\my_plugin_dir\plugincfg_%langcode%.ini,FILE %ProgramFiles%\Edgeless\my_plugin_dir\plugincfg_%langcode%.ini->%ProgramFiles%\Edgeless\my_plugin_dir\plugincfg.ini!FILE %ProgramFiles%\Edgeless\my_plugin_dir\plugincfg_0409.ini->%ProgramFiles%\Edgeless\my_plugin_dir\plugincfg.ini
IFEX %ProgramFiles%\Edgeless\my_plugin_dir\pluginreg_%langcode%.reg,EXEC %SystemRoot%\System32\REG.exe IMPORT "%ProgramFiles%\Edgeless\my_plugin_dir\pluginreg_%langcode%.reg"!EXEC %SystemRoot%\System32\REG.exe IMPORT "%ProgramFiles%\Edgeless\my_plugin_dir\pluginreg_0409.reg"
```

通过读取语言代码，我们就可以实现同一个插件能够同时适应多种语言的 PE。当您具有一定基础时，您在利用语言代码特性制作自适应插件时可以做的更加灵活。

附：常见语言代码

| 语言                       | 系统代码  | 语言代码 |
| ------------------------ | ----- | ---- |
| 简体中文 Simplified Chinese  | zh-CN | 0804 |
| 繁体中文 Traditional Chinese | zh-TW | 0404 |
| 英文 English               | en-US | 0409 |
| 日文 Japanese              | ja-JP | 0411 |
| 韩文 Korean                | ko-KR | 0412 |

更多语言的对应关系，[可在这里找到列表](https://docs.microsoft.com/configmgr/core/servers/deploy/install/language-packs)。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://hikaripe-sc.hikaricalyx.com/6.1/6.1.1.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
