diff --git a/src/modules/poweraccent/PowerAccent.Core/Languages.cs b/src/modules/poweraccent/PowerAccent.Core/Languages.cs index 2a31d2481502..30389517a0ee 100644 --- a/src/modules/poweraccent/PowerAccent.Core/Languages.cs +++ b/src/modules/poweraccent/PowerAccent.Core/Languages.cs @@ -22,6 +22,7 @@ public enum Language GD, DE, EL, + GRC, EST, EPO, FI, @@ -86,6 +87,7 @@ public static string[] GetDefaultLetterKey(LetterKey letter, Language[] langs) Language.GD => GetDefaultLetterKeyGD(letter), // Gàidhlig (Scottish Gaelic) Language.DE => GetDefaultLetterKeyDE(letter), // German Language.EL => GetDefaultLetterKeyEL(letter), // Greek + Language.GRC => GetDefaultLetterKeyGRC(letter), // Greek Polytonic Language.EST => GetDefaultLetterKeyEST(letter), // Estonian Language.EPO => GetDefaultLetterKeyEPO(letter), // Esperanto Language.FI => GetDefaultLetterKeyFI(letter), // Finnish @@ -143,6 +145,7 @@ private static string[] GetDefaultLetterKeyALL(LetterKey letter) .Union(GetDefaultLetterKeyGD(letter)) .Union(GetDefaultLetterKeyDE(letter)) .Union(GetDefaultLetterKeyEL(letter)) + .Union(GetDefaultLetterKeyGRC(letter)) .Union(GetDefaultLetterKeyEST(letter)) .Union(GetDefaultLetterKeyEPO(letter)) .Union(GetDefaultLetterKeyFI(letter)) @@ -710,6 +713,41 @@ private static string[] GetDefaultLetterKeyEL(LetterKey letter) }; } + // Greek Polytonic + private static string[] GetDefaultLetterKeyGRC(LetterKey letter) + { + return letter switch + { + LetterKey.VK_A => new string[] { "α", "ἀ", "ἁ", "ὰ", "ά", "ᾶ", "ᾱ", "ᾰ", "ἂ", "ἃ", "ἄ", "ἅ", "ἆ", "ἇ", "ᾳ", "ᾀ", "ᾁ", "ᾴ", "ᾲ", "ᾷ", "ᾄ", "ᾅ", "ᾂ", "ᾃ", "ᾆ", "ᾇ" }, + LetterKey.VK_B => new string[] { "β" }, + LetterKey.VK_C => new string[] { "χ" }, + LetterKey.VK_D => new string[] { "δ" }, + LetterKey.VK_E => new string[] { "ε", "ἐ", "ἑ", "ὲ", "έ", "ἒ", "ἓ", "ἔ", "ἕ" }, + LetterKey.VK_F => new string[] { "φ", "ϝ" }, + LetterKey.VK_G => new string[] { "γ" }, + LetterKey.VK_H => new string[] { "η", "ἠ", "ἡ", "ὴ", "ή", "ῆ", "ἢ", "ἣ", "ἤ", "ἥ", "ἦ", "ἧ", "ῃ", "ᾐ", "ᾑ", "ῄ", "ῂ", "ῇ", "ᾔ", "ᾕ", "ᾒ", "ᾓ", "ᾖ", "ᾗ" }, + LetterKey.VK_I => new string[] { "ι", "ἰ", "ἱ", "ὶ", "ί", "ῖ", "ῑ", "ῐ", "ἲ", "ἳ", "ἴ", "ἵ", "ἶ", "ἷ", "ϊ", "ΐ", "ῒ", "ῗ" }, + LetterKey.VK_K => new string[] { "κ" }, + LetterKey.VK_L => new string[] { "λ" }, + LetterKey.VK_M => new string[] { "μ" }, + LetterKey.VK_N => new string[] { "ν" }, + LetterKey.VK_O => new string[] { "ο", "ὀ", "ὁ", "ὸ", "ό", "ὂ", "ὃ", "ὄ", "ὅ" }, + LetterKey.VK_P => new string[] { "π", "φ", "ψ" }, + LetterKey.VK_Q => new string[] { "ϟ" }, + LetterKey.VK_R => new string[] { "ρ", "ῤ", "ῥ" }, + LetterKey.VK_S => new string[] { "σ", "ς", "ϛ", "ϲ", "ϡ" }, + LetterKey.VK_T => new string[] { "τ", "θ", "ϑ" }, + LetterKey.VK_U => new string[] { "υ", "ὐ", "ὑ", "ὺ", "ύ", "ῦ", "ῡ", "ῠ", "ὒ", "ὓ", "ὔ", "ὕ", "ὖ", "ὗ", "ϋ", "ΰ", "ῢ", "ῧ" }, + LetterKey.VK_W => new string[] { "ω", "ὠ", "ὡ", "ὼ", "ώ", "ῶ", "ὢ", "ὣ", "ὤ", "ὥ", "ὦ", "ὧ", "ῳ", "ᾠ", "ᾡ", "ῴ", "ῲ", "ῷ", "ᾤ", "ᾥ", "ᾢ", "ᾣ", "ᾦ", "ᾧ" }, + LetterKey.VK_X => new string[] { "ξ" }, + LetterKey.VK_Y => new string[] { "υ", "ὐ", "ὑ", "ὺ", "ύ", "ῦ", "ῡ", "ῠ", "ὒ", "ὓ", "ὔ", "ὕ", "ὖ", "ὗ", "ϋ", "ΰ", "ῢ", "ῧ" }, + LetterKey.VK_Z => new string[] { "ζ" }, + LetterKey.VK_COMMA => new[] { "“", "”", "‘", "’", ";", "`", "´" }, + LetterKey.VK_PERIOD => new string[] { "·" }, + _ => Array.Empty(), + }; + } + // Hebrew private static string[] GetDefaultLetterKeyHE(LetterKey letter) { diff --git a/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw b/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw index d8c15fa1c25e..20d799d9ab03 100644 --- a/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw +++ b/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw @@ -3565,6 +3565,9 @@ Activate by holding the key for the character you want to add an accent to, then Greek + + Greek Polytonic + Hebrew diff --git a/src/settings-ui/Settings.UI/ViewModels/PowerAccentViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/PowerAccentViewModel.cs index 342d90ff52cf..9e948eb59283 100644 --- a/src/settings-ui/Settings.UI/ViewModels/PowerAccentViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/PowerAccentViewModel.cs @@ -39,6 +39,7 @@ public partial class PowerAccentViewModel : Observable new PowerAccentLanguageModel("GD", "QuickAccent_SelectedLanguage_Gaidhlig", LanguageGroup), new PowerAccentLanguageModel("NL", "QuickAccent_SelectedLanguage_Dutch", LanguageGroup), new PowerAccentLanguageModel("EL", "QuickAccent_SelectedLanguage_Greek", LanguageGroup), + new PowerAccentLanguageModel("GRC", "QuickAccent_SelectedLanguage_Greek_Polytonic", LanguageGroup), new PowerAccentLanguageModel("EST", "QuickAccent_SelectedLanguage_Estonian", LanguageGroup), new PowerAccentLanguageModel("EPO", "QuickAccent_SelectedLanguage_Esperanto", LanguageGroup), new PowerAccentLanguageModel("FI", "QuickAccent_SelectedLanguage_Finnish", LanguageGroup),