午夜轮班本地化API

创作者: IceBoxStudio
已更新:2026-07-25 14:12:09
5KB

关于此 MOD

《午夜换岗》本地化API是一个简易的API模块,可为模组提供多语言支持。
抱歉,您似乎没有附上需要翻译的文本内容。请提供原文,我会按照您的要求进行专业游戏本地化翻译。
注意:此说明为双语内容。中文部分位于英文部分下方。

午夜换班本地化API
《午夜换班》本地化API是一个简易的API模块,能让模组支持多种语言。

此模组功能
  • 为兼容模组提供语言支持。
  • 游戏语言切换后,更新支持的模组文本。

面向玩家
此模组为API/依赖项,本身不包含游戏功能。
若其他模组将《Shift At Midnight》本地化API列为前置需求,请安装此模组。

适用于模组作者
在项目中引用 ShiftAtMidnightLocalizationAPI.dll,并添加硬性 BepInEx 依赖:

使用 BepInEx;
using BepInEx.Unity.IL2CPP;
使用ShiftAtMidnight本地化API接口

[BepInDependency(ShiftAtMidnightLocalizationAPI.PluginInfo.PLUGIN_GUID)]
public sealed class MyPlugin : BasePlugin
{
    public override void Load()
    {
        var enabled = Config.Bind("General", "Enabled", true, I18n.Text("config.enabled"));

        I18n.RegisterDescription(enabled, "config.enabled");
        LocalizationApi.LanguageChanged += OnLanguageChanged;
    }

    private static void OnLanguageChanged(string language)
    {
        // 在此处刷新该模组的现有界面文本。
    }
}

从包含MOD DLL的目录加载JSON文件。此功能同样支持r2modman及模组管理器自动生成的文件夹名称。

using System.IO;
使用 System.Reflection;
使用 BepInEx 配置文件;
using ShiftAtMidnightLocalizationAPI.Api;

internal static class I18n
{
    private const string FileName = "MyMod.Localization.json";
    private static readonly ModLocalizer Localizer = Load();

    public static string 文本(string 键, params object[] 参数)
    {
        返回 Localizer.GetLocalizedText(键, 参数);
    }

    RegisterDescription(ConfigEntryBase entry, string key)
    {
        Localizer.RegisterConfigDescription(entry, key);
    }

    private static ModLocalizer Load()
    {
        string directory = Path.GetDirectoryName(
            Assembly.GetExecutingAssembly().Location);
        ModLocalizer localizer = LocalizationApi.For(PluginInfo.PLUGIN_GUID);
        localizer.RegisterJson(Path.Combine(directory, FileName));
        返回本地化器;
    }
}

单个JSON文件示例:

{
  "中文":{ "UI": "界面", "Dialogue": "对白", "Quest": "任务", "System": "系统文本" }
    "mod.name": "我的模组"
    "config.enabled": "启用此模组"
  }
  "简体中文"
    "mod.name": "我的模组"
    "config.enabled": "启用此模组。"
  }
}

每个本地化文件必须包含一个ENGLISH对象。若当前语言或请求的键缺失,API将尝试调用ENGLISH;若仍找不到该键,则直接返回该键本身。

支持的语言名称
  • 英语
  • 法语
  • 俄语
  • 德语
  • 西班牙语
  • 日语
  • 简体中文
  • 繁体中文
  • 巴葡:巴西葡语

兼容性
  • 游戏版本:1.0.1.0723.2253+

安装
1. 下载并安装 BepInEx be.785 Unity (IL2CPP) 用于 Windows (x64) 游戏。
2. 将模组解压至游戏根目录。压缩包内已包含 BepInEx\plugins 文件夹结构。

卸载
从 BepInEx\plugins 中删除 ShiftAtMidnightLocalizationAPI 文件夹。依赖此组件的模组将停止工作,直至重新安装。

漏洞反馈 & 功能建议
如有任何疑问或功能建议,请通过以下方式提交 GitHub 问题反馈请在Discord上联系我:iceboxcool,或发送邮件至764884112@qq.com、ibox2333@gmail.com。


如果你喜欢我的模组,欢迎支持我!

 

午夜轮班翻译API (中文)
《午夜换位》本地化 API 是一个简易的 API 模组,用于为其他模组提供多语言支持。

主要功能
  • 为兼容的模组添加多语言支持。
  • 切换游戏语言后将更新兼容模组的文本。

给玩家
这是一个 API/依赖模组,本身不会增加任何玩法内容。
如果其他模组要求安装《午夜转译》本地化接口,请安装该模组。

致模组作者
在项目中引用ShiftAtMidnightLocalizationAPI.dll,并添加BepInEx硬依赖。

using BepInEx;
using BepInEx.Unity.IL2CPP;
using ShiftAtMidnightLocalizationAPI.Api;

[BepInDependency(ShiftAtMidnightLocalizationAPI.PluginInfo.PLUGIN_GUID)]
public sealed class MyPlugin : BasePlugin
{
    public override void Load() → 重写加载方法
    {
        var enabled = Config.Bind("General", "Enabled", true, I18n.Text("config.enabled"));

        I18n.RegisterDescription(enabled, "config.enabled");
        LocalizationApi.LanguageChanged += OnLanguageChanged;
    }

    private static void OnLanguageChanged(string language)
    {
        // 在此处刷新模组已创建的UI文本。
    }
}

从模组 DLL 所在目录加载 JSON,确保即使 r2modman 或其他模组管理器生成的插件文件夹名称有所不同,也能正确找到语言文件。

系统.IO已启用
using System.Reflection;
using BepInEx.Configuration;
using ShiftAtMidnightLocalizationAPI.Api;

internal static class I18n
{
    private const string FileName = "MyMod.Localization.json";
    private static readonly ModLocalizer Localizer = Load();

    public static string 文本(string 键, params object[] 参数)
    {
        返回本地化文本(key, args);
    }

    RegisterDescription(ConfigEntryBase entry, string key)
    {
        Localizer.RegisterConfigDescription(entry, key);
    }

    private static ModLocalizer Load()
    {
        string directory = Path.GetDirectoryName(
            Assembly.GetExecutingAssembly().Location);
        ModLocalizer localizer = LocalizationApi.For(PluginInfo.PLUGIN_GUID);
        localizer.RegisterJson(Path.Combine(directory, FileName));
        返回本地化对象;
    }
}

```json { "单 JSON 文件示例": "单个 JSON 文件示例" } ```

{
  "中文": { "UI": "界面", "对话": "对白", "任务": "任务", "系统文本": "系统文本" }
    mod.name: 我的模组
    "config.enabled": "启用此模组"
  }
  "简体中文"
    "mod.name": "我的模组"
    "config.enabled": "启用此模组。"
  }
}

每个语言文件必须包含ENGLISH对象。当当前语言或目标键缺失时,API将尝试调用ENGLISH;若英语中同样缺失该键,则直接返回键名本身。

支持的语言
  • 英语
  • 法语
  • 俄语
  • 德语
  • 西班牙语
  • 日语
  • 简体中文
  • 简体中文
  • 巴西葡萄牙语

兼容性
  • 游戏版本:1.0.1.0723.2253+

安装方法
1. 下载并安装 BepInEx be.785 Unity (IL2CPP) 对应 Windows (x64) 游戏
2. 将模组解压至游戏根目录即可,压缩包内已含 BepInEx\plugins 路径。

Bug 反馈 & 功能建议
如果你有任何问题或新功能建议,请通过 GitHub 问题反馈 提交,也可通过 Discord:iceboxcool,或邮箱 764884112@qq.com、ibox2333@gmail.com 联系我。

午夜轮班 的热门 MOD

探索适用于 午夜轮班 的最佳MOD,带来新功能、升级画面,以及令人兴奋的方式来改变您的游戏体验。

使用 Xmod 解锁 午夜轮班 的全部潜力 — 今天就探索这些顶级 MOD!