
如何钓鱼本地化API
1How to Fish Localization API是“如何钓鱼”模组的共享依赖API。它允许兼容模组加载自身的语言文件,并在游戏语言变更时更新它们的用户界面。
查看大图说明:本描述为中英双语版本,中文内容位于英文内容下方。
注意:本描述为中英双语。中文部分位于英文部分下方。
How to Fish Localization API(英语)
How to Fish Localization API 是供 How to Fish 模组使用的共享依赖 API。它让兼容模组加载自己的语言文件,并在游戏语言切换后更新模组 UI。
主要功能
- 让每个兼容模组加载自己的外部 JSON 本地化文件。
- 读取 How to Fish 当前语言,并在语言切换后触发
LanguageChanged事件。 - 当前语言或 key 缺失时回退到英语。
- 为 HowToFish.ModMenu 和 HTFModManager 中的兼容配置项提供标签本地化。
给玩家
这是一个 API/依赖模组,本身不会添加玩法内容。 当其他 How to Fish 模组要求安装 How to Fish Localization API 时,请安装它。
配置项标签兼容属于可选功能。没有注册本地化数据的模组不会被修改。
给模组作者
在项目中引用 HowtoFishLocalizationAPI.dll,并添加 BepInEx 硬依赖:
using System.IO;
using System.Reflection;
using BepInEx;
using HowtoFishLocalizationAPI.Api;
[BepInPlugin(PluginInfo.PLUGIN_GUID, "My Mod", "1.0.0")]
[BepInDependency(HowtoFishLocalizationAPI.PluginInfo.PLUGIN_GUID)]
public sealed class MyPlugin : BaseUnityPlugin
{
private ModLocalizer _localizer;
private void Awake()
{
string directory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
_localizer = LocalizationApi.For(PluginInfo.PLUGIN_GUID);
_localizer.RegisterJson(Path.Combine(directory, "MyMod.Localization.json"));
LocalizationApi.LanguageChanged += OnLanguageChanged;
}
private void OnLanguageChanged(string language)
{
// 在这里刷新模组已经创建的 UI 文本。
}
}
从模组 DLL 自己所在的目录加载 JSON。这样即使模组管理器生成了不同的插件文件夹名,也能正确找到语言文件:
using System.IO;
using System.Reflection;
using HowtoFishLocalizationAPI.Api;
internal static class I18n
{
private const string FileName = "MyMod.Localization.json";
private static readonly ModLocalizer Localizer = Load();
internal static string Text(string key, params object[] args)
{
return Localizer.GetLocalizedText(key, args);
}
private static ModLocalizer Load()
{
string directory = Path.GetDirectoryName(
Assembly.GetExecutingAssembly().Location);
ModLocalizer localizer = LocalizationApi.For(PluginInfo.PLUGIN_GUID);
localizer.RegisterJson(Path.Combine(directory, FileName));
return localizer;
}
}
在模组 UI 文本中使用 I18n.Text("your.key")。args 参数是可选的,使用标准 string.Format 占位符。
配置项标签
兼容的配置管理器使用以下 key 格式:
modmenu.config.<Section>.<Key>
例如,Controls / OpenWallet 配置项使用 modmenu.config.Controls.OpenWallet。配置行创建时会应用对应标签;缺少 key 时保留原始配置项名称。
本地化文件示例:
{
"en": {
"mod.name": "My Mod",
"mod.description": "A short description of my mod.",
"modmenu.config.General.Enabled": "General / Enabled"
},
"zh-CN": {
"mod.name": "我的模组",
"mod.description": "我的模组简介。",
"modmenu.config.General.Enabled": "常规 / 启用"
}
}
每个本地化文件都必须包含 en 对象。当前语言或目标 key 缺失时,API 会尝试 en;如果英语中仍缺少该 key,则直接返回 key 本身。
支持的语言代码
- 英语:en
- 瑞典语:sv
- 简体中文:zh-CN
- 繁体中文:zh-TW
- 法语:fr
- 德语:de
- 意大利语:it
- 日语:ja
- 韩语:ko
- 波兰语:pl
- 巴西葡萄牙语:pt-BR
- 俄语:ru
- 拉丁美洲西班牙语:es-MX
- 欧洲西班牙语:es-ES
- 土耳其语:tr
- 乌克兰语:uk
兼容性
- 游戏:How to Fish 1.0.4+
- ModMenu:0.3.3+
- HFModManager:1.0.1
安装方法
- 下载并安装 BepinEx 5 5.4.23.5。
- 将模组解压到游戏根目录即可,压缩包内置
BepInEx\plugins路径。
Bug 提交 & 新功能建议
如果你有任何问题或新功能建议,请通过 GitHub Issues 提交,也可以通过 Discord:iceboxcool,或邮箱 764884112@qq.com、ibox2333@gmail.com 联系我。
如果你喜欢我的模组,请支持我一下吧!
How to Fish Localization API(中文)
How to Fish Localization API 是供 How to Fish 模组使用的共享依赖 API。它让兼容模组加载自己的语言文件,并在游戏语言切换后更新模组 UI。
主要功能
- 让每个兼容模组加载自己的外部 JSON 本地化文件。
- 读取 How to Fish 当前语言,并在语言切换后触发
LanguageChanged事件。 - 当前语言或 key 缺失时回退到英语。
- 为 HowToFish.ModMenu 和 HTFModManager 中的兼容配置项提供标签本地化。
给玩家
这是一个 API/依赖模组,本身不会添加玩法内容。 当其他 How to Fish 模组要求安装 How to Fish Localization API 时,请安装它。
配置项标签兼容属于可选功能。没有注册本地化数据的模组不会被修改。
给模组作者
在项目中引用 HowtoFishLocalizationAPI.dll,并添加 BepInEx 硬依赖:
using System.IO;
using System.Reflection;
using BepInEx;
using HowtoFishLocalizationAPI.Api;
[BepInPlugin(PluginInfo.PLUGIN_GUID, "My Mod", "1.0.0")]
[BepInDependency(HowtoFishLocalizationAPI.PluginInfo.PLUGIN_GUID)]
public sealed class MyPlugin : BaseUnityPlugin
{
private ModLocalizer _localizer;
private void Awake()
{
string directory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
_localizer = LocalizationApi.For(PluginInfo.PLUGIN_GUID);
_localizer.RegisterJson(Path.Combine(directory, "MyMod.Localization.json"));
LocalizationApi.LanguageChanged += OnLanguageChanged;
}
private void OnLanguageChanged(string language)
{
// 在这里刷新模组已经创建的 UI 文本。
}
}
从模组 DLL 自己所在的目录加载 JSON。这样即使模组管理器生成了不同的插件文件夹名,也能正确找到语言文件:
using System.IO;
using System.Reflection;
using HowtoFishLocalizationAPI.Api;
internal static class I18n
{
private const string FileName = "MyMod.Localization.json";
private static readonly ModLocalizer Localizer = Load();
internal static string Text(string key, params object[] args)
{
return Localizer.GetLocalizedText(key, args);
}
private static ModLocalizer Load()
{
string directory = Path.GetDirectoryName(
Assembly.GetExecutingAssembly().Location);
ModLocalizer localizer = LocalizationApi.For(PluginInfo.PLUGIN_GUID);
localizer.RegisterJson(Path.Combine(directory, FileName));
return localizer;
}
}
在模组 UI 文本中使用 I18n.Text("your.key")。args 参数是可选的,使用标准 string.Format 占位符。
配置项标签
兼容的配置管理器使用以下 key 格式:
modmenu.config.<Section>.<Key>
例如,Controls / OpenWallet 配置项使用 modmenu.config.Controls.OpenWallet。配置行创建时会应用对应标签;缺少 key 时保留原始配置项名称。
本地化文件示例:
{
"en": {
"mod.name": "My Mod",
"mod.description": "A short description of my mod.",
"modmenu.config.General.Enabled": "General / Enabled"
},
"zh-CN": {
"mod.name": "我的模组",
"mod.description": "我的模组简介。",
"modmenu.config.General.Enabled": "常规 / 启用"
}
}
每个本地化文件都必须包含 en 对象。当前语言或目标 key 缺失时,API 会尝试 en;如果英语中仍缺少该 key,则直接返回 key 本身。
支持的语言代码
- 英语:en
- 瑞典语:sv
- 简体中文:zh-CN
- 繁体中文:zh-TW
- 法语:fr
- 德语:de
- 意大利语:it
- 日语:ja
- 韩语:ko
- 波兰语:pl
- 巴西葡萄牙语:pt-BR
- 俄语:ru
- 拉丁美洲西班牙语:es-MX
- 欧洲西班牙语:es-ES
- 土耳其语:tr
- 乌克兰语:uk
兼容性
- 游戏:How to Fish 1.0.4+
- ModMenu:0.3.3+
- HFModManager:1.0.1
安装方法
- 下载并安装 BepinEx 5 5.4.23.5。
- 将模组解压到游戏根目录即可,压缩包内置
BepInEx\plugins路径。
Bug 提交 & 新功能建议
如果你有任何问题或新功能建议,请通过 GitHub Issues 提交,也可以通过 Discord:iceboxcool,或邮箱 764884112@qq.com、ibox2333@gmail.com 联系我。


还没有人评论,去客户端里说两句吧。
评论在新手盒子客户端中发表,这里同步展示。