Langues
Profils de saisie
Un profil de saisie associe le comportement linguistique (IME, prédiction, polices) à une disposition clavier (topologie des touches) :
| Champ | Rôle |
|---|---|
id | Identifiant stable (par ex. en-qwerty, ja-romaji) |
languageTag | Tag BCP 47 : pilote IME, prédiction et sélection de police |
layoutId | Fichier de disposition clavier |
displayName | Libellé sur la barre espace et dans le popup de langue |
imeEngineId | Moteur IME (none, romaji, flick, pinyin, …) |
Les profils embarqués définissent un profil par disposition (56 au total). L'id combine languageTag et variante de disposition (par ex. en-qwerty, de-qwertz, zh-Hans-pinyin, ja-12key).
Les profils par défaut sont embarqués dans le plugin. Omettez inputProfiles en QML pour les utiliser ; définissez uniquement activeProfileIds et currentProfileId.
Activer les profils embarqués
VirtualKeyboard {
width: parent.width
activeProfileIds: ["en-qwerty", "fr-azerty", "de-qwertz", "ja-romaji"]
currentProfileId: "fr-azerty"
}
Ou à l'exécution via le singleton :
Component.onCompleted: {
Lnvk.activeProfileIds = ["en-qwerty", "fr-azerty", "de-qwertz", "ja-romaji"]
Lnvk.currentProfileId = "fr-azerty"
}
Le japonais propose deux profils embarqués (ja-romaji, ja-12key). L'hindi propose la translittération (hi-transliteration) et le Devanagari (hi-Deva-deva).
Profils personnalisés
Surchargez ou étendez l'ensemble embarqué en fournissant inputProfiles (chaque objet requiert id, languageTag, layoutId, displayName, imeEngineId) :
VirtualKeyboard {
inputProfiles: [
{
id: "en-qwerty",
languageTag: "en",
layoutId: "en",
displayName: "English",
imeEngineId: "none"
},
{
id: "es-qwerty",
languageTag: "es",
layoutId: "es",
displayName: "Español",
imeEngineId: "none"
}
]
activeProfileIds: ["en-qwerty", "es-qwerty"]
currentProfileId: "en-qwerty"
}
Bascule à l'exécution
L'utilisateur bascule via la touche globe (≥ 2 profils actifs) ou un appui long sur la barre espace.
Lnvk.selectProfile("fr-azerty") // par id de profil
Lnvk.selectLanguage("fr") // premier profil actif avec ce languageTag
currentProfileId, currentLanguage et currentDisplayName sur le singleton reflètent le profil actif :
Text { text: Lnvk.currentDisplayName } // ex. "Français"
Trouver des profils
Les helpers de découverte renvoient des objets du catalogue complet inputProfiles (pas seulement activeProfileIds). Chaque entrée a id, languageTag, layoutId, displayName et imeEngineId. Utilisez Lnvk.activeProfiles pour le sous-ensemble activé (même forme ; utilisé par le popup de langue).
| Vous avez… | Appel |
|---|---|
| Id de profil | Lnvk.profileDisplayName(id) |
languageTag BCP‑47 ("ja", "zh-Hans") | Lnvk.profilesForLanguageTag(tag) |
// Deux dispositions japonaises partagent le languageTag "ja"
const japanese = Lnvk.profilesForLanguageTag("ja")
if (japanese.length > 0)
Lnvk.selectProfile(japanese[0].id)
// Profils activés pour le popup de langue
languageList.model = Lnvk.activeProfiles
selectLanguage(bcp47) bascule uniquement parmi les profils actifs (première correspondance exacte de languageTag). Préférez selectProfile(id) quand vous connaissez l'id de profil.
Profils embarqués disponibles
Utilisez les valeurs d'id de profil dans activeProfileIds, currentProfileId et Lnvk.selectProfile(). Les ids de profil encodent la langue et la variante de disposition (par exemple ja-romaji, zh-Hans-pinyin, hi-Deva-deva). Des méthodes de saisie complètes (IME avec sélection de candidats) sont fournies pour le chinois, le japonais et le coréen.
| Id de profil | Nom affiché |
|---|---|
ar-arabic | العربية |
be-cyrillic | Беларуская |
bg-cyrillic | Български |
bn-transliteration | বাংলা |
bs-qwertz | Bosanski |
ca-qwerty | Català |
cs-qwertz | Čeština |
cy-qwerty | Cymraeg |
da-qwerty | Dansk |
de-qwertz | Deutsch |
el-greek | Ελληνικά |
en-qwerty | English |
es-qwerty | Español |
et-qwerty | Eesti |
fi-qwerty | Suomi |
fr-azerty | Français |
ga-qwerty | Gaeilge |
gl-qwerty | Galego |
he-hebrew | עברית |
hi-Deva-deva | हिन्दी |
hi-transliteration | Hindi |
hr-qwertz | Hrvatski |
hu-qwertz | Magyar |
hy-armenian | Հayeren |
is-qwerty | Íslenska |
it-qwerty | Italiano |
ja-12key | 日本語 (12-key) |
ja-romaji | 日本語 (Romaji) |
ka-georgian | ქართული |
kn-transliteration | ಕನ್ನಡ |
ko-dubeolsik | 한국어 |
lt-qwerty | Lietuvių |
lv-qwerty | Latviešu |
mk-cyrillic | Македонски |
mt-qwerty | Malti |
nb-qwerty | Norsk |
nl-qwerty | Nederlands |
pl-qwerty | Polski |
pt-qwerty | Português |
ro-qwerty | Română |
ru-jcuken | Русский |
sk-qwertz | Slovenčina |
sl-qwertz | Slovenščina |
sq-qwerty | Shqip |
sr-cyrillic | Српски |
sv-qwerty | Svenska |
ta-transliteration | தமிழ் |
te-transliteration | తెలుగు |
th-kedmanee | ไทย |
tr-qwerty | Türkçe |
uk-jcuken | Українська |
vi-qwerty | Tiếng Việt |
zh-Hans-pinyin | 中文 (简体) |
zh-Hant-HK-cangjie | 中文 (香港) |
zh-Hant-TW-zhuyin | 中文 (台灣) |
zh-Hant-pinyin-hant | 中文 (繁體) |