Extended the localization system to easily include additional languages in the future

This commit is contained in:
Junior 2023-10-07 00:08:43 -03:00
parent d5ec712d0f
commit ae34584021
50 changed files with 45079 additions and 24129 deletions

View file

@ -2,7 +2,7 @@ namespace RHLauncher.RHLauncher.Helper;
public class Configuration
{
private static readonly string DefaultIniFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "config.ini");
private static readonly string DefaultIniFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config.ini");
public static readonly Configuration Default = new();
@ -34,6 +34,10 @@ public class Configuration
//Launcher update endpoints
GetLauncherVersion = $"{apiUrl}/launcherApi/launcherUpdater/getLauncherVersion";
UpdateLauncherVersion = $"{apiUrl}/launcherApi/launcherUpdater/updateLauncherVersion";
//Launcher settings
string lang = iniFile.ReadValue("Launcher", "Lang");
Lang = lang;
}
public string GateXMLUrl { get; set; }
@ -51,5 +55,6 @@ public class Configuration
public string GetLauncherVersion { get; set; }
public string UpdateLauncherVersion { get; set; }
public string DownloadUpdateFileUrl { get; set; }
public string Lang { get; set; }
}

View file

@ -3,14 +3,14 @@ using System.Text;
namespace RHLauncher.RHLauncher.Helper
{
public class IniFile
public partial class IniFile
{
private readonly string _iniFilePath;
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
[LibraryImport("kernel32", EntryPoint = "WritePrivateProfileStringW", StringMarshalling = StringMarshalling.Utf16)]
private static partial long WritePrivateProfileString(string section, string key, string val, string filePath);
[DllImport("kernel32")]
[DllImport("kernel32", CharSet = CharSet.Unicode)]
private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
public IniFile(string iniFileName)
@ -24,13 +24,15 @@ namespace RHLauncher.RHLauncher.Helper
WritePrivateProfileString("Info", "LoginURL", "http://localhost:3000", _iniFilePath);
//Default client service
WritePrivateProfileString("Info", "Service", "usa", _iniFilePath);
//Default launcher language
WritePrivateProfileString("Launcher", "Lang", "en", _iniFilePath);
}
}
public string ReadValue(string section, string key)
{
StringBuilder sb = new(255);
GetPrivateProfileString(section, key, "", sb, 255, _iniFilePath);
_ = GetPrivateProfileString(section, key, "", sb, 255, _iniFilePath);
return sb.ToString();
}