mirror of
https://github.com/goatcorp/Dalamud.git
synced 2026-01-02 13:53:40 +01:00
feat: add language select to settings
This commit is contained in:
parent
a9fa629e0b
commit
a7687287fa
2 changed files with 25 additions and 9 deletions
|
|
@ -68,7 +68,7 @@ namespace Dalamud {
|
||||||
public DataManager Data { get; private set; }
|
public DataManager Data { get; private set; }
|
||||||
|
|
||||||
|
|
||||||
private Localization localizationMgr;
|
internal Localization LocalizationManager;
|
||||||
|
|
||||||
public bool IsReady { get; private set; }
|
public bool IsReady { get; private set; }
|
||||||
|
|
||||||
|
|
@ -100,11 +100,11 @@ namespace Dalamud {
|
||||||
throw new Exception("Could not ensure assets.", task.Exception);
|
throw new Exception("Could not ensure assets.", task.Exception);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.localizationMgr = new Localization(this.StartInfo.WorkingDirectory);
|
this.LocalizationManager = new Localization(this.StartInfo.WorkingDirectory);
|
||||||
if (!string.IsNullOrEmpty(this.Configuration.LanguageOverride)) {
|
if (!string.IsNullOrEmpty(this.Configuration.LanguageOverride)) {
|
||||||
this.localizationMgr.SetupWithLangCode(this.Configuration.LanguageOverride);
|
this.LocalizationManager.SetupWithLangCode(this.Configuration.LanguageOverride);
|
||||||
} else {
|
} else {
|
||||||
this.localizationMgr.SetupWithUiCulture();
|
this.LocalizationManager.SetupWithUiCulture();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Environment.GetEnvironmentVariable("DALAMUD_NOT_HAVE_INTERFACE") != "True") {
|
if (Environment.GetEnvironmentVariable("DALAMUD_NOT_HAVE_INTERFACE") != "True") {
|
||||||
|
|
@ -333,13 +333,13 @@ namespace Dalamud {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.MenuItem("From UICulture")) {
|
if (ImGui.MenuItem("From UICulture")) {
|
||||||
this.localizationMgr.SetupWithUiCulture();
|
this.LocalizationManager.SetupWithUiCulture();
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var applicableLangCode in Localization.ApplicableLangCodes) {
|
foreach (var applicableLangCode in Localization.ApplicableLangCodes) {
|
||||||
if (ImGui.MenuItem($"Applicable: {applicableLangCode}"))
|
if (ImGui.MenuItem($"Applicable: {applicableLangCode}"))
|
||||||
{
|
{
|
||||||
this.localizationMgr.SetupWithLangCode(applicableLangCode);
|
this.LocalizationManager.SetupWithLangCode(applicableLangCode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -741,12 +741,12 @@ namespace Dalamud {
|
||||||
private void OnSetLanguageCommand(string command, string arguments)
|
private void OnSetLanguageCommand(string command, string arguments)
|
||||||
{
|
{
|
||||||
if (Localization.ApplicableLangCodes.Contains(arguments.ToLower())) {
|
if (Localization.ApplicableLangCodes.Contains(arguments.ToLower())) {
|
||||||
this.localizationMgr.SetupWithLangCode(arguments.ToLower());
|
this.LocalizationManager.SetupWithLangCode(arguments.ToLower());
|
||||||
this.Configuration.LanguageOverride = arguments.ToLower();
|
this.Configuration.LanguageOverride = arguments.ToLower();
|
||||||
|
|
||||||
this.Framework.Gui.Chat.Print(string.Format(Loc.Localize("DalamudLanguageSetTo", "Language set to {0}"), arguments));
|
this.Framework.Gui.Chat.Print(string.Format(Loc.Localize("DalamudLanguageSetTo", "Language set to {0}"), arguments));
|
||||||
} else {
|
} else {
|
||||||
this.localizationMgr.SetupWithUiCulture();
|
this.LocalizationManager.SetupWithUiCulture();
|
||||||
this.Configuration.LanguageOverride = null;
|
this.Configuration.LanguageOverride = null;
|
||||||
|
|
||||||
this.Framework.Gui.Chat.Print(string.Format(Loc.Localize("DalamudLanguageSetTo", "Language set to {0}"), "default"));
|
this.Framework.Gui.Chat.Print(string.Format(Loc.Localize("DalamudLanguageSetTo", "Language set to {0}"), "default"));
|
||||||
|
|
|
||||||
|
|
@ -30,8 +30,14 @@ namespace Dalamud.Interface
|
||||||
|
|
||||||
this.doPluginTest = this.dalamud.Configuration.DoPluginTest;
|
this.doPluginTest = this.dalamud.Configuration.DoPluginTest;
|
||||||
this.doDalamudTest = this.dalamud.Configuration.DoDalamudTest;
|
this.doDalamudTest = this.dalamud.Configuration.DoDalamudTest;
|
||||||
|
|
||||||
|
this.languages = Localization.ApplicableLangCodes.Prepend("en").ToArray();
|
||||||
|
this.langIndex = string.IsNullOrEmpty(this.dalamud.Configuration.LanguageOverride) ? 0 : Array.IndexOf(this.languages, this.dalamud.Configuration.LanguageOverride);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private string[] languages;
|
||||||
|
private int langIndex;
|
||||||
|
|
||||||
private string[] chatTypes;
|
private string[] chatTypes;
|
||||||
|
|
||||||
private Vector4 hintTextColor = new Vector4(0.70f, 0.70f, 0.70f, 1.00f);
|
private Vector4 hintTextColor = new Vector4(0.70f, 0.70f, 0.70f, 1.00f);
|
||||||
|
|
@ -52,7 +58,7 @@ namespace Dalamud.Interface
|
||||||
|
|
||||||
var isOpen = true;
|
var isOpen = true;
|
||||||
|
|
||||||
if (!ImGui.Begin("XIVLauncher Settings", ref isOpen, ImGuiWindowFlags.NoCollapse | ImGuiWindowFlags.NoResize)) {
|
if (!ImGui.Begin("Dalamud Settings", ref isOpen, ImGuiWindowFlags.NoCollapse | ImGuiWindowFlags.NoResize)) {
|
||||||
ImGui.End();
|
ImGui.End();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
@ -61,6 +67,13 @@ namespace Dalamud.Interface
|
||||||
|
|
||||||
if (ImGui.BeginTabBar("SetTabBar")) {
|
if (ImGui.BeginTabBar("SetTabBar")) {
|
||||||
if (ImGui.BeginTabItem("General")) {
|
if (ImGui.BeginTabItem("General")) {
|
||||||
|
ImGui.Text("Language");
|
||||||
|
ImGui.Combo("##XlLangCombo", ref this.langIndex, this.languages,
|
||||||
|
this.languages.Length);
|
||||||
|
ImGui.TextColored(this.hintTextColor, "Select the language Dalamud will be displayed in.");
|
||||||
|
|
||||||
|
ImGui.Dummy(new Vector2(5f, 5f));
|
||||||
|
|
||||||
ImGui.Text("General Chat Channel");
|
ImGui.Text("General Chat Channel");
|
||||||
ImGui.Combo("##XlChatTypeCombo", ref this.dalamudMessagesChatType, this.chatTypes,
|
ImGui.Combo("##XlChatTypeCombo", ref this.dalamudMessagesChatType, this.chatTypes,
|
||||||
this.chatTypes.Length);
|
this.chatTypes.Length);
|
||||||
|
|
@ -110,6 +123,9 @@ namespace Dalamud.Interface
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Save() {
|
private void Save() {
|
||||||
|
this.dalamud.LocalizationManager.SetupWithLangCode(this.languages[this.langIndex]);
|
||||||
|
this.dalamud.Configuration.LanguageOverride = this.languages[this.langIndex];
|
||||||
|
|
||||||
this.dalamud.Configuration.GeneralChatType = (XivChatType) this.dalamudMessagesChatType;
|
this.dalamud.Configuration.GeneralChatType = (XivChatType) this.dalamudMessagesChatType;
|
||||||
|
|
||||||
this.dalamud.Configuration.DutyFinderTaskbarFlash = this.doCfTaskBarFlash;
|
this.dalamud.Configuration.DutyFinderTaskbarFlash = this.doCfTaskBarFlash;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue