* Ground work for NET9 UWP switch. * Add launch settings for Wino.Mail * Added new test WAP project * fix platforms in slnx solution * ManagePackageVersionsCentrally set default * Fixing assets and couple issues with the new packaging project. * Add back markdown * Fix nuget warnings * FIx error in WAP about build tools * Add build.props with default language preview * Some AOT compilation progress. * More AOT stuff. * Remove deprecated protocol auth activation handler. * Fix remaining protocol handler for google auth. * Even more AOT * More more AOT fixes * Fix a few more AOT warnings * Fix signature editor AOT * Fix composer and renderer AOT JSON * Outlook Sync AOT * Fixing bundle generation and package signing. --------- Co-authored-by: Burak Kaan Köse <bkaankose@outlook.com>
53 lines
2.1 KiB
C#
53 lines
2.1 KiB
C#
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Reflection;
|
|
using Wino.Core.Domain.Enums;
|
|
|
|
namespace Wino.Core.Domain.Translations
|
|
{
|
|
public class WinoTranslationDictionary : Dictionary<string, string>
|
|
{
|
|
// Return the key itself in case of translation is not found.
|
|
public string GetTranslatedString(string key) => TryGetValue(key, out string keyValue) ? keyValue : key;
|
|
|
|
public static Stream GetLanguageStream(AppLanguage language)
|
|
{
|
|
var path = GetLanguageFileNameRelativePath(language);
|
|
var executingAssembly = Assembly.GetExecutingAssembly();
|
|
|
|
// Use the assembly's name instead of the module name to construct the resource path
|
|
string assemblyName = executingAssembly.GetName().Name;
|
|
string languageResourcePath = $"{assemblyName}.Translations.{path}.resources.json";
|
|
return executingAssembly.GetManifestResourceStream(languageResourcePath);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Returns the relative path of the language file.
|
|
/// All translations are under Translations\{langCode}\resources.json
|
|
/// </summary>
|
|
/// <param name="language">Language</param>
|
|
/// <returns>Relative folder for the language</returns>
|
|
public static string GetLanguageFileNameRelativePath(AppLanguage language)
|
|
{
|
|
return language switch
|
|
{
|
|
AppLanguage.English => "en_US",
|
|
AppLanguage.Turkish => "tr_TR",
|
|
AppLanguage.Deutsch => "de_DE",
|
|
AppLanguage.Russian => "ru_RU",
|
|
AppLanguage.Polish => "pl_PL",
|
|
AppLanguage.Czech => "cs_CZ",
|
|
AppLanguage.French => "fr_FR",
|
|
AppLanguage.Chinese => "zh_CN",
|
|
AppLanguage.Spanish => "es_ES",
|
|
AppLanguage.Indonesian => "id_ID",
|
|
AppLanguage.Italian => "it_IT",
|
|
AppLanguage.Greek => "el_GR",
|
|
AppLanguage.PortugeseBrazil => "pt_BR",
|
|
AppLanguage.Romanian => "ro_RO",
|
|
_ => "en_US",
|
|
};
|
|
}
|
|
}
|
|
}
|