diff --git a/Dalamud/Localization.cs b/Dalamud/Localization.cs index fe13c6bff..f1d2c3b0f 100644 --- a/Dalamud/Localization.cs +++ b/Dalamud/Localization.cs @@ -23,6 +23,7 @@ namespace Dalamud private readonly string locResourceDirectory; private readonly string locResourcePrefix; + private readonly bool useEmbedded; private readonly Assembly assembly; /// @@ -30,10 +31,12 @@ namespace Dalamud /// /// The working directory to load language files from. /// The prefix on the loc resource file name (e.g. dalamud_). - public Localization(string locResourceDirectory, string locResourcePrefix = "") + /// Use embedded loc resource files. + public Localization(string locResourceDirectory, string locResourcePrefix = "", bool useEmbedded = false) { this.locResourceDirectory = locResourceDirectory; this.locResourcePrefix = locResourcePrefix; + this.useEmbedded = useEmbedded; this.assembly = Assembly.GetCallingAssembly(); } @@ -130,9 +133,16 @@ namespace Dalamud private string ReadLocData(string langCode) { - return File.ReadAllText(Path.Combine( - this.locResourceDirectory, - $"{this.locResourcePrefix}{langCode}.json")); + if (this.useEmbedded) + { + var resourceStream = + this.assembly.GetManifestResourceStream($"{this.locResourceDirectory}{this.locResourcePrefix}{langCode}.json"); + if (resourceStream == null) return null; + using var reader = new StreamReader(resourceStream); + return reader.ReadToEnd(); + } + + return File.ReadAllText(Path.Combine(this.locResourceDirectory, $"{this.locResourcePrefix}{langCode}.json")); } } }