using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using System.Text.RegularExpressions;
using BepInEx;
using BepInEx.Bootstrap;
using HarmonyLib;
using LCTC;
using Microsoft.CodeAnalysis;
using TMPro;
using TerminalTranslator;
using UnityEngine;
using UnityEngine.UI;
[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("LCTC_Terminal")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyDescription("A template for Lethal Company")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("LCTC_Terminal")]
[assembly: AssemblyTitle("LCTC_Terminal")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.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;
}
}
}
internal class Translator
{
public static string Translate(string input, Dictionary<string, string> Dictionary)
{
foreach (KeyValuePair<string, string> item in Dictionary)
{
input = Regex.Replace(input, item.Key, item.Value);
}
return input;
}
public static string TranslateNode(string nodeName, string nodeText)
{
if (Dictionaries.Nodes.ContainsKey(nodeName))
{
return Dictionaries.Nodes[nodeName];
}
return Translate(nodeText, Dictionaries.TextPostProcess);
}
}
internal class Dictionaries
{
public static readonly Dictionary<string, string> Nodes = new Dictionary<string, string>
{
{ "LogFile13", "日期:1968年10月1日\n我們又沒有零食和檸檬水包了。德斯蒙德認為震撼彈更有「益處」,如果他再拖延一天不訂購我的東西,我就要在控制桿上拉屎,然後問他對他的震撼彈有什麼看法。德斯蒙德別讀這個\n\n 我知道我不是什麼巫師,但我想今天我又是電腦小子了。每次我在誓言外出時,他們都說我變得蒼白得像死人,所以他們讓我負責看螢幕。他們可能覺得我變軟弱了。無所謂,盧卡斯才是那個害怕的人。祝他好運,別讓他嚇瘋了。我可以像在後院一樣在夜晚閒逛!只是三天前我看見了Rich在山丘上。他在河的另一邊。我不害怕,只是外面變得越來越冷。我想他們只是想讓我每天都負責看螢幕,而且他們都有藉口。\n\n 我想念爸爸。我希望他沒有留在土衛六上。人們說兩年內它將不會再是同樣的樣子。潔絲告訴我們他們即將開戰,每個人都在等待著。每次我們去銷售時,公司大樓都像裡面有噪音巨大的爐子一樣震動。他們太害怕辭職了。為了達到配額,我們幾乎無法入睡,每次都變得更糟。天啊,我覺得自己就像被擠過針眼一樣。我希望我們能回去。即使我什麼都沒有,只有每日津貼,跟爸爸一起工作也更好。我喜歡他開車帶我們出城看瀑布,我們走上那些老木階梯。我只是想要一份真正的工作。\n\n\r\n" },
{ "LogFile8", "我在對講機上和一個聲音談話,它就像尖叫聲的一部分。他告訴我金色星球真的存在,它不是傳說。他還告訴我,它不僅僅是撞到了一顆流星。他說那個星球被「野獸」吞噬了,他們正處於它的體內被消化。我問野獸是什麼,他說他不知道!他說它吃掉了星球,他們忘記了一切。\\r\n\\r\n我無法讓他停止講話。但我說他在一堵厚牆的另一側,我可以把他救出來。我說他在大樓內。就在那時,他開始瘋狂大叫/。我聽不清楚他說什麼,我想他說了些關於「吐出果皮」的事。所以我就把它關掉了。真是瘋了\n\\r\nJess說金色星球只是個故事。我說我知道,我不是傻瓜。嗯,她說我應該辭職,如果我辭職她也辭職。所以她留下來了\n\n\r\n" },
{ "LogFile10", "日期: 1968 年 9 月27日\\r\n Desmond 要我寫下我們發現的東西,並讓我的「胡言亂語盡量少」。所以我打算寫很多我的胡言亂語。去他的。新的組員叫Lucas,他一直都很困惑和害怕,真是個嬰兒,至少他不像怪物那樣臭。\\r雖然是九月,天氣一直很晴朗,而這些衣服受不了這樣的天氣\n好吧,所以 Desmond 「追蹤了這個電話」,發現有一群人在別的地方假裝從公司大樓給我們打電話。他們在整個太陽系的另一邊!!為什麼他們會在那麼遠的地方。\\r\n\n Desmond 說他不知道,但我在想。如果公司大樓裡真的有個像對講機上的聲音告訴我的那樣的大怪物呢?他們把它困住了,我們餵食它來保持它溫馴。我只是想要一份愚蠢的工作!!!\n\n\r\n" },
{ "LogFile12", "Desmond 。 1968 年10月3日。我正在加密這些日記以保持它們的隱藏,因為我擔心如果它們被發現,系統將被清除。這一切都是偽裝。我們應該認為這支是一筆交易,但我們真正的工作是餵食一個不可思議的恐怖。直到它的飽足結束,它的飢餓無法滿足,還有多久?上帝知道,也許這與所有這些荒涼的星球有關。無論誰讀到這個,我很抱歉給你帶來這個負擔。請有一個美好的白天和夜晚——我們還能做什麼呢?\n\n\r\n" },
{ "LogFile3", "過去幾天我們進入了「工作節奏」。這是 Rich 一直在說的,他聞起來像腐臭的鮪魚罐頭。我去過的最糟糕的夏令營。日期是 1968 年 8 月 27 日。\\r\n我們確保總有人拿著鏟子去敲打任何會動的東西,我們總是讓某人負責「攝影紀錄值班」,這樣他們就可以用帶有字母和數字的這些大安全門開啟。問問 Desmond 這個巫師那是怎麼回事,我想他只是輸入門上的代碼\\r。就這樣\n\\r\n我們今天以70%的價值把一些貨物賣給了公司。聽著櫃檯後面那些他媽的瘋狂的聲音,我都快緊張死了。沒有其他人給出任何反應。??\\r\n無法忽視這一點!我的手電筒甚至沒有照射到那裡,光束就變暗了。\n\n\r\n" },
{ "AlreadyOnThisPlanet", "自動駕駛的飛船已經繞著這顆星球了!\n\n" },
{ "FlashedRadarBooster", "已閃爍雷達增強器。\n\n" },
{ "ConfirmEject", "你是否想要進行強制彈出,包括自己在內的所有船員?你必須繞著一個星球進行軌道飛行。\n\n請「確認(CONFIRM)」或「拒絕(DENY)」。\n\n\r\n" },
{ "DenyEject", "取消強制彈出。\n\n" },
{ "EjectPlayers", "正在強制彈出船員。\n\n" },
{ "SwitchRadarCamPlayer 1", "切換雷達至玩家。\n\n" },
{ "SignalTranslatorInfo", "\n使用「傳送(transmit)」命令向所有船員廣播文字訊息。訊息必須少於10個字母。\n\n" },
{ "0_Bestiary", "怪物目錄\n\n要查看一個怪物檔案,請在檔案名前面 「資訊 (Info)」。\n---------------------------------\n\n[currentScannedEnemiesList]\n\n" },
{ "HoardingBugFile", "囤積蟲\n\nSigurd 的危險等級:0%\n\n學名:Linepithema-crassus\n囤積蟲 (膜翅目) 是大型的、具社會性的昆蟲。雖然經常獨自生活,但它們也與同種成員共享巢穴。它們平均身高約3英尺,體型膨脹。它們的體液和血液的稀薄,以及甲殼的材質使它們體重輕,能夠用膜質翅膀飛行。這也使得它們的身體有些透明。\n\n囤積蟲因其領土性質而得名。一旦它們選擇了一個地方作為巢穴,就會尋找任何可以找到的物品來裝飾它,並將這些物品作為巢穴的一部分進行保護。囤積蟲單獨時並不像在大型蜂巢中那麼危險。然而,如果被單獨留下,囤積蟲出人意料地中立,並不構成太大危險。我們愛這些愚蠢的擁抱蟲!! - 這是不屈不撓的 Sigurd 的留言。\r\n" },
{ "LassoManFile", "LASSO\n\nSigurd 的危險等級:30%,但它有點讓我毛骨悚然\n\n學名:[未提供] \n\n\n" },
{ "NutcrackerFile", "胡桃鉗\n\n家之守護者。\n\n它們用一隻不知疲倦的眼睛注視著,這隻眼睛只能感知動作;它記住了最後一個被它注意到的生物,無論他們是否在移動。\r\n" },
{ "CoilHeadFile", "彈簧頭\n\nSigurd 的危險等級:80%\n\n學名:Vir colligerus\nVir colligerus,俗稱彈簧頭,由於其極端的不可預測性和危險特性,尚未進行廣泛研究。它們在解剖或甚至停用時已知會突然燃燒成火焰,並攜帶危險高度的放射性顆粒。因此和其他原因,高度推測它們是作為戰爭的生物武器創造出來的,儘管這一點尚未被證實。\n\n彈簧頭的視覺外觀是一個血腥的假人,頭部由一個彈簧連接。它們的主要行為特徵是在被注視時會停止行動。然而,這並不是一個固定不變的規則。當它們遇到響亮或明亮的光時,有時似乎會進入一個長時間的重設模式。\n只要盯著它們看或使用閃光手榴彈! - Sigurd\n\n\r\n" },
{ "ButlerFile", "管家\n\nSigurd 的危險等級: 70%\n\n關於這種類型的文件,我自己製作。 我們經常在物體中發現這些臭氣熏天的怪物,他們不想與我們交談,甚至不注意我們,看起來像是灌了氣的氣球。 腐爛肉的氣味,讓理察感到噁心。 我聽到蒼蠅在他們的身體裡嗡嗡作響。 傑斯說,她看到有東西從他的眼眶裡鑽出來,然後又鑽了回去。\n\n我不知道該怎麼辦。\n\n他們只是在那裡走來走去掃地,我想這就是為什麼別墅裡如此乾淨。 至少他們在做自己的工作。 但是我發誓,當我背對著他們的時候,這些臭氣熏天的怪物會盯著我看。\n\n更新:他們拿著刀追著理查。 我們沒看見這一幕,但是他說當他走進房間時,管家就像什麼都沒有發生一樣拿著掃帚開始打掃。 所以從那時起,我們都在一起。 該死的管家! 現在我需要靠近理查,他一定嚇壞了穿上他的西裝\n\n" },
{ "TulipSnakeFile", "鬱金香蛇\n\nSigurd 的危險等級: 1%\n\n學名:Draco tulipa\n鬱金香蛇,或者鬱金香蜥蜴,是一種飛行蜥蜴,可以根據其長長的手臂和翅膀輕松區分於其他同類物種(龍)。 它們通常具有異常鮮艷的顏色和圖案。 它們的名稱來自於其頸部和頭部下方的花瓣狀瓣片,它們類似於大花瓣。 (其他特殊特徵包括額外的一對眼睛和深度分叉的尾巴。)\n\n它們的行為固執且無畏。 實際上,鬱金香蛇很少會逃離捕食者。 但是諷刺的是,許多生物學家認為它們的花卉外表更有助於它們作為偽裝而不是展示恐嚇。 它還在它們精心設計的求偶儀式中扮演著重要角色,這更像是鳥類的求偶儀式。\n\n值得注意的是,舉重和舉起沉重和大型物品通常被觀察為鬱金香蛇交配過程的一部分; 它們可以攜帶石頭和植物至少是它們大小的兩倍,以給潛在的伴侶留下深刻的印象。 保護、嫉妒和暴怒的雄性最終可能因它們喜歡的物品(甚至其他生物)而進行拉鋸戰。\n\n" },
{ "RadMechFile", "古代鳥(機器人)\n\n\"古代鳥(機器人)\" - 人形構造的自主攻擊性武器。身高5.7公尺,寬3.3公尺。其兩個最顯著的視覺特徵是其頭部的投影燈,能夠發射100,000流明的光芒,以及其胸部的遠程聲學設備,有時被稱為聲音炮。它的肩膀上有額外的揚聲器,用於將聲音傳播到遠距離。古代鳥的左手是利爪,右手是噴口,可以發射反應式榴彈,也可以點燃非常熾熱的火焰。古代鳥是第一個除了軌道外武器之外,還將被用於大規模生產的武器。\n 關於誰開發了古代鳥的話題自從它們首次出現在頻道上以來就引發了激烈的爭論。\n\n古代鳥的設計,甚至包括金屬的鍛造,似乎旨在掩蓋它的起源。它被稱為\"有關勒索信件的步行機器人。\" 古代鳥的腿可以像火箭一樣工作,這使它們能夠跨越長距離並有效地找到目標。但這種功能存在的最有可能的原因是幫助它們從軌道上進入並著陸。古代鳥依賴的材料和燃料類似於2130年左右的客運太空梭的材料和燃料。\n古代鳥降落並永久停留在目標行星上。雖然它們的燃料通常足夠完成一次旅行,但它們的程序中沒有顯示出它們可能選擇\"遷徙\"的任何行為。然而,有未經驗證的資訊稱,古代鳥可能在數百年後自行前往新的行星。 古代鳥歷史上被稱為\"阿爾\",這是根據英國軍方給予它的代號\"A16-L31\"而來的。然而,在2384年,後朋克項目Under Remora發布了一首名為\"古代鳥\"的歌曲作為崇拜的熱門曲目;僅僅三年後,在他最著名的同名作品中,街頭藝術家蘭德·艾瑞描繪了機器人,它們像雁群一樣飛來飛去 - 這通常被認為是現代文化中最具標誌性和具有影響力的形象之一,並鞏固了現代綽號。\n在2356年,5-Embrion月球被分類為生存或殖民目的的被遺棄的,據目擊者稱,古代鳥\"填滿了天空\"。 儘管它們在今天看來似乎是無法工作的,但有合理的風險認為,許多古代鳥仍處於休眠狀態,因此該行星很可能會保持其地位。 這個小小的月球可能被用作古代鳥的飛行和著陸能力的測試場。\n\n" },
{ "WelcomeNode", "BG IG,系統行動盟友\n版權所有 (C) 2084-2108,Halden Electronics Inc.\n公司致意。\n\n\n\nXoFKon_LCTC-9 87.7/10MHZ 系統生物資料\n\n目前日期為 2532 年 7 月 3 日 週二\n目前時間為 8:03:32.15\n\n請輸入最喜歡的動物:\r\n" },
{ "WelcomeNode2", "\n請描述你在隊伍中的角色: " },
{ "AdamanceInfo", "20-Adamance\n----------------------\n\n條件:侵蝕和地理力量導致月球形成深谷和山脈。\n\n歷史:Adamance - 被俗稱為「綠色女巫」的月球中最大且最古老的之一:環繞著不服務的月球的Vow、March和Adamance。\n\n生態圈:Adamance月球是各種小型雜食性動物的生態系的家園。\n\n" },
{ "ArtificeInfo", "68-Artifice\n----------------------\n\n條件:被遺棄的物體散落在曾經繁華的領土上。\n\n歷史:武器和秘密技術被發現在這個月球表面的不同地點;製造日期至少為兩百年前。\n\n生態圈:有傳聞說,仍然存在活動的技術。\n\n" },
{ "EmbrionInfo", "5-Embrion\n----------------------\n\n條件:Embrion月球的表面幾乎完全由紫水晶石英組成,這得益於Embrion月球與最近恆星的距離以及與之相關的地熱活動。Embrion月球表面非常炎熱且空氣不適宜呼吸。\n\n歷史:Embrion月球是在上個世紀才被發現的。很明顯,它在正式發現之前就被用作「舊鳥」的試驗場。由於這種危險,它被賦予了「廢棄」地位。有理論認為,在這個月球表面下的廣泛洞穴系統中可能會繁衍多樣化的地熱生態系統。\n\n生態圈:Embrion月球缺乏生物生命。\n\n" },
{ "StartFirstTime", " \\ \\ / / | | \\r\n \\ \\ /\\ / /__| | ___ ___ _ __ ___ ___ \\r\n \\ \\/ \\/ / _ \\ |/ __/ _ \\| '_ ` _ \\ / _ \\\\r\n \\ /\\ / __/ | (_| (_) | | | | | | __/\\r\n \\/ \\/ \\___|_|\\___\\___/|_| |_| |_|\\___|\\r\n\n\n歡迎使用 狐Kon LCTC 中文作業系統\n\t輸入 「Help」 可查看命令列表。" }
};
public static readonly Dictionary<string, string> TextPostProcess = new Dictionary<string, string>
{
{ "1 purchased items on route.", "1 件物品正在運輸中。" },
{ "(2|3|4) purchased items on route.", "$1 件物品正在運輸中。" },
{ "(5|6|7|8|9|10|11|12) purchased items on route.", "$1 件物品正在運輸中。" },
{ "The cost to route to (.+?) is (.+?). It is \ncurrently (.+?) on this moon.\n\nPlease CONFIRM or DENY.\n\n\n", "前往 $1 的費用是 $2。目前在這個星球上的天氣是 $3。\n\n請確認 (CONFIRM) 或拒絕 (DENY)。\n\n \n\n\n" },
{ "Real Job - Oct 1", "Real Job - Oct 1" },
{ "Idea - Sep 18", "Idea - Sep 18" }
};
public static readonly Dictionary<string, string> PlanetInfo = new Dictionary<string, string>
{
{ "A competitive ecosystem supports aggressive lifeforms.", "競爭激烈的生態系統支持著具有攻擊性的生物形態。" },
{ "Arid. Thick haze, worsened by industrial artifacts.", "乾燥。濃霧,被工業工藝品惡化。" },
{ "Dangerous entities have been rumored to take residence in the vast network of tunnels.", "傳聞中,在廣闊的隧道網路中棲息著危險的實體。" },
{ "Dominated by a few species.", "由少數幾種物種主導。" },
{ "Ecosystem supports territorial behaviour.", "生態系統支持領土行為。" },
{ "Expansive. Constant rain.", "廣闊。持續不斷的雨。" },
{ "Frozen, rocky. Its planet orbits a white dwarf star.", "冰凍,多岩石。其行星圍繞著一顆白矮星運轉。" },
{ "Humid. Rough terrain. Teeming with plant-life.", "濕潤。崎嶇的地形。植物生長茂密。" },
{ "Jagged and weathered terrain.", "崎嶇且風化的地形。" },
{ "No land masses. Continual storms.", "沒有陸地。持續的暴風雨。" },
{ "Unlikely for complex life to exist", "複雜生命形式的存在不太可能。" },
{ "Where the Company resides.", "公司所在地。" },
{ "Abandoned", "被遺棄" },
{ "Diverse", "多樣化" },
{ "Eclipsed", "日蝕" },
{ "Flooded", "淹水" },
{ "Foggy", "多霧" },
{ "None", "無" },
{ "Rainy", "多雨" },
{ "Safe", "安全" },
{ "Stormy", "暴風雨" },
{ "Unknown", "未知" },
{ "CELESTIAL BODY", "天體" },
{ "Orbiting", "星球" },
{ "POPULATION", "人口" },
{ "CONDITIONS", "條件" },
{ "FAUNA", "生態圈" },
{ "Weather", "天氣" }
};
public static readonly Dictionary<string, string> Chat = new Dictionary<string, string>
{
{ "(.*) joined the ship\\.", "$1 加入飛船" },
{ "(.*) started the ship\\.", "$1 啟動了飛船" },
{ "(.*) was left behind\\.", "$1 被遺棄在後面" },
{ "(.*) disconnected\\.", "$1 斷開連線" },
{ "(.*) was kicked\\.", "$1 被踢出飛船" }
};
public static readonly Dictionary<string, string> Notes = new Dictionary<string, string>
{
{ "Most profitable.", "最有利可圖的。" },
{ "Sustained the most injuries.", "遭受最多傷害。" },
{ "The laziest employee.", "最懶惰的員工。" },
{ "The most paranoid employee.", "最多疑的員工。" }
};
public static readonly Dictionary<string, string> Loading = new Dictionary<string, string>
{
{ "Random seed", "隨機種子" },
{ "LOADING WORLD...", "正在載入世界..." }
};
}
namespace LCTC_Terminal
{
public static class PluginInfo
{
public const string PLUGIN_GUID = "LCTC_Terminal";
public const string PLUGIN_NAME = "LCTC_Terminal";
public const string PLUGIN_VERSION = "1.0.0";
}
}
namespace Patchers
{
internal static class PatchSettings
{
public static bool IsPatchEnabled { get; set; } = true;
}
[HarmonyPatch(typeof(Terminal), "LoadNewNode")]
internal class PatchLoadNewNode
{
[HarmonyPrefix]
private static bool Prefix(ref TerminalNode node)
{
string text = Translator.TranslateNode(((Object)node).name, node.displayText);
if (text != null)
{
node.displayText = text;
}
return true;
}
}
[HarmonyPatch(typeof(Terminal), "ParsePlayerSentence")]
internal class TerminalParsePatch
{
private static void Postfix(ref Terminal __instance, ref TerminalNode __result)
{
string text = __instance.screenText.text.Substring(__instance.screenText.text.Length - __instance.textAdded);
if (text.ToLower() == "translate")
{
__result.displayText = "[translate]";
}
}
private static void printProp(string objName, object obj)
{
PropertyInfo[] properties = obj.GetType().GetProperties();
PropertyInfo[] array = properties;
PropertyInfo[] array2 = array;
foreach (PropertyInfo propertyInfo in array2)
{
string name = propertyInfo.Name;
object value = propertyInfo.GetValue(obj, null);
Console.WriteLine(objName + " Props=>" + name + ": " + value);
}
}
}
[HarmonyPatch(typeof(Terminal), "TextPostProcess")]
internal class TerminalPatch
{
private static string Postfix(string modifiedDisplayText, TerminalNode node)
{
TaiwanTerminal taiwanTerminal = new TaiwanTerminal();
return taiwanTerminal.translate(ref modifiedDisplayText, ref node);
}
private static void printProp(string objName, object obj)
{
PropertyInfo[] properties = obj.GetType().GetProperties();
PropertyInfo[] array = properties;
PropertyInfo[] array2 = array;
foreach (PropertyInfo propertyInfo in array2)
{
string name = propertyInfo.Name;
object value = propertyInfo.GetValue(obj, null);
Console.WriteLine(objName + " Props=>" + name + ": " + value);
}
}
}
}
namespace TerminalTranslator
{
internal class TaiwanTerminal
{
private bool firstUse = true;
public string translate(ref string modifiedDisplayText, ref TerminalNode node)
{
string text = node.displayText.ToString();
if (firstUse & (((Object)node).name == "OtherCommands"))
{
modifiedDisplayText = modifiedDisplayText.Replace(".\n\n\n", ".\n\n>FLASH [雷達增強器器名稱]\n讓雷達增強器器閃光。\n\n>EJECT\n緊急彈出\n\n>TRANSLATE\n翻譯薰習\n\n");
}
string result;
if (text.Contains("[translate]"))
{
credits(ref modifiedDisplayText);
result = modifiedDisplayText;
}
else if (text.Contains("[currentDay]"))
{
translateWelcome(ref modifiedDisplayText);
result = modifiedDisplayText;
}
else if (text.Contains("[numberOfItemsOnRoute]"))
{
translateMenu(ref modifiedDisplayText);
result = modifiedDisplayText;
}
else if (text.Contains("[planetTime]"))
{
translateCommandMoons(ref modifiedDisplayText);
result = modifiedDisplayText;
}
else if (text.Contains("[unlockablesSelectionList]"))
{
translateCommandStore(ref modifiedDisplayText);
result = modifiedDisplayText;
}
else if (text.Contains("[currentScannedEnemiesList]"))
{
translateCommandBestiary(ref modifiedDisplayText);
result = modifiedDisplayText;
}
else if (text.Contains("[storedUnlockablesList]"))
{
translateCommandStorage(ref modifiedDisplayText);
result = modifiedDisplayText;
}
else if (text.Contains("[currentUnlockedLogsList]"))
{
translateCommandSigurd(ref modifiedDisplayText);
result = modifiedDisplayText;
}
else
{
translateCommandOther(ref modifiedDisplayText);
translateMisc(ref modifiedDisplayText);
translateDetailStore(ref modifiedDisplayText);
if (modifiedDisplayText.Length > 180)
{
if (!translateDetailMoons(ref modifiedDisplayText))
{
return modifiedDisplayText;
}
if (!translateDetailBestiary(ref modifiedDisplayText))
{
return modifiedDisplayText;
}
if (!translateDetailSigurd(ref modifiedDisplayText))
{
return modifiedDisplayText;
}
}
result = modifiedDisplayText;
}
return result;
}
public void credits(ref string raw)
{
raw = "\n\n\n歡迎來到翻譯資訊版塊。\n在這裡,您可以了解該項目的作者和協助者。\n今後還將增加這一部分的內容。\n____________________________\n\n* 文本翻譯、紋理和定稿:狐Kon\n\n* 文本和紋理翻譯:狐Kon\n\n _____ _______ _ _____ \r\n | __ \\__ __| | / ____|\r\n | |__) | | | | | | | \r\n | _ / | | | | | | \r\n | | \\ \\ | | | |___| |____ \r\n |_| \\_\\ |_| |______\\_____|\r\n";
}
public void translateWelcome(ref string raw)
{
raw = raw.Replace("Welcome to the FORTUNE-9 OS", "歡迎使用 狐Kon LCTC 中文作業系統").Replace("Courtesy of the Company", "公司致意").Replace("Happy Monday", "祝你有個快樂星期一")
.Replace("Happy TuesDay", "祝你有個快樂星期二")
.Replace("Happy Wednesday", "祝你有個快樂星期三")
.Replace("Happy Thursday", "祝你有個快樂星期四")
.Replace("Happy Friday", "祝你有個快樂星期五")
.Replace("Happy Saturday", "祝你有個快樂星期六")
.Replace("Happy Sunday", "祝你有個快樂星期日")
.Replace("Type \"Help\" for a list of commands", "輸入 「幫助(Help)」 可查看命令列表");
}
public void translateMenu(ref string raw)
{
raw = raw.Replace("To see the list of moons the autopilot can route to", "查看自動駕駛可以前往到的星球列表").Replace("To see the company store's selection of useful items", "查看公司商店的有用物品").Replace("To see the list of wildlife on record", "查看已記錄的生物列表")
.Replace("To access objects placed into storage", "查看儲存中放置的物品")
.Replace("To see the list of other commands", "查看其他命令列表");
}
public void translateCommandMoons(ref string raw)
{
raw = raw.Replace("Welcome to the exomoons catalogue", "歡迎來到星球目錄").Replace("To route the autopilot to a moon, use the word ROUTE", "要將自動駕駛隨機到一個星球,使用「路線 (ROUTE)」這個詞").Replace("To learn about any moon, use the word INFO", "要了解任何星球的資訊,請在星球名字前面加上「INFO」這個詞")
.Replace("Buying at", "公司收購匯率")
.Replace("Eclipsed", "日蝕")
.Replace("Flooded", "洪水")
.Replace("Stormy", "暴風雨")
.Replace("Foggy", "大霧")
.Replace("Rainy", "下雨");
}
public void translateCommandStore(ref string raw)
{
raw = raw.Replace("Welcome to the Company store", "歡迎來到公司商店").Replace("Use words BUY and INFO on any item", "對任何商品前面使用單字 「購買 (BUY)」或 「資訊 (INFO)」 ").Replace("Order tools in bulk by typing a number", "可以透過在商品名字加上數字來批次購買")
.Replace("Price", "價錢")
.Replace("* Walkie-talkie", "* Walkie-talkie(對講機)")
.Replace("* Spray paint", "* Spray paint(噴漆罐)")
.Replace("* Flashlight", "* Flashlight(手電筒)")
.Replace("* Shovel", "* Shovel(鏟子)")
.Replace("* Lockpicker", "* Lockpicker(開鎖器)")
.Replace("* Pro-flashlight", "* Pro-flashlight(高級手電筒)")
.Replace("* Stun grenade", "* Stun grenade(閃光彈)")
.Replace("* Boombox", "* Boombox(音樂箱)")
.Replace("* TZP-Inhalant", "* TZP-Inhalant(TZP 吸入劑)")
.Replace("* Zap gun", "* Zap gun(電擊槍)")
.Replace("* Jetpack", "* Jetpack(噴射背包)")
.Replace("* Extension ladder", "* Extension ladder(伸縮梯子)")
.Replace("* Radar-booster", "* Radar-booster(雷達增強器)")
.Replace("SHIP UPGRADES", "飛船升級")
.Replace("* Loud horn", "* Loud horn(大喇叭)")
.Replace("Goldfish", "Goldfish (金魚)")
.Replace("Plushie pajama man", "Plushie pajama man (毛絨睡衣娃娃)")
.Replace("* Teleporter", "* Teleporter(傳送器)")
.Replace("* Signal Translator", "* Signal Translator(訊號翻譯器)")
.Replace("* Inverse Teleporter", "* Inverse Teleporter(反向傳送器)")
.Replace("The selection of ship decor rotates per-quota. Be sure to check back next week", "飛船家具會依照金額輪換。請務必下週再來查看")
.Replace("Romantic table", "Romantic table (浪漫餐桌)")
.Replace("Toilet", "Toilet (馬桶)")
.Replace("Shower", "Shower (淋浴間)")
.Replace("Table", "Table (桌子)")
.Replace("Record player", "Record player (唱片播放器)")
.Replace("Cozy lights", "Cozy lights(浪漫燭光)")
.Replace("Pajama suit", "Pajama suit(睡衣太空裝)")
.Replace("Green suit", "Green suit(綠色太空裝)")
.Replace("Hazard suit", "Hazard suit (化學太空裝)")
.Replace("glow suit", "Hazard suit (化學太空裝)")
.Replace("Bunny suit", "Bunny suit (兔子裝)")
.Replace("Television", "Television (電視)")
.Replace("Cupboard", "Cupboard (置物櫃)")
.Replace("Signal translator", "Signal translator (訊號翻譯機)")
.Replace("JackOLantern", "JackOLantern (南瓜燈)")
.Replace("Welcome mat", "Welcome mat (歡迎地毯)")
.Replace("File Cabinet", "File Cabinet (檔案櫃)")
.Replace("Bunkbeds", "Bunkbeds (雙層床)")
.Replace("Signal translator", "Signal translator (訊號翻譯器)")
.Replace("Welcome mat", "Welcome mat (歡迎地毯)")
.Replace("Disco Ball", "Disco Ball (迪斯可球)")
.Replace("JackOLantern", "JackOLantern (南瓜燈)");
}
public void translateCommandBestiary(ref string raw)
{
raw = raw.Replace("No data collected on wildlife. Scans are required", "目前沒有收集到生物數據。需要掃描").Replace("NEW", "新物種").Replace("Hygroderes", "Hygroderes - 史萊姆")
.Replace("Snare fleas", "Snare fleas - 陷阱跳蚤(抱臉蟲)")
.Replace("Bunker spiders", "Bunker spiders - 碉堡蜘蛛")
.Replace("Hoarding bugs", "Hoarding bugs - 囤積蟲(蟑螂)")
.Replace("Thumpers", "Thumpers - 半身怪(車力巨人)")
.Replace("Coil-heads", "Coil-heads - 彈簧頭")
.Replace("Spore lizards", "Spore lizards - 袍子蜥蜴")
.Replace("Brackens", "Brackens - 花人布拉肯(花男)")
.Replace("Jesters", "Jesters - 小丑盒")
.Replace("Manticoils", "Manticoils - 四翼鳥")
.Replace("Roaming locusts", "Roaming locusts - 漫遊蝗蟲")
.Replace("Circuit bees", "Circuit bees - 電路蜜蜂")
.Replace("Baboon hawks", "Baboon hawks - 狒狒鷹")
.Replace("Eyeless dogs", "Eyeless dogs - 無眼犬")
.Replace("Forest keepers", "Forest keepers - 森林守護者(巨人)")
.Replace("Earth leviathans", "Earth leviathans - 大地利維坦(沙蟲)")
.Replace("Old birds", "Old Bird - 老鳥(機器人)")
.Replace("Butlers", "Butlers - 管家")
.Replace("mask hornets", "Mask Hornets - 假面大黃蜂")
.Replace("Tulip snakes", "Tulip Snake - 鬱金香蛇")
.Replace("Nutcrackers", "Nutcrackers - 胡桃鉗");
}
public void translateCommandStorage(ref string raw)
{
raw = raw.Replace("While moving furniture with [B], you can press [X] to send it to storage. You can call it back from storage here", "使用 [B] 移動物品時,可以按下 [X] 將其傳送到倉庫。在這裡,你可以將它們召回").Replace("These are the items in storage:", "倉庫中的物品列表:\n").Replace("Order tools in bulk by typing a number", "輸入數量,批次訂購工具")
.Replace("No items stored. While moving an object with B, press X to store it", "倉庫中沒有物品。用 [B] 移動物體時,按 [X] 將其送入倉庫")
.Replace("Loud horn\n", "Loud horn (大喇叭)\n")
.Replace("Inverse Teleporter\n", "Inverse Teleporter (反向傳送器)\n")
.Replace("Teleporter\n", "Teleporter (傳送器)\n");
translateCommandStore(ref raw);
}
public void translateCommandOther(ref string raw)
{
raw = raw.Replace("Other commands", "其他命令").Replace("To toggle on AND off the main monitor's map cam", "打開/關閉主監視器畫面。").Replace("[Player name]", "[玩家名稱]")
.Replace("To switch view to a player on the main monitor", "將畫面切換到另一名玩家。")
.Replace("[Radar booster name]", "[雷達增強器名稱]")
.Replace("[message]", "[訊息]")
.Replace("To transmit a message with the signal translator", "使用訊號翻譯器傳輸資訊。")
.Replace("To make a radar booster play a noise", "讓雷達增強器發出聲音")
.Replace("To scan for the number of items left on the current planet", "掃描當前星球上的廢料數量");
}
public void translateCommandSigurd(ref string raw)
{
raw = raw.Replace("SIGURD'S LOG ENTRIES", "SIGURE 的日記目錄").Replace("NEW", "新日記").Replace("To read a log, use keyword \"VIEW\" before its name", "要閱讀日記,請在其名稱前加上關鍵字「VIEW」")
.Replace("First Log - Aug 22", "First Log -8 月 22 日 (第一篇日記)")
.Replace("Smells here! - Aug 24", "Smells here! - 8 月 24 日 (聞聞這裡!)")
.Replace("Swing of things - Aug 27", "Swing of things - 8 月 27 日 (工作狀態)")
.Replace("Golden planet - Aug ??", "Golden planet - 8 月 ?? 日 (黃金星球)")
.Replace("Shady - Aug 31", "Shady - 8 月 31 日 (陰暗)")
.Replace("Sound behind the wall - Sep 4", "Sound behind the wall - 9 月 4 日 (牆後之聲)")
.Replace("Goodbye - Sep 7", "Goodbye - 9 月 7 日 (再見)")
.Replace("Screams - Sep 13", "Screams - 9 月 13 日 (尖叫)")
.Replace("Nonsense - Sep 27", "Nonsense - 9 月 27 日 (沒道理)")
.Replace("Hiding - Sep 30", "Hiding - 9 月 30 日 (躲藏)")
.Replace("Desmond - Oct 15", "Desmond - 10 月 15 日 (Desmond)");
}
public bool translateDetailMoons(ref string raw)
{
string text = raw;
raw = raw.Replace("Go here to drop off any valuable scrap you've collected while on the job. The rate of return updates hourly and fluctuates over the course of several days.", "你在工作中收集到的所有有價值的廢料都可以在這裡提交。收購價格每天更新。 ").Replace("CONDITIONS: Arid. Low habitability, worsened by industrial artifacts.", "環境:乾燥。低適居性,因工業遺跡而惡化。").Replace("HISTORY: Not discovered for quite some time due to its close orbit around gas giant Big Grin. However it appears to have been used in secret.", "歷史:由於其緊密繞著氣體巨星 Big Grin 運行,所以一段時間內未被發現。然而,它似乎曾被秘密使用。 ")
.Replace("FAUNA: Unknown", "環境:未知")
.Replace("CONDITIONS: Arid. Low habitability, worsened by industrial artifacts.", "環境:乾燥。低適居性,因工業遺跡而惡化。")
.Replace("HISTORY: Not discovered for quite some time due to its close orbit around gas giant Big Grin. However it appears to have been used in secret.", "歷史:由於其緊密繞著氣體巨星 Big Grin 運行,所以一段時間內未被發現。然而,它似乎曾被秘密使用。")
.Replace("CONDITIONS: Similar to its twin moon, 41-Experimentation, featuring far more jagged and weathered terrain.", "環境:與它的雙胞胎星球 41-Experimentation 相似,但具有更加崎嶇和風化的地形。 ")
.Replace("HISTORY: 220-Assurance is far younger than its counterpart. Discovered not long before 41-Experimentation.", "歷史:220-Assurance 比它的對應物要年輕得多。在 41-Experimentation 發現不久前被發現。 ")
.Replace("CONDITIONS: Humid.", "環境:潮濕。 ")
.Replace("HISTORY: Vow appears to have been inhabited by several colonies across its continents, but there is now no sign of life, and they have become a mystery.", "歷史:Vow 似乎曾被幾個殖民地在其大陸上居住,但現在沒有生命跡象,它們已成為一個謎。")
.Replace("FAUNA: Diverse, teeming with plant-life", "生態圈:多樣,植物生長茂盛")
.Replace("CONDITIONS: Believed to have splintered off from its cousin Assurance, Offense features similar jagged and dry conditions but differs in its ecosystem.", "環境:據信從其表親 Assurance 分裂出來,Offense 有著類似的崎嶇乾燥環境,但其生態系統不同。")
.Replace("HISTORY: 21-Offense is categorized as an asteroid moon and seems to have not existed on its own for more than several hundred years. The industrial artifacts here have suffered damage; it's believed they were built long before 21-Offense was splintered off.", "歷史:21-Offense 被分類為小行星星球,似乎在自己的軌道上存在了數百年。這裡的工業遺跡已受到損害;據信這些遺跡在 21-Offense 分裂之前就已建造。 ")
.Replace("FAUNA: A competitive and toughened ecosystem supports aggressive lifeforms. Travellers to 21-Offense should know it's not for the faint of heart.", "一個競爭激烈且經過淬煉的生態系統支持著積極的生命形式。前往 21-Offense 的旅行者應該知道,這裡不適合心臟脆弱的人。 ")
.Replace("CONDITIONS: March undergoes constant drizzling weather. Its terrain is more expansive.", "環境:March 經歷著持續的細雨天氣。其地形更為廣闊。")
.Replace("HISTORY: This moon is overlooked due to its twin moon, Vow.", "歷史:由於其雙胞胎星球 Vow,這個星球被忽視了。")
.Replace("CONDITIONS: Its planet orbits white dwarf star, making for inhospitable, cold conditions. Constant blizzards decrease visibility.", "環境:其行星環繞著白矮星,形成了不適宜居住的寒冷環境。持續的暴風雪降低了能見度。")
.Replace("HISTORY: Several famous travelers went missing here, giving it some reputation. Their bodies are unlikely to be found due to the planet's conditions.", "歷史:幾位著名的旅行者在這裡失蹤,因而使其聲名狼藉。由於行星的環境,他們的遺體不太可能被發現。")
.Replace("FAUNA: It's highly unlikely for complex life to exist here.", "生態圈:在這裡存在複雜生命形式的可能性極低。")
.Replace("CONDITIONS: A frozen, flat landscape.", "環境:一片冰凍、平坦的景觀。 ")
.Replace("HISTORY: It looks like this moon was mined for resources. It's easy to get lost within the giant industrial complex. There are many entrances to it littered about the landscape.", "歷史:看起來這個星球曾被用於資源開採。在巨大的工業複合體內很容易迷路。在景觀中散布著許多入口。")
.Replace("FAUNA: Dangerous entities have been rumored to take residence in the vast network of tunnels.", "生態圈:據傳言,危險的實體可能棲息在廣闊的隧道網路中。 ");
return raw == text;
}
public void translateDetailStore(ref string raw)
{
raw = raw.Replace("Useful for keeping in touch! Hear other players when the wakie talkie is in your inventory. Must be in your hand and pressed down to transmit voice", "保持聯繫的好用工具!當對講機在你的物品欄中時,可以聽到其他玩家的聲音。必須握在手中並按下才能傳送語音。").Replace("The most affordable light source. It's even waterproof", "最便宜的照明工具。它甚至是防水的!").Replace("For self-defense", "用於自我防衛!")
.Replace("Lock-pickers will unlock your limitless potential for efficiency on the job. Powered by proprietary AI software, they will get you access through any locked door", "\n開鎖工具將解鎖你在工作上的無限潛能。搭載專有的人工智慧軟體,它們將幫助你打開任何上鎖的門。\n\n")
.Replace("With an extra battery life and even brighter bulb, your colleagues can never leave you in the dark again", "帶有額外的電池壽命和更亮的燈泡,你的同事再也不會把你留在黑暗中了!")
.Replace("This action was not compatible with this object", "這個動作與該對象不相容")
.Replace("These jamming tunes are great for a morale boost on your crew", "些動感的曲調非常適合提升你的船員們的士氣!")
.Replace("This safe and legal medicine can be administered to see great benefits to your performance on the job! Your ability to move LONG distances while carrying HEFTY objects will be second to none! Warning: TZP gas may impact the brain with extended exposure. Follow instructions manual provided with the canister", "\n這種安全合法的藥物可以服用來顯著提升你在工作上的表現!在搬運沉重物品時,你的長距離移動能力將無人能敵!警告:長時間暴露於 TZP 氣體可能對大腦產生影響。請依照隨罐附帶的使用說明書操作。")
.Replace("Don't forget to share", "別忘了分享!")
.Replace("The most specialized self-protective equipment, capable of sending upwards of 80,000 volts", "最專業的自我防衛裝備,能夠發射高達 80,000 伏特的電擊!")
.Replace("To keep it targeted as long as possible, pull the gun side-to-side to counter the bend and fight against the pull of the electric beam. It can only stun for as long as you keep the current flowing", "為了讓它保持瞄準盡可能長的時間,將槍橫向搖動以抵消彎曲並抵抗電束的拉力。它只能在你保持電流流動的時間內使人暈眩。")
.Replace("This device will get you around anywhere! Just use it responsibly", "這個裝置可以帶你到任何地方!只需負責任地使用它!")
.Replace("The extension ladder can reach as high as nine meters! Use it to scale any cliff and reach for the stars! To save batteries the extension ladder automatically stores itself after 18 seconds", "這個伸縮梯可以達到高達九公尺!用它來攀爬任何懸崖,伸手觸及星星!為了節省電池,伸縮梯在 18 秒後會自動收起。")
.Replace("Radar boosters come with many uses", "雷達增強器有許多用途!")
.Replace("Use the \"SWITCH\" command before the radar booster's name to view it on the main monitor. It must be activated", "在雷達增強器的名稱前使用「SWITCH」指令可以在主顯示器上查看它。必須先啟動它。")
.Replace("Use the \"PING\" command before the radar booster's name to play a special sound from the device.", "在雷達增強器的名稱前使用「PING」指令可以從裝置播放特殊的聲音。")
.Replace("Used to communicate with any crew member from any distance, no walkie talkie required! The horn can be heard from anywhere. But what does it mean? That's up to you", "可用於與任何距離的船員通訊,無需對講機!大喇叭的聲音在任何地方都能聽到。但這意味著什麼?那就由你來決定!")
.Replace("Press the button to activate the teleporter. It will teleport whoever is currently being monitored on the ship's radar. They will not be able to keep any of their held items through the teleport. It takes about ten seconds to recharge.", "按下按鈕以啟動傳送器。它將會傳送目前在船上雷達上被監測到的任何人。他們在傳送過程中將無法保留手中的任何物品。傳送器約需十秒鐘重新充電\n\n")
.Replace("The inverse teleporter is a modified teleporter which will teleport you to a random position outside the ship. All your items will be dropped at the teleporter before transport. The inverse teleporter can be used by everyone at once and has a 3.5 minute cooldown", "逆向傳送器是一種修改過的傳送器,它會將你傳送到船外的隨機位置。所有的物品將在傳送前被放置在傳送器旁。逆向傳送器可以由所有人同時使用,並且有 3.5 分鐘的冷卻時間。")
.Replace("DISCLAIMER: The inverse teleporter can only transport you out, not in, and you may become trapped. The Company is not responsible for injury or replacement of heads and limbs induced by quantum entanglement and bad luck", "免責聲明:逆向傳送器只能將你傳送出去,不能傳送進來,你可能會被困住。公司不對因量子糾纏和運氣不佳而導致的傷害或頭部和肢體的替換負責。");
}
public bool translateDetailBestiary(ref string raw)
{
string text = raw;
raw = raw.Replace("Thumpers\n\n", "Thumpers - 半身怪(車力巨人)\n\n").Replace("Sigurd's danger level: 90%\n\n", "Sigurd 的危險等級: 90%\n\n").Replace("Scientific name: Pistris-saevus", "學名: Pistris-saevus")
.Replace("Halves, or Thumpers, are a highly aggressive, carnivorous species of the order Chondrichthyes. Their skeletons are cartilaginous, giving their bodies a stretchy and rubbery quality. Their name comes from the fact they must eat their bottom legs in order to escape the shell of their hatched egg; their bottom legs are hardly functional to begin with. Their arms, or front legs, are very strong, and they occasionally use them to stomp prey. They can reach great speeds in a straight line", "半身怪,或稱為半身魚,是軟骨魚綱下一種極具攻擊性的肉食性物種。它們的骨骼是軟骨質的,賦予它們伸縮自如且類似橡膠的質地。它們的名稱來自於它們必須吃掉自己的下半部腿部才能逃脫孵化的蛋殼;它們的下半部腿部本來就幾乎無法正常功能。它們的前肢或前腿非常強壯,偶爾用來踏踏獵物。它們能夠在直線上達到極高的速度。")
.Replace("They are relentless hunters, typically at the top of their food chain. Their main weaknesses are their intelligence and complete lack of hearing. If you come across a thumper, your best means of survival are leaving its line of sight, as it is slower around corners and can't easily track prey.", "它們是不知疲倦的獵手,通常位於食物鏈的頂端。它們的主要弱點是智力低下和完全缺乏聽力。如果你遇到跳擊者,生存的最佳方法是離開它的視線,因為它在轉彎時速度較慢,不容易追蹤獵物。 ")
.Replace("Due to the fast and volatile evolution of this species, some theorize that thumpers are one of the examples of an increased number of mutations causing higher levels of speciation in planets around the Thistle Nebula.", "由於這個物種快速且不穩定的進化,一些理論家認為跳擊者是在薊星雲周圍的行星上,突變數量增加導致更高物種分化水平的例子之一。\n\n")
.Replace("HYGRODERE", "HYGRODERE - 史萊姆")
.Replace("Sigurd's danger level: 0%, if you're faster than a snail!", "Sigurd 的危險等級: 0%, 除非你比蝸牛還慢")
.Replace("Scientific name: Hygrodere", "學名: Hygrodere")
.Replace("A eukaryotic organism classified within the paraphyletic group Prostita. With the incredible speed of reproduction, these small organisms can multiply to millions. Hygrodere rarely split apart, instead choosing to form large, viscous masses which can take up large amounts of space and become a danger to deal with, requiring large tools or lures to relocate.", "萊姆是一種歸類於並系群 Prostita 的真核生物。這些小型生物具有驚人的繁殖速度,可以迅速繁殖至數百萬個體。水濕體很少分裂,而是選擇形成大型的黏稠體,這些黏稠體可以佔據大量空間,處理起來相當危險,需要大型工具或誘餌來重新定位。")
.Replace("Hygrodere are drawn to heat and oxygen and can detect it from seemingly anywhere. There's almost nothing organic they can't convert to their own body mass. Nothing has been found to poison them. Constantly replacing themselves, they can persist for hundreds of thousands of years. If you ever find yourself cornered, find a tall object to stand on top of; hygroderes have trouble climbing. they have great taste! cause I made a friend with one somehow,, and we think it was my music.", "史萊姆被熱量和氧氣吸引,似乎可以從幾乎任何地方探測到這些元素。幾乎沒有什麼有機物質它們無法轉化為自己的體質。尚未發現任何對它們有毒的物質。它們不斷地自我更換,可以存活數十萬年。如果你發現自己被困住了,找一個高物品站在上面;水濕體不擅長攀爬。它們品味很好!因為我不知怎的與其中一個成了朋友,我們認為是我的音樂吸引了它。\n")
.Replace("EYELESS DOG", "EYELESS DOG - 無眼犬")
.Replace("Scientific name: Leo caecus", "學名: Leo caecus")
.Replace("A large mammal of the class Saeptivus. They are social, hunting in very large packs. They have also been called \"breathing lions\" for their recognizable sound and large mouths. They are endurance hunters and attempt to make up for their lack of sight with their sense of hearing. It's a popular myth that they often mistake the sounds of their own kind for prey, entering fights within their own packs.", "無眼犬是 Saeptivus 綱的一種大型哺乳動物。它們具有社會性,以非常大的群體進行狩獵。由於它們獨特的聲音和大嘴,它們也被稱為「呼吸的獅子」。它們是耐力型獵手,試圖以聽覺彌補視覺的缺失。流行的迷思是它們經常將自己同類的聲音誤認為獵物,導致在自己的群體內發生爭鬥。 ")
.Replace("Their behaviour is unique from other pack animals in their tendency to spread out far to cover distance. When an eyeless dog has found prey, it roars to alert others in the near vicinity, who will also sound the alarm, sometimes resulting in a kind of chain reaction. Eyeless dogs can be dangerous in swarms. However, they are characteristically clumsy, taking guesses at their prey's exact location which are often incorrect.", "無眼犬的行為與其他群居動物不同,它們傾向於分散開來覆蓋更大的距離。當無眼犬發現獵物時,它會吼叫以警告附近的其他同類,這些同類也會發出警報,有時會導致一種連鎖反應。無眼犬在成群時可能非常危險。然而,它們在性格上笨拙,對獵物確切位置的猜測往往不準確。\n\n")
.Replace("Manticoils\n\n", "Manticoils - 四翼鳥\n\n")
.Replace("Sigurd's danger level: 0%\n\n", "Sigurd 的危險等級: 0%\n\n")
.Replace("Scientific name: Quadrupes-manta", "學名: Quadrupes-manta")
.Replace("Mantacoils are a passerine bird of the family corvidae. Their bodies are quite large compared to their early descendants, and their wingspan ranges from 55 to 64 inches. Their most defining characteristic is their set of four wings. Their back wings are mostly used to stabilize when at low speed, while their front two wings create the majority of lift. Their round bodies are a striking yellow but with black outlines or stripes along their primary (rear) feathers.", "四翼鳥是鴉科的一種雀形目鳥類。它們的體型相比早期的祖先來說相當大,翅膀展開範圍在 55 至 64 英寸之間。它們最明顯的特徵是擁有四片翅膀。它們的後翅主要用於低速時的穩定,而前兩翅則產生大部分的升力。它們圓滾滾的身體呈醒目的黃色,但主要 (後部) 羽毛上有黑色輪廓或條紋。")
.Replace("Manticoils mostly feed on small insects but can also feed on small rodents. They are highly intelligent and social. They pose little threat and have a generally passive temperament towards humans, although they are capable of transmitting Rabies, Rubenchloria, and Pitt Virus.", "四翼鳥主要以小昆蟲為食,但也會捕食小型齧齒動物。它們非常聰明且社會性強。它們對人類構成的威脅很小,通常性情溫和,儘管它們有傳播狂犬病、Rubenchloria 和 Pitt 病毒的能力。 ")
.Replace("Spore lizard\n\n", "Spore lizard - 袍子蜥蜴\n\n")
.Replace("Sigurd's danger level: i ,dont know probably 5% i just hate this pudgy legged little sh it", "Sigurd 的危險等級: 老實說,我不太知道,大概 5% 左右吧。 我就恨這個短腿胖乎乎的小東西")
.Replace("Scientific name: Lacerta-glomerorum", "學名: Lacerta-glomerorum")
.Replace("Colloquially named puffers or spore lizards, Lacerta-glomerorum (of the family Alligatoridae) is one of the largest and heaviest reptiles. Despite their large mouths, they are herbivores and do not have a strong bite. The bulbs on their tails are believed to secrete a chemical which attracts and accelerates the growth of the fungus species Lycoperdon perlatum, which it can then shake to release spores as a defense mechanism--an unique example of a mutualistic symbiotic relationship.", "俗稱氣囊蜥或孢子蜥蜴,Lacerta-glomerorum (鱷科家族) 是最大和最重的爬行動物之一。儘管它們有大嘴巴,但它們是草食性的,咬合力不強。據信它們尾巴上的球莖能分泌一種化學物質,吸引並加速真菌類 Lycoperdon perlatum 的生長,然後它們可以搖動以釋放孢子作為防禦機制——這是一個互利共生關係的獨特例子。")
.Replace("Spore lizards have a very timid temperment, tending to avoid all confrontation if possible. If their attempts at threat display are not effective, they may attempt to attack, so it's not recommended to corner or chase one. There are historical records that spore lizards were at least partially domesticated hundreds of years ago, however this effort was set aside by an initiative to harvest their tails for their medicinal properties.", "孢子蜥蜴性情非常膽小,盡可能避免所有對抗。如果它們的威脅展示不起作用,它們可能會試圖攻擊,所以不建議將它們逼入角落或追逐。有歷史記錄顯示,數百年前孢子蜥蜴至少部分被馴化,但這項努力被擱置,因為有一項倡議要收集它們的尾巴以用於其藥用特性。\n\n")
.Replace("Bracken -- AKA flower man!", "Bracken - 花人布拉肯,俗稱 花男")
.Replace("it was flower man, you can't say othrwise! i wanted to find his body .You were the cowards", "它就是花人,別的說法都不成立!我想找到它的屍體。你們都是懦夫。")
.Replace("Scientific name: Rapax-folium", "學名: Rapax-folium")
.Replace("There is debate on the genus to which the Bracken belongs. It is a bipedal vertebrate with skin the color and texture of a red beat. The name was coined for what appear to be leaves protruding from its upper spine. The purpose of these is believed to be for intimidation, however not much is known about the specifics of bracken behaviour due to its illusiveness and low population.", "布拉肯屬於哪個屬仍有爭議。它是一種雙足脊椎動物,皮膚呈現紅色甜菜的顏色和質地。這個名稱是因為看起來像葉子從其上脊椎突出。這些葉子被認為是用來威嚇的,然而由於其神秘性和稀少的族群,關於布拉肯行為的具體細節仍不為人所知。 ")
.Replace("We know a little from accounts by wildlife experts who have encountered it. is a lone hunter with high intelligence. Its behavior can seem aloof; it exhibits high aggression even when unprovoked, yet it quickly backs off when confronted. However, brackens are known to up their hostility when cornered or simply watched for a long time. For this reason it's recommended to keep an eye on it but not to stare it down. No specimens have been collected dead or alive. It's theorized that upon death their bodies undergo a rapid decomposition process which is unique from other large animals.", "我們從野生動物專家的描述中了解到一些資訊。它是一個孤獨的獵手,智力高。它的行為看起來有些疏離;即使未受挑釁,它也表現出高度的侵略性,但面對對抗時卻迅速退縮。然而,當布拉肯被逼入絕境或被長時間觀察時,它們會增加敵意。因此,建議留意它,但不要盯著它。未曾收集到任何活體或死亡標本。有理論推測,它們死亡後的身體會經歷一個與其他大型動物不同的快速分解過程。 ")
.Replace("Circuit Bees\n\n", "Circuit Bees - 電路蜜蜂\n\n")
.Replace("Sigurd's danger level: 90%\n\n", "Sigurd 的危險等級: 90%\n\n")
.Replace("Scientific name: Crabro-coruscus", "學名: Crabro-coruscus")
.Replace("The circuit bee, also known as red bee, is a eusocial flying insect of the genus Apis, a descendent of the honey bee. Their appearance is quite recognizable from their hairy, red bodies and two sets of wings. Like their ancestors, they are well-known for their intelligent social BEEhavior, large colony size, building wax nests which they use to store honey, and their important role in pollination. Unlike the honey bee, which often chose high places such as trees to construct its hive, red bees create their hives on the ground.", "電路蜜蜂,又稱紅蜜蜂,是一種屬於蜜蜂屬的社會性飛行昆蟲,是蜜蜂的後代。它們的外觀因其毛茸茸的紅色身體和兩對翅膀而相當顯眼。像它們的祖先一樣,它們以智慧的社會行為、大型蜂群、建造用來儲存蜂蜜的蠟巢以及在授粉中的重要角色而聞名。與常選擇高處如樹木來建造蜂巢的蜜蜂不同,紅蜜蜂在地面上建造它們的蜂巢。")
.Replace("Red bees are highly defensive. They will leave the nest to attack any creature that comes within several meters, leaving BEEhind only the queen and drone bees. This bold BEEhavior is enabled by their most defining aBEElity, which is their electrostatic charge. Red bees produce friction with the air. They also produce friction by rubbing their two pairs of wings against each other and by rubbing against one another while in the hive. What allows them to create such a surplus of electric field compared to the honey bee is still under research, as they generate a stronger electric field when panicked or angered. This ability is especially useful for them around water.", "最好保持距離。如果一個紅蜜蜂蜂巢被盜,紅蜜蜂群將發動攻擊,攻擊任何生物。這種破壞性的行為將持續到它們找到蜂巢或完全筋疲力盡,這可能需要幾小時到幾天。")
.Replace("It's BEEst to keep your distance. If a red bee hive is stolen, red bee swarms will enter an onslaught in which they attack any living creature. This destructive BEEhavior will last until they have located the hive or completely exhausted themselves, which can take hours to days. They have BEEn known to leave BEEhind fields of bodies of small rodents, insects and even some larger mammals, and in rare cases they can start fires. Their strong BEEnefits and drawbacks to their ecosystems are highly debated. BEEbated !! - the indomitable Sigurd", "它們已知會留下一片小型哺乳動物、昆蟲甚至一些大型哺乳動物的屍體,並在罕見情況下甚至會引起火災。它們對生態系統的強大利益和劣勢受到了激烈的爭議。BEEbated !! - 不屈不饒的 Sigurd\n\n")
.Replace("Baboon hawk\n\n", "Baboon hawk - 狒狒應\n\n")
.Replace("Sigurd's danger level: 75%", "Sigurd 的危險等級: 75%")
.Replace("Scientific name: Papio-volturius", "學名: Papio - volturius")
.Replace("Baboon hawks are a primate of the family Cercopithecidae. They are hunchbacked but can stand up to 8 feet on average. Their heads are boney, with bird-like beaks and long horns, which they use like skewers to gore and feed on prey. Their horns are made of keratin instead of bone like the rest of their skulls, and they do not contain nerves or blood vessels. As a result baboon hawks can often break their horns from the force they apply, then fully regrow them within the same season. Baboon hawks partly owe their name to their large wings, which could never carry their large body mass and are used instead for intimidation and protection from the elements.", "狒狒鷹是一種靈長類動物,屬於鼬科(Cercopithecidae)。它們呈駝背狀,但平均身高可達 2.5 米左右。它們的頭是骨質的,長有喙和長角,它們用這些角像串一樣刺穿獵物並取食。它們的角由角蛋白組成,與頭骨的其他部分不同,不含神經或血管。因此,狒狒鷹經常會因外力而折斷角,然後在同一季節完全修復。狒狒鷹之所以被稱為 \"狒狒鷹\",部分原因是它們的翅膀很大,但由於它們的體型龐大,翅膀永遠也帶不走它們,而是用來恐嚇和抵禦自然環境。")
.Replace("The largest baboon hawk troop ever observed was made up of 18 baboon hawks. They are loosely territorial, and much of their behavior is motivated by intimidation and display. They can become collectors, using any flashy or colorful object to mark their territory. As lone scouts, baboon hawks are generally timid and won't attack unless provoked. In greater numbers they can become a great danger; sticking close to others and making yourself seem dangerous are the best ways to prevent an attack. They prefer smaller mammals, but when desperate they are known to use their numbers to attack animals even twice their size, such as eyeless dogs. THEY TOOK M Y PICKLES", "觀察到的最大的狒狒鷹群有 18 隻。狒狒鷹的領地意識很弱,它們的大部分行為都是出於恐嚇和炫耀。它們可能會成為收集者,利用任何顯眼或色彩鮮艷的物體來標記自己的領地。作為單獨的偵察兵,狒狒鷹通常比較膽小,除非受到挑釁,否則不會發動攻擊。如果數量眾多,它們可能會非常危險。與其他狒狒鷹保持距離並給它們留下危險的印象是防止它們攻擊的最好辦法。它們喜歡小型哺乳動物,但如果走投無路,它們甚至會攻擊比自己大一倍的動物,例如盲狗。它們搶走了我的黃瓜")
.Replace("FOREST KEEPER", "FOREST KEEPER - 森林守護者(巨人)")
.Replace("Sigurd's danger level: 50%", "Sigurd 的危險等級: 50%")
.Replace("Scientific name: Satyrid-proceritas", "學名: Satyrid-proceritas")
.Replace("Believed to share a common ancestor with rapax-folium, these behemoths are called Forest Keepers for the biomes they often inhabit. Their bodies bare markings on their front and back which mimic eyes--this trait is more helpful in their youth, as they are not agile. Their skin is a unique, dense material which hardens further throughout their lives; the large spikes and bumps across their bodies form as a result of aging.", "據信與 rapax-folium 有共同的祖先,這些巨獸被稱為森林守護者,因為它們經常棲息在這些生物群落中。它們的身體前後都有模仿眼睛的標記——這個特徵在它們年輕時更有幫助,因為它們並不靈活。它們的皮膚是一種獨特的密集材料,隨著年齡的增長而進一步硬化;身體上的大刺和凸起是隨著年齡增長而形成的。")
.Replace("It's been said Forest Keepers exhibit a curious behavior similar to that of a human child the age of 5 or 6. They will eat anything they find fascinating. Forest Keepers don't actually need to put anything into their mouths, and it's theorized their main source of energy is a process similar to photosynthesis. Still, this makes them relatively dangerous to observe. They can see across long distances, so staying low and making use of cover is a must. They cannot enter small spaces and are not generally destructive, so stay close to shelter or overhangs.", "據說森林守護者展現出類似於 5 或 6 歲人類孩童的好奇行為。它們會吃掉任何它們覺得有趣的東西。森林守護者實際上不需要將任何東西放入嘴中,據推測它們的主要能量來源是類似於光合作用的過程。儘管如此,這使得它們觀察起來相對危險。它們能夠在遠距離看見,因此保持低姿態並利用掩護是必須的。它們不能進入狹小的空間,通常不具破壞性,所以應靠近遮蔽處或懸崖邊。\n\n")
.Replace("Roaming Locusts\n\n", "Roaming Locusts - 漫遊蝗蟲а\n\n")
.Replace("Sigurd's danger level: 0%", "Sigurd 的危險等級: 0%")
.Replace("Scientific name: Anacridium-vega", "學名: Anacridium-vega")
.Replace("Known as roaming locusts, this is a species of grasshopper. Unlike some species which are more prone to jump or fly, roaming locusts are almost never grounded and stay close together even when in smaller numbers. They will quickly disperse when a predator disrupts them but are highly attracted to light.", "被稱為漫遊蝗蟲,這是一種蝗蟲。與一些更容易跳躍或飛行的物種不同,漫遊蝗蟲幾乎從不停留在地面上,即使在數量較少時也會緊密聚集在一起。當遭到掠食者干擾時,它們會迅速散開,但對光非常敏感。")
.Replace("SNARE FLEA", "SNARE FLEA - 陷阱跳蚤(抱臉蟲)")
.Replace("Sigurd's danger level: 30%", "Sigurd 的危險等級: 30%")
.Replace("Scientific name: Dolus-scolopendra.", "學名: Dolus-scolopendra. ")
.Replace("A very large arthropod of the class chilopoda. Its body produces a silk which it primarily uses to propel itself to places where it is concealed. Its exoskeleton is somewhat fragile, and they can die from long falls. The snare flea does not produce venom, nor does it have a strong bite. It makes up for this weakness with its ability to tighten itself around large prey to suffocate.", "這是一種非常大型的節肢動物,屬於多足綱。其身體產生絲線,主要用來推進自己到隱蔽的地方。它的外骨骼相對脆弱,並且可能因長距離跌落而死亡。捕獲跳蚤不產生毒液,也沒有強力的咬合力。它透過緊緊纏繞大型獵物來窒息,以彌補這一弱點。")
.Replace("The snare flea thrives in dark, warm areas. It cannot survive low temperatures and generally avoids open air and sunlight take the rats outside or just beat the hell otu of them! i think their insides could make a good milkshake,,", "捕獲跳蚤在黑暗、溫暖的地區繁盛。它無法在低溫下生存,並且通常避免開放空氣和陽光。把老鼠帶到外面或者徹底打敗它們!我想它們的內部可能做成奶昔味道不錯。")
.Replace("EARTH LEVIATHAN", "EARTH LEVIATHAN - 大地利維坦")
.Replace("Sigurd's danger level: 2% cause they can't hide from the ship cmaeras!!", "Sigurd 的危險等級: 2%, 因為你可以透過飛船監視器看到他們!! ")
.Replace("Scientific name: Hemibdella-gigantis", "學名: Hemibdella-gigantis")
.Replace("The reverently named Earth Leviathan, of the family Piscicolidae, is one of the largest invertibrates found around the Thistle Nebula. None have been captured, so not much is known of their biology.", "被尊敬地命名為大地利維坦,屬於 Piscicolidae 家族,是在薊星雲周圍發現的最大的無脊椎動物之一。由於沒有被捕獲過,因此對它們的生物學知之甚少。")
.Replace("They seem to behave as predators. It's speculated they can burrow as far as 40 meters underground, judging by the incredible excavations they can leave behind. They can detect even the slightest vibrations, and for this reason it's not recommended to stay still if they are nearby; that is a myth. Instead, if you hear them burrowing, retrace your steps.", "它們似乎表現為掠食者。根據它們留下的驚人挖掘痕跡來看,推測它們可以挖掘至地下 40 米深。它們甚至能察覺到最微小的震動,因此當它們在附近時,建議不要靜止不動;這是一個迷思。相反,如果你聽到它們在挖掘,應該回頭走。\n\n")
.Replace("Bunker spiders\n\n", "Bunker spiders - \n\n")
.Replace("Sigurd's danger level: 20%", "Sigurd 的危險等級: 20%")
.Replace("Scientific name: Mutinum-ficedula", "學名: Mutinum-ficedula")
.Replace("Bunker spiders, of the genus Theraphosa, are the largest arachnid found in the Thistle Nebula and the second largest ever discovered. It's believed they evolved to prey on large mammals over the course of a measly several hundred years after the Boat made its trip around the Thistle Nebula.", "碉堡蜘蛛,屬於 Theraphosa 屬,是在薊星雲中發現的最大的蛛形動物,也是迄今為止發現的第二大蛛形動物。據信,在「小船」繞行薊星雲數百年後,它們進化成了以大型哺乳動物為獵物。 ")
.Replace("(Refer to: Speculation on Increased Speciation Around the Fading Nebulae)", "(參見:關於逐漸消逝的星雲周圍物種增多的推測)")
.Replace("Bunker spiders produce silk and lay it around their chosen nesting area, then wait for it to be tripped on. They can be seen waiting on walls, often over doorways where prey could enter unaware. If you find a bunker spider 'unprepared' it may freeze as a defensive reaction. In this case they are best left alone. If a bunker spider reacts aggressively, it is best not to fight with ordinary tools. They use their webs to make up for their rather slow movement, so take note of your surroundings. Their webs can be broken easily with any blunt tool.", "碉堡蜘蛛會製造絲線,在它們選擇的築巢區域周圍鋪設,然後等待被觸發。它們常可在牆上看到,經常出現在門道上方,獵物可能在不知情的情況下進入。如果你發現一隻「毫無準備」的碉堡蜘蛛,它可能會作為防禦反應而凍僵。在這種情況下,最好不要去打擾它們。如果碉堡蜘蛛表現出攻擊性,最好不要用普通工具與之對抗。它們利用蜘蛛網來彌補它們相對緩慢的移動速度,所以要注意你的周圍環境。它們的網可以用任何鈍器輕易地打破。")
.Replace("Bunker spiders can pose a great danger to humans and urban explorers especially, without a great benefit to their ecosystems. A resulting kill-on-sight order has been informally agreed upon between many states home to the Bunker spider, and it is currently approved by the ITDA as of 10/6/1965.", "碉堡蜘蛛對人類和城市探險者尤其構成巨大威脅,而對生態系統並無太大益處。許多有碉堡蜘蛛出沒的州之間非正式地達成了即見即殺的協議,目前已於2497年10月6日獲得國際貿易發展協會 (ITDA) 的批准。\n\n")
.Replace("JESTER", "JESTER - 小丑盒")
.Replace("Sigurd's danger level: 90% Get out o fthere before it goes APE!! You cant hide from it, just evacuate", "Sigurd 的危險等級: 90% ,趁現在還來得及,趕緊離開那裡!你躲不過他的,趕緊撤離。")
.Replace("Scientific name: INSANEUS THINGUS", "學名: INSANEUS THINGUS")
.Replace("THERE'S NO FREAKING SCIENTIFIC RECORD! good luck, you know as much as us. we just call it the jester", "根本沒有任何科學記錄!祝你好運,你知道的和我們一樣多。我們只是稱它為小丑。\n\n");
return raw == text;
}
public bool translateDetailSigurd(ref string raw)
{
string text = raw;
raw = raw.Replace("First Log - Aug 22", "第一記錄 - 8月22日").Replace("Date: August 22, 1968", "日期:1968年8月22日\n").Replace("Hello. i am writing this log to keep myself sane. I couldnt find a way to do the most basic thing on this old janky butt computer so I had Desmond add it in, the log feature. til now ive just been adding my own notes to the bestiary whatever i know. My brother said i should keep a journal so im doing what i can! I am writing in a proffessional manner, as these logs could become a historical record, as they will projbably be here for years, just as long as there isnt a clean wipe. that is what desmond saidfd", "你好。我寫這個日誌是為了保持理智。我找不到在這台舊電腦上做最基本的事情的方法,所以我讓Desmond加入了日誌功能。直到現在,我一直在添加我所知道的到野獸志中的我的個人筆記。我的哥哥說我應該保持一個日記,所以我在做我能做的!我以專業的方式寫作,因為這些日誌可能成為歷史記錄,它們可能會在這裡待上多年,只要沒有完全清除。這就是Desmond所說的")
.Replace("If you are reading it in the future, you are probably from a nother crew. The turnover rate here is enormous, maybe cause this job sucks and every one turns over dead! Maybe I can give some help when I have some expirience. End log", "如果你在未來讀到它,你可能來自另一個隊伍。這裡的人員流動率非常大,也許是因為這份工作很糟糕,每個人都會死去!也許當我有一些經驗時,我可以提供一些幫助。日誌結束")
.Replace("Oh, our names are: Sigurd (me), Richard, Desmond, Jess.", "哦,我們的名字是:Sigurd(我)、Richard、Desmond、Jess。")
.Replace("Smells here! - Aug 24", "這裡很臭!- 8月24日")
.Replace("gosh, this suit is squeezing me like I'm a gosh damn mummy! im a grown man, give it some space between the legs! it's killing me i'm dying! i hope youre happy dad, I FINALLY got a job. screw you! Everyone here smells. especially Rich. I'm going to throw him in the lake. I don't care what it's made of. i love being on camera duty. oh", "天啊,這套衣服把我擠得像一個該死的木乃伊!我是一個成年人,給它一些腿之間的空間!這讓我難受得快要死了!我希望你高興爸爸,我終於找到了工作。去你的!這裡的每個人都很臭。特別是Rich。我要把他扔進湖裡。我不在乎它是用什麼做的。我喜歡值班拍攝。哦")
.Replace("i forgot the date it's August 24, 1968. this keyboard has dsadjilfasqt..f/g;", "我忘了日期是1968年8月24日。這個鍵盤有dsadjilfasqt..f/g;")
.Replace("today we found a couple frying pans and a big nail. Worth almost nothing. what is the company even using it for", "今天我們找到了一對鍋子和一根大釘子。幾乎一文不值。公司究竟用它來做什麼")
.Replace("SWING OF THINGS - AUG 27", "適應情況 - 8月27日")
.Replace("we got in the \"swing of things\" the past few days. thats what Rich keeps saying, he smells like a rancid tuna can. worst summer camp I've ever been o n. Date is August 27, 1968", "過去幾天我們開始適應了。這是Rich一直在說的,他聞起來像一罐腐敗的鮪魚。我去過的最糟糕的夏令營。日期是1968年8月27日")
.Replace("Golden planet - Август ??", "金星 - 8月??")
.Replace("Shady - Aug 31", "可疑 - 8月31日")
.Replace("date is August 31, 1968. i got camera duty again, i hate walking on this moon anyway. ahah jokes on them it, just started raining!!! Im just sitting. cant sleep on these tiny beds for ants", "日期是1968年8月31日。我又值班拍攝了,無論如何我討厭在這個月球上行走。啊哈,笑話在他們身上,剛開始下雨了!!!我只是坐著。無法在這些螞蟻的小床上睡覺")
.Replace("Ive been thinking a lot. i think this job is shady. If youre reading this you probbably got here the same as me. the pay is good, the contract only lasts a season. they ran you through their \"assessmennt exam\" on the phone with a weird voice. you signed the contract on the shuttle with the rest of your crew. But the whole time you didnt talk to anyone. The shuttle was autopiloted, I think the voice on the phone was fake. I;ve had the wrost dreams, I think I just want to go back home. but im not gonna crawl home, crying and scratching on dad's front door. thats not his son. thats not Sigurd!", "我一直在思考很多事情。我認為這份工作很可疑。如果你正在讀這個,你可能和我一樣到這裡來了。薪水很好,契約只持續一個季節。他們用電話上的奇怪聲音讓你通過他們的「評估考試」。你和其他船員一起在太空梭上簽了契約。但是在整個過程中你沒有和任何人交談。太空梭是自動駕駛的,我認為電話中的聲音是假的。我做了最糟糕的夢,我想我只是想回家。但我不會爬回家,哭泣和在爸爸的前門上抓撓。那不是他的兒子。那不是Sigurd!")
.Replace("Sound behind the wall - Sep 4", "牆後的聲音 - 9月4日")
.Replace("date: Septermber 4, 1968", "日期:1968年9月4日")
.Replace("i got woken up early this morning because we were going to the company building to sell our useless garbage. The rate was 120% which Desmond says is rare and he didnt want to miss it, hes been watching it like the stupid stocks", "今天早上我早早被叫醒,因為我們要去公司大樓賣掉我們的無用垃圾。利率達到了120%,Desmond說這很罕見,他不想錯過,一直像看傻瓜股票一樣關注著它")
.Replace("it still sucks here, Rich still smells like a piece of hsit .i can barely sleep. i heard the wrorst sound behind the wall of the company building, it sounded like crying red faces all churned up and swept away by concrete, like the pestle and bowl my mom crushes up her seeds and spices in. i still hear it. Its a nightmare. no one else heard it. they dont know what to do. Jess thinks i;m \"home sick,\" no im sick of this cheap suit", "這裡仍然很糟糕,Rich仍然聞起來像一塊屎,我幾乎無法入睡。我聽到了公司大樓牆後面最糟糕的聲音,聽起來像是紅色的臉被混合在一起,然後被混凝土沖走,就像我媽媽用來磨碎她的種子和香料的杵和碗一樣。我還能聽到。這是一個噩夢。沒有人聽到它。他們不知道該怎麼辦。Jess認為我「想家了」,不,我是受夠了這件廉價西裝")
.Replace("Goodbye - Sep 7", "再見 - 9月7日")
.Replace("we left behiind Rich. we just had one room to check and then we could be done for the day, i couldnt get the door open. And then i looked and Rich wasnt there. It was the fucking wrinkly skin flower head man that walks on two legs! it turned his neck. i heard the crack but he wasnt there. I wanted to find Rich even if he was dead, but they are cowards! their faces are blank like idiots, theres nothing moving in their stupid skulls, all they wanted to do is leave. they were going to leave me too. we all hated Rich but we didnt want this. this isnt worth it, its just not worth it. we got a pair of scissors, a box full of stamps and a bundle of cords to sell for nothing. its not wort h it, what does the company even want it for?", "我們把Rich丟在了後面。我們只剩下一間房要檢查,然後就可以休息了,但我打不開門。然後我看了看,Rich不見了。那是那個他媽的有皺皮的花頭人,走在兩條腿上!他扭轉了脖子。我聽到了嘎吱聲,但他不見了。我想找到Rich,即使他已經死了,但他們都是懦夫!他們的臉像白痴一樣茫然無措,他們愚蠢的腦袋裡什麼都不動,他們只想離開。他們也要拋棄我。我們都討厭Rich,但我們不想這樣。這不值得,真的不值得。我們得到了一把剪刀,一盒郵票和一捆電線,卻一文不值。不值得,公司到底想要它幹什麼?")
.Replace("the date we last saw Rich is September 7, 1968", "我們最後見到Rich的日期是1968年9月7日")
.Replace("Screams - Sep 13", "尖叫聲 - 9月13日")
.Replace("date: September 13, 1968", "日期:1968年9月13日")
.Replace("date: September 18, 1968", "日期:1968年9月18日")
.Replace("for some reason i was the one who had to call the company number to report the acciddent. they were too scared to do it. It was the same fake voice i remember from the interview on the phone at home and the stupid training videos. but it heard what i said i think, cause it said they would contact the family and find a replacement and something e lse. It talked so fast", "由於某種原因,我是唯一一個不得不打電話給公司報告事故的人。他們太害怕了。那是我從家裡電話面試和愚蠢的培訓影片中記得的那個假聲音。但我想它聽到了我的話,因為它說他們會聯繫家人並找到替代品還有其他什麼。它說話很快")
.Replace("I learned you can hear the screams all the time in the walkie talkie when you;re at the wall of the Company building. they didnt believe me, well now they do. It sounds just like when i heard it a couple weeks ago. They want to quit. I said I'm not a coward. I just got this job", "我了解到,當你在公司大樓的牆邊時,你隨時可以聽到對講機裡的尖叫聲。他們不相信我,現在他們相信了。聽起來就像幾週前我聽到的一樣。他們想辭職。我說我不是懦夫。我剛剛得到這份工作")
.Replace("Idea - Sep 19", "想法 - 9月19日")
.Replace("date: September 19, 1968", "日期:1968年9月19日")
.Replace("the past weekend it feels like Desmond and Jess woke up. we;re supposed to get our fourth member of the crew in a few days. We arent taking any risks anymore, we dont get as much but it feels safer, and ive gotten better sleep. but its still ass. i can still smell Rich i swear to gosh he smelled that bad", "上個週末感覺像是Desmond和Jess醒了過來。我們應該在幾天內得到我們的第四名機組成員。我們不再冒險,我們得到的不多,但感覺更安全,我睡得更好。但仍然很糟糕。我仍然能聞到Rich,我發誓他那麼臭")
.Replace("i was talking about how the voice on the phone sounded fake. Then Desmond got this weird idea. he's the wizard and all so he thinks theres a way to use the phone call i made to the company number to find ourt where the voice comes from. i dont know why hed want to do that but he seems serious. He;s been using the terminal a lot.", "我在談論電話裡的聲音聽起來假。然後Desmond有了這個奇怪的想法。他是個巫師,所以他認為有辦法使用我打給公司號碼的電話來找出聲音的來源。我不知道他為什麼要這麼做,但他看起來很認真。他一直在頻繁使用終端")
.Replace("Nonsense - Sep 27", "胡言亂語 - 9月27日")
.Replace("September 27, 1968", "日期:1968年9月27日")
.Replace("Hiding - Sep 30", "躲藏 - 9月30日")
.Replace("September 30, 1968", "日期:1968年9月30日")
.Replace("i keep having bad dreams about the Company building where the Company breaks out of that giant concrete wall. But i dont know if it looks like anything, i just think its really big and fast. We cant figure out a way to know if the voices on the phone are real, desmond says its too far away. i asked him if he could ttake control of the autopilot and he said im crazy and that could kill us. yes i am crazy desmond", "我一直做關於公司大樓的噩夢,公司從巨大的混凝土牆中逃脫。但我不知道它是否看起來像什麼,我只是覺得它真的很大,很快。我們無法找出電話中的聲音是否真實,Desmond說太遠了。我問他是否可以控制自動駕駛,他說我瘋了,那可能會殺死我們。是的,我瘋了Desmond")
.Replace("he says we would have to get our own private flight to go to the cordinates, and who knows what would actually be there. So, what if its nothing?", "他說我們需要自己乘私人飛機去坐標,誰知道那裡實際上會有什麼。那麼,如果什麼都沒有呢?")
.Replace("i started wondering how i cant remember how we really got here, no I just remember little things like the shuttle flight to the building where we signed our contracts. But i dont remember getting on the shuttle, i dont even remember saying bye to dad. in my dreams it feels like the company isnt trapped in there at all, its just hiding. I dont know if im going home", "我開始想知道為什麼我不記得我們是如何到這裡來的,我只記得一些小事情,比如乘坐穿梭飛行到我們簽契約的大樓。但我不記得上穿梭飛行,我甚至不記得和爸爸說再見。在我的夢中,感覺像公司根本沒有被困在那裡,它只是在躲藏。我不知道我是否回家")
.Replace("Desmond - Oct 15", "Desmond - 10月15日");
return raw == text;
}
public void translateMisc(ref string raw)
{
raw = raw.Replace("You selected the Challenge Moon save file. You can't route to another moon during the challenge.", "你選擇了挑戰星球的存檔。在挑戰期間不能將自動駕駛設定到另一個星球。\n\n").Replace("Do you want to route the autopilot to the Company building?", "你想將自動駕駛設定到公司大樓嗎?").Replace("Returned the item from storage!", "從儲存中取回物品!\n\n")
.Replace("You have requested to order the survival kit:", "你已請求訂購生存套件:")
.Replace("There was no action supplied with the word.", "該命令沒有附帶任何動作。")
.Replace("You could not afford these items", "你負擔不起這些物品")
.Replace("Cancelled order", "取消訂單")
.Replace("You have cancelled the order", "你已取消訂單")
.Replace("No data collected on wildlife. Scans are required", "未收集到野生動植物的數據。需要掃描")
.Replace("There was no object supplied with the action, or your word was typed incorrectly or does not exist", "該動作未提供物品,或你輸入的單字不正確或不存在")
.Replace("Unable to route the ship currently. It must be in orbit around a moon to route the autopilot", "目前無法為飛船設定路徑。必須在星球軌道上才能設定自動駕駛")
.Replace("Use the main lever at the front desk to enter orbit", "使用前台的主槓桿進入軌道")
.Replace("Please enjoy your flight", "祝你飛行愉快")
.Replace("Please CONFIRM or DENY", "請輸入「確認(CONFIRM)」或「取消(DENY)」")
.Replace("Good luck", "祝你好運")
.Replace("eclipsed", "日蝕")
.Replace("flooded", "洪水")
.Replace("stormy", "暴風雨")
.Replace("foggy", "大霧")
.Replace("rainy", "下雨")
.Replace("mild weather", "天氣溫和")
.Replace("DATA CORRUPTED OR OVERWRITTEN", "數據損壞或被覆寫")
.Replace("Toggling radar cam", "切換雷達攝影機")
.Replace("Switched radar to player", "將雷達切換到玩家")
.Replace("Pinged radar booster", "發送雷達增強器請求")
.Replace("Our contractors enjoy fast, free shipping while on the job! Any purchased items will arrive hourly at your approximate location", "我們的合作夥伴在工作時享受快速免費送貨!任何購買的物品將按小時送達你的大致位置")
.Replace("Hold the cord to activate the loud horn", "握住繩子以啟動大聲的喇叭")
.Replace("Press the button to activate the teleporter. It will teleport whoever is currently being monitored on the ship's radar. You will not be able to keep any of your held items through the teleport. It takes about 10 seconds to recharge", "按下按鈕啟動傳送器。它將傳送當前在飛船雷達上被監控的任何人。你將無法在傳送過程中保留任何持有的物品。大約需要10秒鐘重新充電")
.Replace("Press the button and step onto the inverse teleporter while it activates", "在啟動時按下按鈕並踏上反向傳送器")
.Replace("Use the light switch to enable cozy lights", "使用開關開啟舒適的燈光")
.Replace("Press [B] to rearrange objects in your ship and [V] to confirm.", "按 [B] 重新排列飛船中的物品,按 [V] 進行確認。\n\n")
.Replace("This has already been unlocked for your ship!", "這已為你的飛船解鎖!\n\n")
.Replace("* Walkie-talkies", "* 對講機")
.Replace("* Flashlights", "* 手電筒")
.Replace("* Shovel", "* 鏟子")
.Replace("The delivery vehicle cannot hold more than 12 items", "運輸飛船一次最多只能攜帶12件物品。")
.Replace("at a time. Please pick up your items when they land", "請在物品降落時取回。");
List<object> list = new List<object>
{
new
{
pattern = "Ordered (\\d+) (.+)\\. Your new balance is \\$(\\d+)\\.",
zh = "你訂購了 {1}。數量:{0}。你的新餘額是 $ {2} 。"
},
new
{
pattern = "You have requested to order (.+)\\. Amount: (\\d+)\\.",
zh = "你要求訂購 {0} 數量:{1}。"
},
new
{
pattern = "You have requested to order the (.+) ship upgrade\\.",
zh = "你要求飛船升級:{0}。"
},
new
{
pattern = "You have requested to order a (.+)\\.",
zh = "你要求飛船升級:{0}。"
},
new
{
pattern = "You have requested to order the (.+)\\.",
zh = "你要求訂購:{0}。"
},
new
{
pattern = "You have requested to order (.+)\\.",
zh = "你要求訂購:{0}。"
},
new
{
pattern = "Amount: (\\d+)\\.",
zh = "數量:{0}。"
},
new
{
pattern = "Total cost of items: \\$(\\d+)\\.",
zh = "這些物品的總成本:$ {0}。"
},
new
{
pattern = "Total cost of item: \\$(\\d+)\\.",
zh = "該物品的總成本:$ {0}。"
},
new
{
pattern = "Your balance is \\$(\\d+)\\. Total cost of these items is \\$(\\d+)",
zh = "你的餘額為 $ {0}。這些物品的總成本為 $ {1}"
},
new
{
pattern = "There are ([0-9]+) objects outside the ship, totalling at an exact value of (\\\\$[0-9]+)",
zh = "船外有 $1 個廢料,總價值為 $2。"
},
new
{
pattern = "Routing autopilot to the (.+)",
zh = "自動駕駛設定目的地為 {0}"
},
new
{
pattern = "Routing autopilot to (.+)",
zh = "自動駕駛設定目的地為 {0}"
},
new
{
pattern = "Your new balance is \\$(\\d+)",
zh = "你的新餘額為 $ {0}"
},
new
{
pattern = "currently (.+) on this moon",
zh = "目前在這個星球天氣為 {0}"
},
new
{
pattern = "There are (\\d+) objects outside the ship, totalling at an approximate value of \\$(\\d+).",
zh = "船外有 {0} 個物品,總估值為 $ {1}"
},
new
{
pattern = "The Company is buying at (\\d+)%\\.",
zh = "公司以 {0}% 的價格收購。"
},
new
{
pattern = "Ordered the (.+)!",
zh = "你訂購了 {0}!"
},
new
{
pattern = "Ordered (.+)!",
zh = "你訂購了 {0}!"
},
new
{
pattern = "The Company is buying your goods at (\\d+)\\%\\.",
zh = "公司以 {0}% 的價格收購你的貨物。"
}
};
foreach (object item in list)
{
PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(item);
PropertyDescriptor propertyDescriptor = properties.Find("pattern", ignoreCase: true);
PropertyDescriptor propertyDescriptor2 = properties.Find("zh", ignoreCase: true);
Regex regex = new Regex(propertyDescriptor.GetValue(item).ToString());
Match match = regex.Match(raw);
if (match.Success)
{
string[] array = new string[match.Groups.Count];
for (int i = 1; i < match.Groups.Count; i++)
{
string raw2 = match.Groups[i].Value;
array[i - 1] = translateItemName(ref raw2);
}
Regex regex2 = regex;
string input = raw;
string format = propertyDescriptor2.GetValue(item).ToString();
object[] array2 = array;
object[] array3 = array2;
object[] array4 = array3;
object[] args = array4;
raw = regex2.Replace(input, string.Format(format, args));
}
}
}
private string translateItemName(ref string raw)
{
return raw.Replace("walkie-talkies", "對講機").Replace("pro flashlights", "高級手電筒").Replace("flashlights", "手電筒")
.Replace("shovels", "鏟子")
.Replace("lock-pickers", "開鎖器")
.Replace("stun grenades", "閃光彈")
.Replace("boom boxes", "揚聲器")
.Replace("TZP-Inhalants", "TZP 吸入劑")
.Replace("zap guns", "電擊槍")
.Replace("jetpacks", "噴射背包")
.Replace("jetpack", "噴射背包")
.Replace("extension ladders", "伸縮梯子")
.Replace("radar boosters", "雷達增強器")
.Replace("loud horn", "大喇叭")
.Replace("inverse teleporter", "反向傳送器")
.Replace("teleporter", "傳送器")
.Replace("romantic table", "浪漫桌子")
.Replace("toilet", "馬桶")
.Replace("shower", "淋浴間")
.Replace("table", "桌子")
.Replace("record player", "唱片播放器")
.Replace("television", "電視")
.Replace("jack-o-Lantern", "南瓜燈")
.Replace("cozy lights", "浪漫燭台")
.Replace("pajama suits", "睡衣太空裝")
.Replace("green suits", "綠色太空裝")
.Replace("hazard suits", "化學隔離裝")
.Replace("signal translator", "訊號翻譯器")
.Replace("welcome mat, which will make everyone fell at home.", "歡迎地毯,讓每個人感受到家的溫暖");
}
}
}
namespace NewTerminalDetected
{
[HarmonyPatch]
internal static class UIPatches
{
[HarmonyPatch]
internal static class UniversalUIPatches
{
[HarmonyPostfix]
[HarmonyPatch(typeof(PreInitSceneScript), "Start")]
private static void OnPreInitMenuShown()
{
//IL_006b: Unknown result type (might be due to invalid IL or missing references)
//IL_007c: Unknown result type (might be due to invalid IL or missing references)
//IL_00b0: Unknown result type (might be due to invalid IL or missing references)
if (!Plugin.Flags.HasFlag(Flags.NewTerminalDetected))
{
TextMeshProUGUI component = Object.Instantiate<GameObject>(GameObject.Find("Canvas/GameObject/LANOrOnline/OnlineButton/Text (TMP) (1)").gameObject).GetComponent<TextMeshProUGUI>();
((TMP_Text)component).transform.parent = GameObject.Find("Canvas/GameObject").transform;
((TMP_Text)component).transform.localPosition = new Vector3(200f, -170f, 0f);
((TMP_Text)component).transform.localScale = Vector3.one;
((TMP_Text)component).text = "偵測到舊版本終端機翻譯模組 NewTerminal\n請移除掉後重開遊戲";
((TMP_Text)component).autoSizeTextContainer = true;
((Graphic)component).color = new Color(0.9434f, 0.0434f, 0.0434f, 1f);
((TMP_Text)component).alignment = (TextAlignmentOptions)514;
((TMP_Text)component).fontSize = 18f;
((Graphic)component).raycastTarget = false;
}
}
}
}
}
namespace LCTC
{
[BepInPlugin("LCTCTerminal", "LCTC Terminal", "1.0.0")]
public class Plugin : BaseUnityPlugin
{
public static class PluginInfo
{
public const string PLUGIN_GUID = "LCTCTerminal";
public const string PLUGIN_NAME = "LCTC Terminal";
public const string PLUGIN_VERSION = "1.0.0";
}
public static Flags Flags { get; private set; }
private void Awake()
{
//IL_0017: Unknown result type (might be due to invalid IL or missing references)
((BaseUnityPlugin)this).Logger.LogInfo((object)"LCTC Terminal 終端機翻譯成功載入!");
new Harmony("LCTCTerminal.patch").PatchAll();
foreach (PluginInfo value in Chainloader.PluginInfos.Values)
{
if (value.Metadata.GUID == "NewTerminal")
{
((BaseUnityPlugin)this).Logger.LogWarning((object)"警告: 發現到舊版本終端機翻譯,這將會與新版本起衝突!");
Flags = Flags.NewTerminalDetected;
}
}
}
}
[Flags]
public enum Flags
{
NewTerminalDetected = 1
}
}