public static async Task InitializeAsync() {
CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture;
SystemCultureName = CultureInfo.CurrentUICulture.Name;
var langId = AppArguments.Get(AppFlag.ForceLocale) ?? SettingsHolder.Locale.LocaleName;
bool found;
if (IsSupported(langId)) {
found = true;
} else {
var package = FilesStorage.Instance.GetFilename("Locales", langId + ".pak");
if (File.Exists(package)) {
await LoadPackage(langId, package);
found = true;
} else {
found = await TryToLoadPackage(langId, package);
if (found) {
Logging.Write("Package loaded");
}
}
}
if (SettingsHolder.Locale.LoadUnpacked) {
found = InitializeCustom(langId) || found;
}
if (found || AppArguments.GetBool(AppFlag.ForceLocale)) {
CultureInfo.DefaultThreadCurrentUICulture = new CultureInfo(langId);
} else {
CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.InvariantCulture;
}
}
public static void CreateAndRun() { FilesStorage.Initialize(EntryPoint.ApplicationDataDirectory); if (AppArguments.GetBool(AppFlag.DisableSaving)) { ValuesStorage.Initialize(); CacheStorage.Initialize(); } else { ValuesStorage.Initialize(FilesStorage.Instance.GetFilename("Values.data"), InternalUtils.GetValuesStorageEncryptionKey(), AppArguments.GetBool(AppFlag.DisableValuesCompression)); CacheStorage.Initialize(FilesStorage.Instance.GetFilename("Cache.data"), AppArguments.GetBool(AppFlag.DisableValuesCompression)); } if (!AppArguments.GetBool(AppFlag.DisableLogging)) { var logFilename = EntryPoint.GetLogName("Main Log"); Logging.Initialize(FilesStorage.Instance.GetFilename("Logs", logFilename), AppArguments.GetBool(AppFlag.OptimizeLogging, true)); Logging.Write($"App version: {BuildInformation.AppVersion} ({BuildInformation.Platform}, {WindowsVersionHelper.GetVersion()})"); } if (AppArguments.GetBool(AppFlag.NoProxy, true)) { WebRequest.DefaultWebProxy = null; } NonfatalError.Initialize(); LocaleHelper.InitializeAsync().Wait(); new App().Run(); }