diff --git a/CLAUDE.md b/CLAUDE.md index bfa699f9f..e6a598846 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -123,12 +123,11 @@ Common components used throughout the shell: - `I18n.qml` - Internationalization/translations - `Color.qml` - Color utilities and helpers - `Icons.qml` - Icon management -- `TablerIcons.qml` - Tabler icon set (207KB icon definitions) +- `IconsTabler.qml` - Tabler icon set (207KB icon definitions) - `ThemeIcons.qml` - Theme-specific icons - `Logger.qml` - Logging utility - `Style.qml` - Shared styling definitions - `Time.qml` - Time utilities -- `KeyboardLayout.qml` - Keyboard layout definitions #### `/Widgets/` - Reusable UI Components 40+ custom QML widgets with the "N" prefix (Noctalia): diff --git a/Commons/Icons.qml b/Commons/Icons.qml index 919782d63..acd7e1b78 100644 --- a/Commons/Icons.qml +++ b/Commons/Icons.qml @@ -10,9 +10,9 @@ Singleton { // Expose the font family name for easy access readonly property string fontFamily: currentFontLoader ? currentFontLoader.name : "" - readonly property string defaultIcon: TablerIcons.defaultIcon - readonly property var icons: TablerIcons.icons - readonly property var aliases: TablerIcons.aliases + readonly property string defaultIcon: IconsTabler.defaultIcon + readonly property var icons: IconsTabler.icons + readonly property var aliases: IconsTabler.aliases readonly property string fontPath: "/Assets/Fonts/tabler/tabler-icons.ttf" // Current active font loader diff --git a/Commons/TablerIcons.qml b/Commons/IconsTabler.qml similarity index 100% rename from Commons/TablerIcons.qml rename to Commons/IconsTabler.qml diff --git a/Commons/KeyboardLayout.qml b/Commons/KeyboardLayout.qml deleted file mode 100644 index 9b090d215..000000000 --- a/Commons/KeyboardLayout.qml +++ /dev/null @@ -1,206 +0,0 @@ -pragma Singleton - -import QtQuick - -// TODO: Move to KeyboardLayoutService. -QtObject { - id: root - - // Comprehensive language name to ISO code mapping - property var languageMap: { - "english"// English variants - : "us", - "american": "us", - "united states": "us", - "us english": "us", - "british": "gb", - "uk": "ua", - "united kingdom"// FIXED: Ukrainian language code should map to Ukraine - : "gb", - "english (uk)": "gb", - "canadian": "ca", - "canada": "ca", - "canadian english": "ca", - "australian": "au", - "australia": "au", - "swedish"// Nordic countries - : "se", - "svenska": "se", - "sweden": "se", - "norwegian": "no", - "norsk": "no", - "norway": "no", - "danish": "dk", - "dansk": "dk", - "denmark": "dk", - "finnish": "fi", - "suomi": "fi", - "finland": "fi", - "icelandic": "is", - "íslenska": "is", - "iceland": "is", - "german"// Western/Central European Germanic - : "de", - "deutsch": "de", - "germany": "de", - "austrian": "at", - "austria": "at", - "österreich": "at", - "swiss": "ch", - "switzerland": "ch", - "schweiz": "ch", - "suisse": "ch", - "dutch": "nl", - "nederlands": "nl", - "netherlands": "nl", - "holland": "nl", - "belgian": "be", - "belgium": "be", - "belgië": "be", - "belgique": "be", - "french"// Romance languages (Western/Southern Europe) - : "fr", - "français": "fr", - "france": "fr", - "canadian french": "ca", - "spanish": "es", - "español": "es", - "spain": "es", - "castilian": "es", - "italian": "it", - "italiano": "it", - "italy": "it", - "portuguese": "pt", - "português": "pt", - "portugal": "pt", - "catalan": "ad", - "català": "ad", - "andorra": "ad", - "romanian"// Eastern European Romance - : "ro", - "română": "ro", - "romania": "ro", - "russian"// Slavic languages (Eastern Europe) - : "ru", - "русский": "ru", - "russia": "ru", - "polish": "pl", - "polski": "pl", - "poland": "pl", - "czech": "cz", - "čeština": "cz", - "czech republic": "cz", - "slovak": "sk", - "slovenčina": "sk", - "slovakia": "sk", - "uk": "ua", - "ukrainian"// Ukrainian language code - : "ua", - "українська": "ua", - "ukraine": "ua", - "bulgarian": "bg", - "български": "bg", - "bulgaria": "bg", - "serbian": "rs", - "srpski": "rs", - "serbia": "rs", - "croatian": "hr", - "hrvatski": "hr", - "croatia": "hr", - "slovenian": "si", - "slovenščina": "si", - "slovenia": "si", - "bosnian": "ba", - "bosanski": "ba", - "bosnia": "ba", - "macedonian": "mk", - "македонски": "mk", - "macedonia": "mk", - "irish"// Celtic languages (Western Europe) - : "ie", - "gaeilge": "ie", - "ireland": "ie", - "welsh": "gb", - "cymraeg": "gb", - "wales": "gb", - "scottish": "gb", - "gàidhlig": "gb", - "scotland": "gb", - "estonian"// Baltic languages (Northern Europe) - : "ee", - "eesti": "ee", - "estonia": "ee", - "latvian": "lv", - "latviešu": "lv", - "latvia": "lv", - "lithuanian": "lt", - "lietuvių": "lt", - "lithuania": "lt", - "hungarian"// Other European languages - : "hu", - "magyar": "hu", - "hungary": "hu", - "greek": "gr", - "ελληνικά": "gr", - "greece": "gr", - "albanian": "al", - "shqip": "al", - "albania": "al", - "maltese": "mt", - "malti": "mt", - "malta": "mt", - "turkish"// West/Southwest Asian languages - : "tr", - "türkçe": "tr", - "turkey": "tr", - "arabic": "ar", - "العربية": "ar", - "arab": "ar", - "hebrew": "il", - "עברית": "il", - "israel": "il", - "brazilian"// South American languages - : "br", - "brazilian portuguese": "br", - "brasil": "br", - "brazil": "br", - "japanese"// East Asian languages - : "jp", - "日本語": "jp", - "japan": "jp", - "korean": "kr", - "한국어": "kr", - "korea": "kr", - "south korea": "kr", - "chinese": "cn", - "中文": "cn", - "china": "cn", - "simplified chinese": "cn", - "traditional chinese": "tw", - "taiwan": "tw", - "繁體中文": "tw", - "thai"// Southeast Asian languages - : "th", - "ไทย": "th", - "thailand": "th", - "vietnamese": "vn", - "tiếng việt": "vn", - "vietnam": "vn", - "hindi"// South Asian languages - : "in", - "हिन्दी": "in", - "india": "in", - "afrikaans"// African languages - : "za", - "south africa": "za", - "south african": "za", - "qwerty"// Layout variants - : "us", - "dvorak": "us", - "colemak": "us", - "workman": "us", - "azerty": "fr", - "norman": "fr", - "qwertz": "de" - } -} diff --git a/Services/Keyboard/KeyboardLayoutService.qml b/Services/Keyboard/KeyboardLayoutService.qml index d8e1a6480..a28ff9931 100644 --- a/Services/Keyboard/KeyboardLayoutService.qml +++ b/Services/Keyboard/KeyboardLayoutService.qml @@ -186,7 +186,7 @@ Singleton { } // Check for exact matches or partial matches in language map from Commons - const entries = Object.entries(KeyboardLayout.languageMap) + const entries = Object.entries(languageMap) for (var i = 0; i < entries.length; i++) { const lang = entries[i][0] const code = entries[i][1] @@ -229,4 +229,202 @@ Singleton { } } } + + // Comprehensive language name to ISO code mapping + property var languageMap: { + "english"// English variants + : "us", + "american": "us", + "united states": "us", + "us english": "us", + "british": "gb", + "uk": "ua", + "united kingdom"// FIXED: Ukrainian language code should map to Ukraine + : "gb", + "english (uk)": "gb", + "canadian": "ca", + "canada": "ca", + "canadian english": "ca", + "australian": "au", + "australia": "au", + "swedish"// Nordic countries + : "se", + "svenska": "se", + "sweden": "se", + "norwegian": "no", + "norsk": "no", + "norway": "no", + "danish": "dk", + "dansk": "dk", + "denmark": "dk", + "finnish": "fi", + "suomi": "fi", + "finland": "fi", + "icelandic": "is", + "íslenska": "is", + "iceland": "is", + "german"// Western/Central European Germanic + : "de", + "deutsch": "de", + "germany": "de", + "austrian": "at", + "austria": "at", + "österreich": "at", + "swiss": "ch", + "switzerland": "ch", + "schweiz": "ch", + "suisse": "ch", + "dutch": "nl", + "nederlands": "nl", + "netherlands": "nl", + "holland": "nl", + "belgian": "be", + "belgium": "be", + "belgië": "be", + "belgique": "be", + "french"// Romance languages (Western/Southern Europe) + : "fr", + "français": "fr", + "france": "fr", + "canadian french": "ca", + "spanish": "es", + "español": "es", + "spain": "es", + "castilian": "es", + "italian": "it", + "italiano": "it", + "italy": "it", + "portuguese": "pt", + "português": "pt", + "portugal": "pt", + "catalan": "ad", + "català": "ad", + "andorra": "ad", + "romanian"// Eastern European Romance + : "ro", + "română": "ro", + "romania": "ro", + "russian"// Slavic languages (Eastern Europe) + : "ru", + "русский": "ru", + "russia": "ru", + "polish": "pl", + "polski": "pl", + "poland": "pl", + "czech": "cz", + "čeština": "cz", + "czech republic": "cz", + "slovak": "sk", + "slovenčina": "sk", + "slovakia": "sk", + "uk": "ua", + "ukrainian"// Ukrainian language code + : "ua", + "українська": "ua", + "ukraine": "ua", + "bulgarian": "bg", + "български": "bg", + "bulgaria": "bg", + "serbian": "rs", + "srpski": "rs", + "serbia": "rs", + "croatian": "hr", + "hrvatski": "hr", + "croatia": "hr", + "slovenian": "si", + "slovenščina": "si", + "slovenia": "si", + "bosnian": "ba", + "bosanski": "ba", + "bosnia": "ba", + "macedonian": "mk", + "македонски": "mk", + "macedonia": "mk", + "irish"// Celtic languages (Western Europe) + : "ie", + "gaeilge": "ie", + "ireland": "ie", + "welsh": "gb", + "cymraeg": "gb", + "wales": "gb", + "scottish": "gb", + "gàidhlig": "gb", + "scotland": "gb", + "estonian"// Baltic languages (Northern Europe) + : "ee", + "eesti": "ee", + "estonia": "ee", + "latvian": "lv", + "latviešu": "lv", + "latvia": "lv", + "lithuanian": "lt", + "lietuvių": "lt", + "lithuania": "lt", + "hungarian"// Other European languages + : "hu", + "magyar": "hu", + "hungary": "hu", + "greek": "gr", + "ελληνικά": "gr", + "greece": "gr", + "albanian": "al", + "shqip": "al", + "albania": "al", + "maltese": "mt", + "malti": "mt", + "malta": "mt", + "turkish"// West/Southwest Asian languages + : "tr", + "türkçe": "tr", + "turkey": "tr", + "arabic": "ar", + "العربية": "ar", + "arab": "ar", + "hebrew": "il", + "עברית": "il", + "israel": "il", + "brazilian"// South American languages + : "br", + "brazilian portuguese": "br", + "brasil": "br", + "brazil": "br", + "japanese"// East Asian languages + : "jp", + "日本語": "jp", + "japan": "jp", + "korean": "kr", + "한국어": "kr", + "korea": "kr", + "south korea": "kr", + "chinese": "cn", + "中文": "cn", + "china": "cn", + "simplified chinese": "cn", + "traditional chinese": "tw", + "taiwan": "tw", + "繁體中文": "tw", + "thai"// Southeast Asian languages + : "th", + "ไทย": "th", + "thailand": "th", + "vietnamese": "vn", + "tiếng việt": "vn", + "vietnam": "vn", + "hindi"// South Asian languages + : "in", + "हिन्दी": "in", + "india": "in", + "afrikaans"// African languages + : "za", + "south africa": "za", + "south african": "za", + "qwerty"// Layout variants + : "us", + "dvorak": "us", + "colemak": "us", + "workman": "us", + "azerty": "fr", + "norman": "fr", + "qwertz": "de" + } }