using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Logging;
using Microsoft.CodeAnalysis;
using SubtitlesAPI.Locales;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("SubtitlesAPI")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyDescription("A centralized API for fetching localized subtitles.")]
[assembly: AssemblyFileVersion("0.0.6.0")]
[assembly: AssemblyInformationalVersion("0.0.6+bd27034d29659bb5d89af51d78b1f0b17e8cba81")]
[assembly: AssemblyProduct("SubtitlesAPI")]
[assembly: AssemblyTitle("SubtitlesAPI")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.6.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
internal sealed class EmbeddedAttribute : Attribute
{
}
}
namespace System.Runtime.CompilerServices
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
internal sealed class RefSafetyRulesAttribute : Attribute
{
public readonly int Version;
public RefSafetyRulesAttribute(int P_0)
{
Version = P_0;
}
}
}
namespace SubtitlesAPI
{
public interface ISubtitleLocalization
{
string Locale { get; }
Dictionary<string, string> Translations { get; }
Dictionary<string, List<(float, string)>> DialogueTranslations { get; }
bool AddTranslation(string sound, string subtitle)
{
if (Translations.ContainsKey(sound))
{
return false;
}
Translations.Add(sound, subtitle);
return true;
}
bool[] AddTranslation(Dictionary<string, string> translationsToAdd)
{
bool[] array = new bool[translationsToAdd.Count];
int num = 0;
foreach (var (sound, subtitle) in translationsToAdd)
{
array[num] = AddTranslation(sound, subtitle);
num++;
}
return array;
}
bool AddDialogueTranslation(string sound, List<(float, string)> subtitles)
{
if (DialogueTranslations.ContainsKey(sound))
{
return false;
}
DialogueTranslations.Add(sound, subtitles);
return true;
}
bool[] AddDialogueTranslation(Dictionary<string, List<(float, string)>> translationsToAdd)
{
bool[] array = new bool[translationsToAdd.Count];
int num = 0;
foreach (var (sound, subtitles) in translationsToAdd)
{
array[num] = AddDialogueTranslation(sound, subtitles);
num++;
}
return array;
}
}
[BepInPlugin("JustJelly.SubtitlesAPI", "SubtitlesAPI", "0.0.6")]
public class SubtitlesAPI : BaseUnityPlugin
{
private const string pluginGuid = "JustJelly.SubtitlesAPI";
private const string pluginName = "SubtitlesAPI";
private const string pluginVersion = "0.0.6";
public static ManualLogSource ManualLogSource;
public static ISubtitleLocalization Localization;
public static ConfigEntry<string> SelectedLocale;
private void Awake()
{
ManualLogSource = Logger.CreateLogSource("JustJelly.SubtitlesAPI");
ManualLogSource.LogInfo((object)"SubtitlesAPI 0.0.6 loaded!");
SelectedLocale = ((BaseUnityPlugin)this).Config.Bind<string>("\u200bOptions", "Locale", "en", "The localization to use. This uses ISO 639-1 codes for locales. \nCurrent Supported Codes: en, zh");
IEnumerable<Type> allClassesImplementingInterface = GetAllClassesImplementingInterface<ISubtitleLocalization>();
foreach (Type item in allClassesImplementingInterface)
{
ISubtitleLocalization subtitleLocalization = (ISubtitleLocalization)Activator.CreateInstance(item);
if (string.Equals(SelectedLocale.Value, subtitleLocalization.Locale, StringComparison.OrdinalIgnoreCase))
{
Localization = subtitleLocalization;
break;
}
}
if (Localization == null)
{
Localization = new EnglishSubtitleLocalization();
ManualLogSource.LogWarning((object)"Unable to find chosen locale, defaulted to English");
}
}
private IEnumerable<Type> GetAllClassesImplementingInterface<T>()
{
return from type in Assembly.GetExecutingAssembly().GetTypes()
where typeof(T).IsAssignableFrom(type) && !type.IsInterface
select type;
}
}
public static class PluginInfo
{
public const string PLUGIN_GUID = "SubtitlesAPI";
public const string PLUGIN_NAME = "SubtitlesAPI";
public const string PLUGIN_VERSION = "0.0.6";
}
}
namespace SubtitlesAPI.Locales
{
public class ChineseSubtitleLocalization : ISubtitleLocalization
{
public string Locale => "zh";
public Dictionary<string, string> Translations => new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase)
{
{ "AirHorn1", "汽笛喇叭声" },
{ "AirHornFar", "遥远的汽笛喇叭声" },
{ "AlertHUD", "警报铃声" },
{ "Angered", "沙沙声" },
{ "AngryScreech", "虫子发出锐鸣" },
{ "AngryScreech2", "虫子发出锐鸣" },
{ "BaboonEnterFight", "狒狒鹰兴奋" },
{ "BareFootstep1", "Footsteps" },
{ "BareFootstep2", "Footsteps" },
{ "BareFootstep3", "Footsteps" },
{ "BareFootstep4", "Footsteps" },
{ "BeesAngry", "蜜蜂愤怒地嗡嗡叫" },
{ "BoomboxMusic1", "音响播放音乐" },
{ "BoomboxMusic2", "音响播放音乐" },
{ "BoomboxMusic2TVVersion", "电视播放音乐" },
{ "BoomboxMusic3", "音响播放音乐" },
{ "BoomboxMusic4", "音响播放音乐" },
{ "BoomboxMusic5Zedfox", "音响播放音乐" },
{ "BoomboxStop", "音响关闭" },
{ "BootStomp1", "脚步声" },
{ "BootStomp2", "脚步声" },
{ "BootStomp3", "脚步声" },
{ "BreakerBoxClose", "闸盒打开" },
{ "BreakerBoxOpen", "闸盒关闭" },
{ "BreakerLever1", "开关翻转" },
{ "BreakerLevel2", "开关翻转" },
{ "BreakerLever3", "开关翻转" },
{ "Breathe1", "呼吸声" },
{ "呼吸声", "呼吸声" },
{ "BridgeCreak1", "桥吱吱作响" },
{ "BridgeCreak2", "桥吱吱作响" },
{ "BridgeCreak3", "桥吱吱作响" },
{ "BugWalk1", "囤积虫行走" },
{ "BugWalk2", "囤积虫行走" },
{ "BugWalk3", "囤积虫行走" },
{ "BugWalk4", "囤积虫行走" },
{ "BurrowingRumbleLoud1", "地面晃动" },
{ "BurrowingRumble1", "地面震动" },
{ "BurrowingRumble2", "地面震动" },
{ "BurrowingRumble3", "地面震动" },
{ "CashRegisterDing", "收银机铃声" },
{ "CawScream1", "狒狒鹰叫声" },
{ "CawScream2", "狒狒鹰叫声" },
{ "CawScream3", "狒狒鹰叫声" },
{ "CawScream4", "狒狒鹰叫声" },
{ "CawScream5", "狒狒鹰叫声" },
{ "ClingToPlayer", "捕网跳蚤黏着" },
{ "ClingToPlayerLocal", "捕网跳蚤黏着" },
{ "ClownHorn1", "小丑号角声" },
{ "ClownHornFar", "遥远的小丑号角声" },
{ "CrackNeck", "脖子折断" },
{ "DistantRumble1", "遥远的震动" },
{ "DistantRumble2", "遥远的震动" },
{ "DistantRumble3", "遥远的震动" },
{ "DocileLocustBeesEvade", "蝗虫分散" },
{ "DoorClose1", "门打开" },
{ "DoorClose2", "门打开" },
{ "DoorOpen1", "门关闭" },
{ "DoorOpen2", "门关闭" },
{ "DoorShut", "门关闭" },
{ "DoorSlam1", "砰的一下门声" },
{ "DoorSlam2", "砰的一下门声" },
{ "DoorUnlock", "门解锁" },
{ "DoorUnlock2", "门解锁" },
{ "DoublewingFlap1", "扇动翅膀" },
{ "DoublewingFlap2", "扇动翅膀" },
{ "DoublewingFlap3", "扇动翅膀" },
{ "DuckQuack", "橡皮鸭叫声" },
{ "EmergeFromGround1", "地球利维坦攻击" },
{ "ExplodeHead", "头部爆炸" },
{ "ExplodeHeadSecondarySFX", "头部爆炸" },
{ "ExtensionLadderAlarm", "伸缩梯即将收缩警告" },
{ "ExtensionLadderExtend", "伸缩梯延伸" },
{ "ExtensionLadderShrink", "伸缩梯收缩" },
{ "Fart1", "放屁的声音" },
{ "Fart2", "放屁的声音" },
{ "Fart3", "放屁的声音" },
{ "Fart5", "放屁的声音" },
{ "FGiantEatPlayerSFX", "玩家被吃掉" },
{ "Fireplace", "火焰燃烧的声音" },
{ "FlashbangExplode", "震撼弹爆炸" },
{ "FlashlightClick", "按动手电筒开关" },
{ "FlashlightClickMini", "灯打开" },
{ "FlashlightClickMini2", "灯关闭" },
{ "Footstep1", "Footsteps" },
{ "Footstep2", "Footsteps" },
{ "Footstep3", "Footsteps" },
{ "Footstep4", "Footsteps" },
{ "Footstep5", "Footsteps" },
{ "Found1", "沙沙声" },
{ "Frighten1", "孢子蜥蜴害怕" },
{ "Frighten3", "孢子蜥蜴害怕" },
{ "GiantStomp1", "森林守护者沉重的脚步" },
{ "GiantStomp2", "森林守护者沉重的脚步" },
{ "GiantStomp3", "森林守护者沉重的脚步" },
{ "GiantStomp4", "森林守护者沉重的脚步" },
{ "GiantStomp5", "森林守护者沉重的脚步" },
{ "growl", "无眼狗吠声" },
{ "HangarDoorOpen1", "飞船门开启" },
{ "HangarDoorOpening", "飞船门正在开启" },
{ "HangarDoorShut", "飞船门关闭" },
{ "HoarderBugCry", "囤积虫哭泣" },
{ "ItemDropshipLand", "快递飞船着陆" },
{ "ItemDropshipOpenDoors", "快递飞船货仓打开" },
{ "JackInTheBoxTheme", "玩偶匣音乐播放" },
{ "JackOLanternHit", "南瓜灯的笑声" },
{ "JesterStomp1", "沉重的脚步" },
{ "JesterStomp2", "沉重的脚步" },
{ "JesterStomp3", "沉重的脚步" },
{ "KillPlayer", "玩家受伤" },
{ "KillPlayer_0", "玩家受伤" },
{ "LightningStrike1", "雷击" },
{ "LightningStrike2", "雷击" },
{ "LightningStrike3", "雷击" },
{ "LightningStrike4", "雷击" },
{ "LongRoar1", "孢子蜥蜴怒吼" },
{ "LongRoar2", "孢子蜥蜴怒吼" },
{ "LongRoar3", "孢子蜥蜴怒吼" },
{ "LoudCreak1", "很大的咯吱声" },
{ "LoudCreak2", "很大的咯吱声" },
{ "LoudCreak3", "很大的咯吱声" },
{ "Lunge1", "无眼狗突刺" },
{ "LungMachineDisconnect", "设备断开连接" },
{ "MaskCry1", "面具的哭声" },
{ "MaskCry2", "面具的哭声" },
{ "MaskCry3", "面具的哭声" },
{ "MaskCry4", "面具的哭声" },
{ "MaskLaugh1", "面具的笑声" },
{ "MaskLaugh2", "面具的笑声" },
{ "MaskLaugh3", "面具的笑声" },
{ "MaskPuke", "面具呕吐" },
{ "MetalDoorShut1 1", "金属门关闭" },
{ "MetalDoorShut1", "金属门关闭" },
{ "MetalDoorShut2", "金属门关闭" },
{ "MineBeep", "地雷哔哔声" },
{ "MineTrigger", "地雷被触发" },
{ "MineDetonate", "地雷引爆" },
{ "MineDetonateDistance", "遥远的地雷引爆声" },
{ "monsterNoise", "怪物噪音" },
{ "monsterNoise2", "怪物噪音" },
{ "monsterNoiseB", "怪物噪音" },
{ "Nervous", "孢子蜥蜴紧张" },
{ "NutcrackerAngry", "Nutcracker angers" },
{ "PlushieSqueeze", "挤压毛绒玩具" },
{ "Pop1", "玩偶匣弹出" },
{ "PullCord", "绳子拉动" },
{ "RattleTail", "尾巴格格作响" },
{ "Roar", "巨大的响声" },
{ "Roar_0", "无眼犬怒吼" },
{ "RobotToyCheer", "机器人玩具欢呼" },
{ "SandWormRoar", "地球利维坦怒吼" },
{ "SandWormRoar2", "地球利维坦怒吼" },
{ "Scan", "扫描" },
{ "Scream1", "低声的尖叫" },
{ "ShipTeleporterSpin", "传送器启动" },
{ "ShipTeleporterSpinInverse", "反向传送器启动" },
{ "ShipThrusterClose", "飞船推进器" },
{ "ShortRoar1", "短的怒吼" },
{ "ShotgunBlast", "散弹枪开火" },
{ "ShotgunBlast2", "散弹枪开火" },
{ "ShotgunReload", "散弹枪换弹" },
{ "ShotgunReloadNutcracker", "胡桃夹子换弹中" },
{ "Shriek1", "Shriek" },
{ "Shriek2", "Shriek" },
{ "ShipAlarmHornConstant", "飞船的大汽笛声" },
{ "ShipAlarmHornConstantDistant", "飞船的大汽笛声在远处鸣响" },
{ "SkipWalk", "蹦蹦跳跳的声音" },
{ "SkipWalk1", "蹦蹦跳跳的声音" },
{ "SkipWalk2", "蹦蹦跳跳的声音" },
{ "SkipWalk3", "蹦蹦跳跳的声音" },
{ "SkipWalk4", "蹦蹦跳跳的声音" },
{ "SkipWalk5", "蹦蹦跳跳的声音" },
{ "SkipWalk6", "蹦蹦跳跳的声音" },
{ "SlimeAngry", "史莱姆发怒" },
{ "SlimeDance", "史莱姆舞蹈" },
{ "SlimeIdle", "史莱姆闲置" },
{ "SlimeKillPlayer", "玩家被吸收" },
{ "SpiderAttack", "蜘蛛攻击" },
{ "Spring1", "弹簧声" },
{ "Spring2", "弹簧声" },
{ "Spring3", "弹簧声" },
{ "SpringWobble1", "弹簧头摇摆" },
{ "SpringWobble2", "弹簧头摇摆" },
{ "Squeak1", "尖叫声" },
{ "Squeak2", "尖叫声" },
{ "StickyNote", "纸张沙沙作响" },
{ "Stomp", "脚步声" },
{ "Stomp1", "脚步声" },
{ "Stomp1double", "脚步声" },
{ "Stomp2", "脚步声" },
{ "Stomp2double", "脚步声" },
{ "Stomp3", "脚步声" },
{ "Stomp3double", "双重脚步声" },
{ "StormStaticElectricity", "静电嗡嗡声" },
{ "StuckInWeb", "蜘蛛网沙沙作响" },
{ "StunCrawler", "重击者被眩晕" },
{ "StunDog", "无眼犬被眩晕" },
{ "StunDoublewing", "山雀被眩晕" },
{ "StunFlowerman", "布拉肯被眩晕" },
{ "StunGiant", "森林守护者被眩晕" },
{ "StunSpider", "蜘蛛被眩晕" },
{ "Thunder1", "雷声" },
{ "Thunder2", "雷声" },
{ "Thunder3", "雷声" },
{ "ToiletFlush", "马桶冲水声" },
{ "TunnelIntoGround1", "地球利维坦落地" },
{ "TurnTVOff", "电视关闭" },
{ "TurnTVOn", "电视打开" },
{ "TurretActivate", "炮塔激活" },
{ "TurretBerserkMode", "炮塔狂暴" },
{ "TurretDeactivate", "炮塔失效" },
{ "TurretFire", "炮塔开火" },
{ "TurretFireDistance", "遥远的炮塔开火声" },
{ "TurretSeePlayer", "炮塔锁定目标" },
{ "TVKittenTheme", "低沉的长号音乐" },
{ "VentCrawl1", "排气口噪音" },
{ "VentOpen1", "排气口打开" },
{ "WarningHUD", "警告的哔哔声" },
{ "WarningHUD2", "警告的哔哔声" },
{ "WarningHUD3", "警告的哔哔声" }
};
public Dictionary<string, List<(float, string)>> DialogueTranslations => new Dictionary<string, List<(float, string)>>(StringComparer.OrdinalIgnoreCase)
{
{
"0DaysLeftAlert",
new List<(float, string)>
{
(0f, "[公司广告歌播放]"),
(4.969f, "立即到公司大楼报到"),
(7.189f, "卖掉你的废品和其他好货"),
(9.758f, "你完成利润指标的时间已经所剩无几了"),
(13.085f, "你可以使用终端的自动驾驶仪"),
(14.874f, "自动驾驶到公司大厦")
}
},
{
"IntroCompanySpeech",
new List<(float, string)>
{
(0f, "[公司广告歌播放]"),
(7.31f, "欢迎你第一次上班!"),
(10.14f, "这是你的自动驾驶飞船"),
(12.44f, "在你的合同期限内"),
(13.8f, "你将在这里吃饭,睡觉,登dua郎"),
(15.28f, "[快进听不懂思密达]"),
(19.94f, "把这里当成你自己家"),
(21.69f, "要完成入职流程,"),
(23.77f, "您需要查看使用手册"),
(25.65f, "然后登陆飞船上的终端"),
(28.29f, "我们相信你会成为公司的宝贵财富(黑奴)"),
(31.035f, "宝贵-宝贵-公司宝贵的财富"),
(32.83f, "财富-宝贵-宝贵-宝贵的财富-公司宝贵的财富"),
(35.235f, "汉化by滑稽没JJ")
}
},
{
"LightningAudio",
new List<(float, string)>
{
(0f, "[欢快的音乐]"),
(3.02f, "[雷劈]"),
(4.3f, "[笑声]")
}
},
{
"SnareFleaTipChannel",
new List<(float, string)>
{
(0.33f, "如果船员与外星实体接触"),
(2.83f, "请不要大义灭亲"),
(5.3f, "相反,你可以问工作人员以下问题:"),
(7.495f, "“这个实体是否具有攻击性?”"),
(9.41f, "“你受伤了吗?”"),
(10.635f, "“你需要帮助吗?”"),
(11.73f, "如果这些问题的答案都是肯定的,"),
(13.92f, "抓紧让他重开"),
(15.9f, "如果船员压力过大,"),
(17.19f, "迅速提出这样的问题:“今天过得怎么样?”"),
(19.62f, "谢谢您的合作,祝您旅途愉快!")
}
},
{
"VoiceHey",
new List<(float, string)> { (0f, "Hey.") }
}
};
}
public class EnglishSubtitleLocalization : ISubtitleLocalization
{
public string Locale => "en";
public Dictionary<string, string> Translations => new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase)
{
{ "AirHorn1", "Air horn plays" },
{ "AirHornFar", "Distant air horn plays" },
{ "AlertHUD", "Warning alarm" },
{ "Angered", "Rustling" },
{ "AngryScreech", "Bug screeches" },
{ "AngryScreech2", "Bug screeches" },
{ "BaboonEnterFight", "Aggressive hawk" },
{ "BareFootstep1", "Footsteps" },
{ "BareFootstep2", "Footsteps" },
{ "BareFootstep3", "Footsteps" },
{ "BareFootstep4", "Footsteps" },
{ "BeesAngry", "Bees buzz angrily" },
{ "BoomboxMusic1", "Boombox plays" },
{ "BoomboxMusic2", "Boombox plays" },
{ "BoomboxMusic2TVVersion", "TV plays music" },
{ "BoomboxMusic3", "Boombox plays" },
{ "BoomboxMusic4", "Boombox plays" },
{ "BoomboxMusic5Zedfox", "Boombox plays" },
{ "BoomboxStop", "Boombox stops" },
{ "BootStomp1", "Stomps" },
{ "BootStomp2", "Stomps" },
{ "BootStomp3", "Stomps" },
{ "BreakerBoxClose", "Breaker opens" },
{ "BreakerBoxOpen", "Breaker closes" },
{ "BreakerLever1", "Lever flips" },
{ "BreakerLevel2", "Lever flips" },
{ "BreakerLever3", "Lever flips" },
{ "Breathe1", "Breathing" },
{ "Breathing", "Breathing" },
{ "BridgeCreak1", "Bridge creaks" },
{ "BridgeCreak2", "Bridge creaks" },
{ "BridgeCreak3", "Bridge creaks" },
{ "BugWalk1", "Bug walks" },
{ "BugWalk2", "Bug walks" },
{ "BugWalk3", "Bug walks" },
{ "BugWalk4", "Bug walks" },
{ "BurrowingRumbleLoud1", "Ground shakes" },
{ "BurrowingRumble1", "Ground rumbles" },
{ "BurrowingRumble2", "Ground rumbles" },
{ "BurrowingRumble3", "Ground rumbles" },
{ "CashRegisterDing", "Cash register dings" },
{ "CawScream1", "Hawk screeches" },
{ "CawScream2", "Hawk screeches" },
{ "CawScream3", "Hawk screeches" },
{ "CawScream4", "Hawk screeches" },
{ "CawScream5", "Hawk screeches" },
{ "ClingToPlayer", "Snare Flea clings" },
{ "ClingToPlayerLocal", "Snare Flea clings" },
{ "ClownHorn1", "Clown horn plays" },
{ "ClownHornFar", "Distant clown horn plays" },
{ "CrackNeck", "Neck snap" },
{ "DistantRumble1", "Distant rumbles" },
{ "DistantRumble2", "Distant rumbles" },
{ "DistantRumble3", "Distant rumbles" },
{ "DocileLocustBeesEvade", "Locusts disperse" },
{ "DoorClose1", "Door opens" },
{ "DoorClose2", "Door opens" },
{ "DoorOpen1", "Door closes" },
{ "DoorOpen2", "Door closes" },
{ "DoorShut", "Door shuts" },
{ "DoorSlam1", "Door slams" },
{ "DoorSlam2", "Door slams" },
{ "DoorUnlock", "Door unlocks" },
{ "DoorUnlock2", "Door unlocks" },
{ "DoublewingFlap1", "Flapping" },
{ "DoublewingFlap2", "Flapping" },
{ "DoublewingFlap3", "Flapping" },
{ "DuckQuack", "Rubber duck quacks" },
{ "EmergeFromGround1", "Earth Leviathan attacks" },
{ "ExplodeHead", "Head explodes" },
{ "ExplodeHeadSecondarySFX", "Head explodes" },
{ "ExtensionLadderAlarm", "Extension Ladder expiring alarm" },
{ "ExtensionLadderExtend", "Extension Ladder extending" },
{ "ExtensionLadderShrink", "Extension Ladder shrinking" },
{ "Fart1", "Farting sounds" },
{ "Fart2", "Farting sounds" },
{ "Fart3", "Farting sounds" },
{ "Fart5", "Farting sounds" },
{ "FGiantEatPlayerSFX", "Player is eaten" },
{ "Fireplace", "Crackling" },
{ "FlashbangExplode", "Flashbang explodes" },
{ "FlashlightClick", "Flashlight clicks" },
{ "FlashlightClickMini", "Light switch turns on" },
{ "FlashlightClickMini2", "Light switch turns off" },
{ "Footstep1", "Footsteps" },
{ "Footstep2", "Footsteps" },
{ "Footstep3", "Footsteps" },
{ "Footstep4", "Footsteps" },
{ "Footstep5", "Footsteps" },
{ "Found1", "Rustling" },
{ "Frighten1", "Creature frightened" },
{ "Frighten3", "Creature frightened" },
{ "GiantStomp1", "Giant stomps" },
{ "GiantStomp2", "Giant stomps" },
{ "GiantStomp3", "Giant stomps" },
{ "GiantStomp4", "Giant stomps" },
{ "GiantStomp5", "Giant stomps" },
{ "growl", "Dog growls" },
{ "HangarDoorOpen1", "Ship door opens" },
{ "HangarDoorOpening", "Ship door opening" },
{ "HangarDoorShut", "Ship door closes" },
{ "HoarderBugCry", "Hoarder bug cries" },
{ "ItemDropshipLand", "Item dropship lands" },
{ "ItemDropshipOpenDoors", "Item doorship door opens" },
{ "JackInTheBoxTheme", "Jack in the Box theme plays" },
{ "JackOLanternHit", "Jack-O-Lantern laughs" },
{ "JesterStomp1", "Intense stomps" },
{ "JesterStomp2", "Intense stomps" },
{ "JesterStomp3", "Intense stomps" },
{ "KillPlayer", "Player is mauled" },
{ "KillPlayer_0", "Player is mauled" },
{ "LightningStrike1", "Lightning strikes" },
{ "LightningStrike2", "Lightning strikes" },
{ "LightningStrike3", "Lightning strikes" },
{ "LightningStrike4", "Lightning strikes" },
{ "LongRoar1", "Creature roars" },
{ "LongRoar2", "Creature roars" },
{ "LongRoar3", "Creature roars" },
{ "LoudCreak1", "Loud creaks" },
{ "LoudCreak2", "Loud creaks" },
{ "LoudCreak3", "Loud creaks" },
{ "Lunge1", "Dog lunges" },
{ "LungMachineDisconnect", "Apparatus disconnects" },
{ "MaskCry1", "Masked cries" },
{ "MaskCry2", "Masked cries" },
{ "MaskCry3", "Masked cries" },
{ "MaskCry4", "Masked cries" },
{ "MaskLaugh1", "Masked laughs" },
{ "MaskLaugh2", "Masked laughs" },
{ "MaskLaugh3", "Masked laughs" },
{ "MaskPuke", "Masked pukes" },
{ "MetalDoorShut1 1", "Metal door shuts" },
{ "MetalDoorShut1", "Metal door shuts" },
{ "MetalDoorShut2", "Metal door shuts" },
{ "MineBeep", "Landmine beeps" },
{ "MineTrigger", "Landmine triggers" },
{ "MineDetonate", "Landmine detonates" },
{ "MineDetonateDistance", "Landmine detonates distantly" },
{ "monsterNoise", "Monster noises" },
{ "monsterNoise2", "Monster noises" },
{ "monsterNoiseB", "Monster noises" },
{ "Nervous", "Creature nervous" },
{ "NutcrackerAngry", "Nutcracker angers" },
{ "PlushieSqueeze", "Plushie squeezes" },
{ "Pop1", "Jack in the Box pops" },
{ "PullCord", "Cord pulled" },
{ "RattleTail", "Rattling tail" },
{ "Roar", "Giant Rumbles" },
{ "Roar_0", "Dog roars" },
{ "RobotToyCheer", "Robot toy cheers" },
{ "SandWormRoar", "Earth Leviathan roars" },
{ "SandWormRoar2", "Earth Leviathan roars" },
{ "Scan", "Scan activates" },
{ "Scream1", "Low screaming" },
{ "ShipTeleporterSpin", "Teleporter activates" },
{ "ShipTeleporterSpinInverse", "Inverse Teleporter activates" },
{ "ShipThrusterClose", "Ship thruster" },
{ "ShortRoar1", "Short roars" },
{ "ShotgunBlast", "Shotgun shoots" },
{ "ShotgunBlast2", "Shotgun shoots" },
{ "ShotgunReload", "Shotgun reloads" },
{ "ShotgunReloadNutcracker", "Nutcracker reloads" },
{ "Shriek1", "Shriek" },
{ "Shriek2", "Shriek" },
{ "ShipAlarmHornConstant", "Ship horn blares" },
{ "ShipAlarmHornConstantDistant", "Ship horn blares distantly" },
{ "SkipWalk", "Skipping" },
{ "SkipWalk1", "Skipping" },
{ "SkipWalk2", "Skipping" },
{ "SkipWalk3", "Skipping" },
{ "SkipWalk4", "Skipping" },
{ "SkipWalk5", "Skipping" },
{ "SkipWalk6", "Skipping" },
{ "SlimeAngry", "Slime angers" },
{ "SlimeDance", "Slime dances" },
{ "SlimeIdle", "Slime idles" },
{ "SlimeKillPlayer", "Player is absorbed" },
{ "SpiderAttack", "Spider attacks" },
{ "Spring1", "Spring" },
{ "Spring2", "Spring" },
{ "Spring3", "Spring" },
{ "SpringWobble1", "Spring wobbles" },
{ "SpringWobble2", "Spring wobbles" },
{ "Squeak1", "Squeaks" },
{ "Squeak2", "Squeaks" },
{ "StickyNote", "Paper rustling" },
{ "Stomp", "Stomps" },
{ "Stomp1", "Stomps" },
{ "Stomp1double", "Stomps" },
{ "Stomp2", "Stomps" },
{ "Stomp2double", "Stomps" },
{ "Stomp3", "Stomps" },
{ "Stomp3double", "Double stomps" },
{ "StormStaticElectricity", "Static electricity buzzing" },
{ "StuckInWeb", "Web rustling" },
{ "StunCrawler", "Thumper stunned" },
{ "StunDog", "Dog stunned" },
{ "StunDoublewing", "Bird stunned" },
{ "StunFlowerman", "Bracken stunned" },
{ "StunGiant", "Giant stunned" },
{ "StunSpider", "Spider stunned" },
{ "Thunder1", "Thunder" },
{ "Thunder2", "Thunder" },
{ "Thunder3", "Thunder" },
{ "ToiletFlush", "Toilet flushes" },
{ "TunnelIntoGround1", "Earth Leviathan lands" },
{ "TurnTVOff", "TV turns off" },
{ "TurnTVOn", "TV turns on" },
{ "TurretActivate", "Turret activates" },
{ "TurretBerserkMode", "Turret berserks" },
{ "TurretDeactivate", "Turret deactivates" },
{ "TurretFire", "Turret fires" },
{ "TurretFireDistance", "Turret fires distantly" },
{ "TurretSeePlayer", "Turret locks aim" },
{ "TVKittenTheme", "Muffled trombone music" },
{ "VentCrawl1", "Vent noises" },
{ "VentOpen1", "Vent opens" },
{ "WarningHUD", "Warning beep" },
{ "WarningHUD2", "Warning beep" },
{ "WarningHUD3", "Warning beep" }
};
public Dictionary<string, List<(float, string)>> DialogueTranslations => new Dictionary<string, List<(float, string)>>(StringComparer.OrdinalIgnoreCase)
{
{
"0DaysLeftAlert",
new List<(float, string)>
{
(0f, "[Company Jingle plays]"),
(4.969f, "Report to the company building immediately"),
(7.189f, "to sell your scrap metal and other goods."),
(9.758f, "You have zero days left to meet the profit quota."),
(13.085f, "You can use the terminal to route"),
(14.874f, "the autopilot to the company building.")
}
},
{
"IntroCompanySpeech",
new List<(float, string)>
{
(0f, "[Company Jingle plays]"),
(7.31f, "Welcome to your first day on the job!"),
(10.14f, "This is your very own autopilot ship"),
(12.44f, "where you will eat and sleep"),
(13.8f, "for the duration of your contract."),
(15.28f, "[Unintelligible fast speech]"),
(19.94f, "Make yourself at home."),
(21.69f, "To complete the onboarding process,"),
(23.77f, "you will want to check the instruction manual"),
(25.65f, "and sign into your ship's computer terminal."),
(28.29f, "We trust you will be a great asset to the company."),
(31.035f, "Great-great asset to the company-"),
(32.83f, "asset great-great-great asset to the company-"),
(35.235f, "asset to great-great asset to the-")
}
},
{
"LightningAudio",
new List<(float, string)>
{
(0f, "[Upbeat music plays]"),
(3.02f, "[Lightning strikes]"),
(4.3f, "[Laugh track]")
}
},
{
"SnareFleaTipChannel",
new List<(float, string)>
{
(0.33f, "If an entity has come in contact with a crew member,"),
(2.83f, "please refrain from immediate self-defense."),
(5.3f, "Instead, ask the crew member the following:"),
(7.495f, "\"Is the entity being aggressive?\""),
(9.41f, "\"Are you injured?\""),
(10.635f, "\"Do you need assistance?\""),
(11.73f, "If the answer to all of these questions is yes,"),
(13.92f, "you begin your self-defense measures."),
(15.9f, "If the crew member is stressed,"),
(17.19f, "strike a question like \"How was your day?\""),
(19.62f, "Thank you for your cooperation, and happy travels!")
}
},
{
"VoiceHey",
new List<(float, string)> { (0f, "Hey.") }
}
};
}
public class JapaneseSubtitleLocalization : ISubtitleLocalization
{
public string Locale => "jp";
public Dictionary<string, string> Translations => new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase)
{
{ "AirHorn1", "エアホーンが鳴る" },
{ "AirHornFar", "遠くからエアホーンが鳴り響く" },
{ "AlertHUD", "警告音" },
{ "Angered", "ざわめき" },
{ "AngryScreech", "虫の鳴き声" },
{ "AngryScreech2", "虫の鳴き声" },
{ "BaboonEnterFight", "タカが怒って羽ばたく" },
{ "BareFootstep1", "足音" },
{ "BareFootstep2", "足音" },
{ "BareFootstep3", "足音" },
{ "BareFootstep4", "足音" },
{ "BeesAngry", "ハチが怒って羽ばたく" },
{ "BoomboxMusic1", "ラジカセが鳴る" },
{ "BoomboxMusic2", "ラジカセが鳴る" },
{ "BoomboxMusic2TVVersion", "テレビの音" },
{ "BoomboxMusic3", "ラジカセが鳴る" },
{ "BoomboxMusic4", "ラジカセが鳴る" },
{ "BoomboxMusic5Zedfox", "ラジカセが鳴る" },
{ "BoomboxStop", "ラジカセが止まる" },
{ "BootStomp1", "ドシンという音" },
{ "BootStomp2", "ドシンという音" },
{ "BootStomp3", "ドシンという音" },
{ "BreakerBoxClose", "ブレーカーボックスが開く" },
{ "BreakerBoxOpen", "ブレーカーボックスが閉じる" },
{ "BreakerLever1", "スイッチの操作音" },
{ "BreakerLevel2", "スイッチの操作音" },
{ "BreakerLever3", "スイッチの操作音" },
{ "Breathe1", "呼吸音" },
{ "Breathing", "呼吸音" },
{ "BridgeCreak1", "橋が崩れ落ちる" },
{ "BridgeCreak2", "橋が崩れ落ちる" },
{ "BridgeCreak3", "橋が崩れ落ちる" },
{ "BugWalk1", "虫の歩く音" },
{ "BugWalk2", "虫の歩く音" },
{ "BugWalk3", "虫の歩く音" },
{ "BugWalk4", "虫の歩く音" },
{ "BurrowingRumbleLoud1", "地面が揺れる" },
{ "BurrowingRumble1", "地響き" },
{ "BurrowingRumble2", "地響き" },
{ "BurrowingRumble3", "地響き" },
{ "CashRegisterDing", "チーンと鳴りレジが開く" },
{ "CawScream1", "タカが鳴く" },
{ "CawScream2", "タカが鳴く" },
{ "CawScream3", "タカが鳴く" },
{ "CawScream4", "タカが鳴く" },
{ "CawScream5", "タカが鳴く" },
{ "ClingToPlayer", "Snare Fleaが巻き付く音" },
{ "ClingToPlayerLocal", "Snare Fleaが巻き付く音" },
{ "ClownHorn1", "ラッパの音" },
{ "ClownHornFar", "遠くからラッパが鳴り響く" },
{ "CrackNeck", "首の折れる音" },
{ "DistantRumble1", "遠くの轟音" },
{ "DistantRumble2", "遠くの轟音" },
{ "DistantRumble3", "遠くの轟音" },
{ "DocileLocustBeesEvade", "バッタが散る" },
{ "DoorClose1", "ドアが開く" },
{ "DoorClose2", "ドアが開く" },
{ "DoorOpen1", "ドアが閉じる" },
{ "DoorOpen2", "ドアが閉じる" },
{ "DoorShut", "セキュリティドアが閉鎖される" },
{ "DoorSlam1", "ドアがバタンと鳴る" },
{ "DoorSlam2", "ドアがバタンと鳴る" },
{ "DoorUnlock", "セキュリティドアのロックが解除される" },
{ "DoorUnlock2", "セキュリティドアのロックが解除される" },
{ "DoublewingFlap1", "バタバタと羽ばたく" },
{ "DoublewingFlap2", "バタバタと羽ばたく" },
{ "DoublewingFlap3", "バタバタと羽ばたく" },
{ "DuckQuack", "ゴムのアヒルがグワッと鳴く" },
{ "EmergeFromGround1", "リヴァイアサンが地面を突き破る" },
{ "ExplodeHead", "頭がはじけ飛ぶ音" },
{ "ExplodeHeadSecondarySFX", "頭がはじけ飛ぶ音" },
{ "ExtensionLadderAlarm", "伸縮はしごのタイマー音" },
{ "ExtensionLadderExtend", "伸縮はしごが伸びる" },
{ "ExtensionLadderShrink", "伸縮はしごが収納される" },
{ "Fart1", "ブーブークッションがブッと鳴る" },
{ "Fart2", "ブーブークッションがブッと鳴る" },
{ "Fart3", "ブーブークッションがブッと鳴る" },
{ "Fart5", "ブーブークッションがブッと鳴る" },
{ "FGiantEatPlayerSFX", "誰かが食べられる音" },
{ "Fireplace", "火のパチパチと弾ける音" },
{ "FlashbangExplode", "フラッシュグレネードがさく裂する" },
{ "FlashlightClick", "フラッシュグレネードのピンが抜ける" },
{ "FlashlightClickMini", "ライトが付く" },
{ "FlashlightClickMini2", "ライトが消える" },
{ "Footstep1", "足音" },
{ "Footstep2", "足音" },
{ "Footstep3", "足音" },
{ "Footstep4", "足音" },
{ "Footstep5", "足音" },
{ "Found1", "ざわめき" },
{ "Frighten1", "クリーチャーが怯える" },
{ "Frighten3", "クリーチャーが怯える" },
{ "GiantStomp1", "巨人の足音" },
{ "GiantStomp2", "巨人の足音" },
{ "GiantStomp3", "巨人の足音" },
{ "GiantStomp4", "巨人の足音" },
{ "GiantStomp5", "巨人の足音" },
{ "growl", "犬のうなり声" },
{ "HangarDoorOpen1", "船のハッチが開く" },
{ "HangarDoorOpening", "船のハッチの操作音" },
{ "HangarDoorShut", "船のハッチが閉じる" },
{ "HoarderBugCry", "Hoarder bugが鳴く" },
{ "ItemDropshipLand", "輸送ポッドが着陸" },
{ "ItemDropshipOpenDoors", "輸送ポッドが開く" },
{ "JackInTheBoxTheme", "オルゴールが奏でられる" },
{ "JackOLanternHit", "ジャックオーランタンの笑い声" },
{ "JesterStomp1", "激しくドタドタ走る音" },
{ "JesterStomp2", "激しくドタドタ走る音" },
{ "JesterStomp3", "激しくドタドタ走る音" },
{ "KillPlayer", "誰かが殴打される音" },
{ "KillPlayer_0", "誰かが殴打される音" },
{ "LightningStrike1", "雷が落ちる音" },
{ "LightningStrike2", "雷が落ちる音" },
{ "LightningStrike3", "雷が落ちる音" },
{ "LightningStrike4", "雷が落ちる音" },
{ "LongRoar1", "クリーチャーが吠える" },
{ "LongRoar2", "クリーチャーが吠える" },
{ "LongRoar3", "クリーチャーが吠える" },
{ "LoudCreak1", "大きなギシギシという音" },
{ "LoudCreak2", "大きなギシギシという音" },
{ "LoudCreak3", "大きなギシギシという音" },
{ "Lunge1", "犬の息づかい" },
{ "LungMachineDisconnect", "装置が抜き取られる" },
{ "MaskCry1", "くぐもった泣き声" },
{ "MaskCry2", "くぐもった泣き声" },
{ "MaskCry3", "くぐもった泣き声" },
{ "MaskCry4", "くぐもった泣き声" },
{ "MaskLaugh1", "くぐもった笑い声" },
{ "MaskLaugh2", "くぐもった笑い声" },
{ "MaskLaugh3", "くぐもった笑い声" },
{ "MaskPuke", "何かを噴きかけられる" },
{ "MetalDoorShut1 1", "ドアのバタンという音" },
{ "MetalDoorShut1", "ドアのバタンという音" },
{ "MetalDoorShut2", "ドアのバタンという音" },
{ "MineBeep", "地雷の警告音" },
{ "MineTrigger", "地雷が作動" },
{ "MineDetonate", "地雷が爆発する" },
{ "MineDetonateDistance", "遠くで地雷が爆発する" },
{ "monsterNoise", "モンスターの音" },
{ "monsterNoise2", "モンスターの音" },
{ "monsterNoiseB", "モンスターの音" },
{ "Nervous", "クリーチャーが緊張する" },
{ "NutcrackerAngry", "Nutcrackerが怒る" },
{ "PlushieSqueeze", "人形をぷにゅっと押す音" },
{ "Pop1", "Jesterが箱から飛び出す" },
{ "PullCord", "紐を引く音" },
{ "RattleTail", "尻尾が鳴る" },
{ "Roar", "巨人の咆哮" },
{ "Roar_0", "犬が吠える" },
{ "RobotToyCheer", "ロボットのおもちゃが鳴る" },
{ "SandWormRoar", "リヴァイアサンが鳴く" },
{ "SandWormRoar2", "リヴァイアサンが鳴く" },
{ "Scan", "スキャン音" },
{ "Scream1", "低い悲鳴" },
{ "ShipTeleporterSpin", "テレポーターが起動する" },
{ "ShipTeleporterSpinInverse", "逆テレポーターが起動する" },
{ "ShipThrusterClose", "船のスラスター音" },
{ "ShortRoar1", "短い咆哮" },
{ "ShotgunBlast", "ショットガンの銃声" },
{ "ShotgunBlast2", "ショットガンの銃声" },
{ "ShotgunReload", "ショットシェルを込める" },
{ "ShotgunReloadNutcracker", "ショットシェルを込める音" },
{ "Shriek1", "悲鳴" },
{ "Shriek2", "悲鳴" },
{ "ShipAlarmHornConstant", "船のホーンが鳴り響く" },
{ "ShipAlarmHornConstantDistant", "遠くから聞こえる船のホーン" },
{ "SkipWalk", "スキップする音" },
{ "SkipWalk1", "スキップする音" },
{ "SkipWalk2", "スキップする音" },
{ "SkipWalk3", "スキップする音" },
{ "SkipWalk4", "スキップする音" },
{ "SkipWalk5", "スキップする音" },
{ "SkipWalk6", "スキップする音" },
{ "SlimeAngry", "スライムが怒る" },
{ "SlimeDance", "スライムが踊る" },
{ "SlimeIdle", "スライムが這いずる" },
{ "SlimeKillPlayer", "スライムに飲み込まれる音" },
{ "SpiderAttack", "クモが攻撃する" },
{ "Spring1", "バネの音" },
{ "Spring2", "バネの音" },
{ "Spring3", "バネの音" },
{ "SpringWobble1", "バネがギシッと鳴る" },
{ "SpringWobble2", "バネがギシッと鳴る" },
{ "Squeak1", "ギシッという音" },
{ "Squeak2", "ギシッという音" },
{ "StickyNote", "紙をめくる音" },
{ "Stomp", "踏みつける音" },
{ "Stomp1", "踏みつける音" },
{ "Stomp1double", "踏みつける音" },
{ "Stomp2", "踏みつける音" },
{ "Stomp2double", "踏みつける音" },
{ "Stomp3", "踏みつける音" },
{ "Stomp3double", "ドタドタという音" },
{ "StormStaticElectricity", "静電気がビリビリとなる音" },
{ "StuckInWeb", "クモの糸が揺れる" },
{ "StunCrawler", "Thumperがスタンする" },
{ "StunDog", "Dogがスタンする" },
{ "StunDoublewing", "Birdがスタンする" },
{ "StunFlowerman", "Brackenがスタンする" },
{ "StunGiant", "Giantがスタンする" },
{ "StunSpider", "Spiderがスタンする" },
{ "Thunder1", "雷が鳴る" },
{ "Thunder2", "雷が鳴る" },
{ "Thunder3", "雷が鳴る" },
{ "ToiletFlush", "トイレの流れる音" },
{ "TunnelIntoGround1", "リヴァイアサンが出てくる" },
{ "TurnTVOff", "テレビが消える" },
{ "TurnTVOn", "テレビが付く" },
{ "TurretActivate", "タレットが起動する" },
{ "TurretBerserkMode", "タレットの動作音" },
{ "TurretDeactivate", "タレットが無効化される" },
{ "TurretFire", "タレットの銃声" },
{ "TurretFireDistance", "遠くから聞こえるタレットの銃声" },
{ "TurretSeePlayer", "タレットが狙いを定める" },
{ "TVKittenTheme", "間の抜けたトロンボーンの曲" },
{ "VentCrawl1", "通気口の奥から聞こえる声" },
{ "VentOpen1", "通気口の開く音" },
{ "WarningHUD", "警告音" },
{ "WarningHUD2", "警告音" },
{ "WarningHUD3", "警告音" }
};
public Dictionary<string, List<(float, string)>> DialogueTranslations => new Dictionary<string, List<(float, string)>>(StringComparer.OrdinalIgnoreCase)
{
{
"0DaysLeftAlert",
new List<(float, string)>
{
(0f, "[会社のジングルが流れる]"),
(4.969f, "すぐに社屋に出向いて"),
(7.189f, "スクラップやその他の品物を売ってください。"),
(9.758f, "利益ノルマ達成当日です。"),
(13.085f, "ターミナルを使うことで"),
(14.874f, "自動操縦船を社屋に向かわせることができます。")
}
},
{
"IntroCompanySpeech",
new List<(float, string)>
{
(0f, "[会社のジングルが流れる]"),
(7.31f, "勤務初日へようこそ!"),
(10.14f, "これは契約期間中に"),
(12.44f, "食事や寝泊まりをする"),
(13.8f, "あなた専用の自動操縦船です。"),
(15.28f, "[不明瞭な早口言葉]"),
(19.94f, "どうぞおくつろぎください。"),
(21.69f, "乗船手続きを完了するには"),
(23.77f, "操縦席に置いてあるマニュアルを確認し"),
(25.65f, "船内のターミナルにアクセスしてください。"),
(28.29f, "あなたが会社にとって大きな戦力となることを期待しています。"),
(31.035f, "おっおっ大きな戦力会社の…"),
(32.83f, "戦力おっおっおっ大きな戦力会社の…"),
(35.235f, "大きなせっせっ戦力…")
}
},
{
"LightningAudio",
new List<(float, string)>
{
(0f, "[明るい音楽が流れる]"),
(3.02f, "[雷が落ちる]"),
(4.3f, "[笑い声]")
}
},
{
"SnareFleaTipChannel",
new List<(float, string)>
{
(0.33f, "エンティティがクルーに接触した際"),
(2.83f, "即座に自己防衛を行うのは控えてください。"),
(5.3f, "その代わりに、クルーに次のように尋ねてください:"),
(7.495f, "\"彼らは攻撃的ですか?\""),
(9.41f, "\"ケガはしていませんか?\""),
(10.635f, "\"手助けが必要ですか?\""),
(11.73f, "これらの質問に対する答えがすべて「イエス」なら"),
(13.92f, "自衛措置を開始してください。"),
(15.9f, "クルーがストレスを感じている場合"),
(17.19f, "\"今日はどうだった?\"などと声掛けを行いましょう。"),
(19.62f, "ご視聴ありがとうございました。良い旅を!")
}
},
{
"VoiceHey",
new List<(float, string)> { (0f, "やあ。") }
}
};
}
}