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"));
}
}
}