mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-05 00:15:32 +00:00
fix(android): improve clarity of keyboard script error popup
* Remove irrelevant context from toast and add more context for Sentry report. * Add a test keyboard with a script error that will trigger the toast on first keystroke. * Rearrange common/test/keyboards/invalid to make a good place for compiled invalid keyboards. Fixes: #16145 Test-bot: skip
This commit is contained in:
parent
f500d0a591
commit
cb8f9584cf
103 changed files with 2069 additions and 86 deletions
|
|
@ -310,7 +310,7 @@ final class KMKeyboard extends WebView {
|
||||||
// This duplicates the sendKMWError message, which itself duplicates the reporting now
|
// This duplicates the sendKMWError message, which itself duplicates the reporting now
|
||||||
// managed by sentry-manager on the js side in patch in #6890. It does not give us
|
// managed by sentry-manager on the js side in patch in #6890. It does not give us
|
||||||
// additional useful information. So we don't re-send to Sentry.
|
// additional useful information. So we don't re-send to Sentry.
|
||||||
sendError(packageID, keyboardID, "", false);
|
sendError(packageID, keyboardID, "", null);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -601,7 +601,11 @@ final class KMKeyboard extends WebView {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!KMManager.shouldAllowSetKeyboard() || kbInfo == null) {
|
if (!KMManager.shouldAllowSetKeyboard() || kbInfo == null) {
|
||||||
sendError(packageID, keyboardID, languageID, true);
|
if(!KMManager.shouldAllowSetKeyboard()) {
|
||||||
|
sendError(packageID, keyboardID, languageID, "setKeyboard.short failed with shouldAllowSetKeyboard == false");
|
||||||
|
} else {
|
||||||
|
sendError(packageID, keyboardID, languageID, "setKeyboard.short failed with kbInfo == null");
|
||||||
|
}
|
||||||
kbInfo = KeyboardController.getInstance().getKeyboardInfo(0);
|
kbInfo = KeyboardController.getInstance().getKeyboardInfo(0);
|
||||||
retVal = false;
|
retVal = false;
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -632,7 +636,7 @@ final class KMKeyboard extends WebView {
|
||||||
|
|
||||||
if (!KMManager.shouldAllowSetKeyboard() ||
|
if (!KMManager.shouldAllowSetKeyboard() ||
|
||||||
(packageID.equals(KMManager.KMDefault_UndefinedPackageID) && keyboardVersion == null)) {
|
(packageID.equals(KMManager.KMDefault_UndefinedPackageID) && keyboardVersion == null)) {
|
||||||
sendError(packageID, keyboardID, languageID, true);
|
sendError(packageID, keyboardID, languageID, "prepareKeyboardSwitch");
|
||||||
Keyboard kbInfo = KeyboardController.getInstance().getKeyboardInfo(0);
|
Keyboard kbInfo = KeyboardController.getInstance().getKeyboardInfo(0);
|
||||||
packageID = kbInfo.getPackageID();
|
packageID = kbInfo.getPackageID();
|
||||||
keyboardID = kbInfo.getKeyboardID();
|
keyboardID = kbInfo.getKeyboardID();
|
||||||
|
|
@ -684,7 +688,11 @@ final class KMKeyboard extends WebView {
|
||||||
|
|
||||||
if (!KMManager.shouldAllowSetKeyboard() ||
|
if (!KMManager.shouldAllowSetKeyboard() ||
|
||||||
(packageID.equals(KMManager.KMDefault_UndefinedPackageID) && keyboardVersion == null)) {
|
(packageID.equals(KMManager.KMDefault_UndefinedPackageID) && keyboardVersion == null)) {
|
||||||
sendError(packageID, keyboardID, languageID, true);
|
if(!KMManager.shouldAllowSetKeyboard()) {
|
||||||
|
sendError(packageID, keyboardID, languageID, "setKeyboard.full failed with shouldAllowSetKeyboard == false");
|
||||||
|
} else {
|
||||||
|
sendError(packageID, keyboardID, languageID, "setKeyboard.full failed with packageID == KMDefault_UndefinedPackageID and keyboardVersion == null");
|
||||||
|
}
|
||||||
Keyboard kbInfo = KeyboardController.getInstance().getKeyboardInfo(0);
|
Keyboard kbInfo = KeyboardController.getInstance().getKeyboardInfo(0);
|
||||||
packageID = kbInfo.getPackageID();
|
packageID = kbInfo.getPackageID();
|
||||||
keyboardID = kbInfo.getKeyboardID();
|
keyboardID = kbInfo.getKeyboardID();
|
||||||
|
|
@ -780,26 +788,24 @@ final class KMKeyboard extends WebView {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean getChirality() {
|
public boolean getChirality() {
|
||||||
|
|
||||||
return this.isChiral;
|
return this.isChiral;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Display localized Toast notification that keyboard selection failed, so loading default keyboard.
|
/**
|
||||||
// Also sends a message to Sentry (not localized)
|
* Display localized Toast notification that keyboard selection failed, so
|
||||||
private void sendError(String packageID, String keyboardID, String languageID, boolean reportToSentry) {
|
* loading default keyboard. Also sends a message to Sentry (not localized)
|
||||||
|
*/
|
||||||
|
private void sendError(String packageID, String keyboardID, String languageID, String sentryMessage) {
|
||||||
this.currentKeyboardErrorReports++;
|
this.currentKeyboardErrorReports++;
|
||||||
|
|
||||||
if(this.currentKeyboardErrorReports == 1) {
|
if(this.currentKeyboardErrorReports == 1) {
|
||||||
BaseActivity.makeToast(context, R.string.fatal_keyboard_error_short, Toast.LENGTH_LONG, packageID, keyboardID, languageID);
|
BaseActivity.makeToast(context, R.string.fatal_keyboard_error, Toast.LENGTH_LONG, packageID, keyboardID, languageID);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(this.currentKeyboardErrorReports < 5 && DependencyUtil.libraryExists(LibraryType.SENTRY) && Sentry.isEnabled() && reportToSentry) {
|
if(this.currentKeyboardErrorReports < 5 && sentryMessage != null && DependencyUtil.libraryExists(LibraryType.SENTRY) && Sentry.isEnabled()) {
|
||||||
// We'll only report up to 5 errors in a given keyboard to avoid spamming
|
// We'll only report up to 5 errors in a given keyboard to avoid spamming errors and using unnecessary bandwidth doing so
|
||||||
// errors and using unnecessary bandwidth doing so
|
String msg = KMString.format("Script error in keyboard webview\nContext: %4$s\nActive package: %1$s\nActive keyboard: %2$s\nActive language: %3$s",
|
||||||
// Don't use localized string R.string.fatal_keyboard_error msg for Sentry
|
packageID, keyboardID, languageID, sentryMessage);
|
||||||
String msg = KMString.format("Error in keyboard %1$s:%2$s for %3$s language.",
|
|
||||||
packageID, keyboardID, languageID);
|
|
||||||
Sentry.captureMessage(msg);
|
Sentry.captureMessage(msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -80,8 +80,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file">የእገዛ ፋይልን ለማየት ፋይል ፕሮቫይደሩ ቤተ መጽሐፍት ያስፈልገዋል %1$s</string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file">የእገዛ ፋይልን ለማየት ፋይል ፕሮቫይደሩ ቤተ መጽሐፍት ያስፈልገዋል %1$s</string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard">የገበታ ሰሌዳ ፋታል ችግር ዝርዝር %1$s:%2$s ለ %3$s ቋንቋ፤ መደበኛ ቋንቋ ጭኗል።</string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard">የገበታ ሰሌዳ ፋታል ችግር ዝርዝር %1$s:%2$s ለ %3$s ቋንቋ፤ መደበኛ ቋንቋ ጭኗል።</string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language).">የፊደል ገበታ ሰሌዳው ችግር %1$s:%2$s ለ %3$s ቋንቋ።</string>
|
|
||||||
<!-- Context: Query for associated dictionary -->
|
<!-- Context: Query for associated dictionary -->
|
||||||
<string name="query_associated_model" comment="Check if there's an available dictionary to download">ተያያዥነት ያለውን መዝገበ ቃላት ለመጫን እየፈተሸ ነው።</string>
|
<string name="query_associated_model" comment="Check if there's an available dictionary to download">ተያያዥነት ያለውን መዝገበ ቃላት ለመጫን እየፈተሸ ነው።</string>
|
||||||
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download">የሚወርደውን መዝገበ ቃላት ከኪይማን ሰርቨር ጋር መገናኘት አልተቻለም</string>
|
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download">የሚወርደውን መዝገበ ቃላት ከኪይማን ሰርቨር ጋር መገናኘት አልተቻለም</string>
|
||||||
|
|
|
||||||
|
|
@ -88,8 +88,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file">مكتبة FileProvider مطلوبة لعرض ملفات المساعدة: %1$s</string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file">مكتبة FileProvider مطلوبة لعرض ملفات المساعدة: %1$s</string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard">خطأ كبير في لوحة مفاتيح مع %1$s:%2$s لأجل لغة %3$s. سيتم تحميل لوحة المفاتيح الأساسية.</string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard">خطأ كبير في لوحة مفاتيح مع %1$s:%2$s لأجل لغة %3$s. سيتم تحميل لوحة المفاتيح الأساسية.</string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language).">خطأ في لوحة مفاتيح %1$s:%2$s لأجل لغة %3$s.</string>
|
|
||||||
<!-- Context: Query for associated dictionary -->
|
<!-- Context: Query for associated dictionary -->
|
||||||
<string name="query_associated_model" comment="Check if there's an available dictionary to download">يجري التحقق من قاموس ذي صلة للتحميل</string>
|
<string name="query_associated_model" comment="Check if there's an available dictionary to download">يجري التحقق من قاموس ذي صلة للتحميل</string>
|
||||||
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> لا يمكن الاتصال بخادم Keyman للتحقق من تنزيل القاموس المرتبط</string>
|
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> لا يمكن الاتصال بخادم Keyman للتحقق من تنزيل القاموس المرتبط</string>
|
||||||
|
|
|
||||||
|
|
@ -80,8 +80,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file">FileProvider (Fayl Təminatçısı) kitabxanasına kömək sənədinə baxmaq lazımdır:%1$s</string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file">FileProvider (Fayl Təminatçısı) kitabxanasına kömək sənədinə baxmaq lazımdır:%1$s</string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard">%3$s dili üçün %1$s ilə ölümcül klaviatura xətası :%3$s dili üçün %2$s. Varsayılan klaviatura yüklənir.</string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard">%3$s dili üçün %1$s ilə ölümcül klaviatura xətası :%3$s dili üçün %2$s. Varsayılan klaviatura yüklənir.</string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language).">%3$s dil üçün %1$s:%2$s klaviaturasında xəta.</string>
|
|
||||||
<!-- Context: Query for associated dictionary -->
|
<!-- Context: Query for associated dictionary -->
|
||||||
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Yükləmək üçün əlaqəli lüğət yoxlanılır</string>
|
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Yükləmək üçün əlaqəli lüğət yoxlanılır</string>
|
||||||
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Cannot connect to Keyman server to check for associated dictionary to download</string>
|
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Cannot connect to Keyman server to check for associated dictionary to download</string>
|
||||||
|
|
|
||||||
|
|
@ -80,8 +80,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file">Ἀπαιτεῖται βιβλιοθήκη FileProvider γιὰ νὰ δεῖτε ἀρχεῖο βοηθείας: %1$s</string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file">Ἀπαιτεῖται βιβλιοθήκη FileProvider γιὰ νὰ δεῖτε ἀρχεῖο βοηθείας: %1$s</string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard">Μοιραῖο σφάλμα πληκτρολογίου στὸ %1$s:%2$s γιὰ τὴν %3$s γλῶσσα. Φορτώνεται προεπιλεγμένο πληκτρολόγιο.</string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard">Μοιραῖο σφάλμα πληκτρολογίου στὸ %1$s:%2$s γιὰ τὴν %3$s γλῶσσα. Φορτώνεται προεπιλεγμένο πληκτρολόγιο.</string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language).">Σφάλμα στὸ πληκτρολόγιο %1$s:%2$s γιὰ τὴν γλῶσσα \"%3$s\".</string>
|
|
||||||
<!-- Context: Query for associated dictionary -->
|
<!-- Context: Query for associated dictionary -->
|
||||||
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Ἀναζήτηση σχετικοῦ λεξικοῦ πρὸς μεταφόρτωσιν</string>
|
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Ἀναζήτηση σχετικοῦ λεξικοῦ πρὸς μεταφόρτωσιν</string>
|
||||||
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download">Ἀδυναμία συνδέσεως μὲ τὸν διακομιστὴ Keyman γιὰ τὴν εὕρεση σχετικοῦ λεξικοῦ πρὸς μεταφόρτωσιν</string>
|
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download">Ἀδυναμία συνδέσεως μὲ τὸν διακομιστὴ Keyman γιὰ τὴν εὕρεση σχετικοῦ λεξικοῦ πρὸς μεταφόρτωσιν</string>
|
||||||
|
|
|
||||||
|
|
@ -80,8 +80,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> Se necesita la librería FileProvider para ver el archivo de ayuda: %1$s</string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> Se necesita la librería FileProvider para ver el archivo de ayuda: %1$s</string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Error fatal del teclado con %1$s:%2$s para el idioma %3$s. Cargando teclado predeterminado.</string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Error fatal del teclado con %1$s:%2$s para el idioma %3$s. Cargando teclado predeterminado.</string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language)."> Error en el teclado %1$s:%2$s para el idioma %3$s.</string>
|
|
||||||
<!-- Context: Alert Dialog body: System WebView not installed -->
|
<!-- Context: Alert Dialog body: System WebView not installed -->
|
||||||
<string name="body_install_webview" comment="Notification when WebView not installed"> Keyman requiere que WebView esté instalado.\"</string>
|
<string name="body_install_webview" comment="Notification when WebView not installed"> Keyman requiere que WebView esté instalado.\"</string>
|
||||||
<!-- Context: Alert Dialog body: System WebView installed but not enabled -->
|
<!-- Context: Alert Dialog body: System WebView installed but not enabled -->
|
||||||
|
|
|
||||||
|
|
@ -84,8 +84,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file">FilProvider library bindawar ley fakkakanal shu\'ul da: %1$s</string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file">FilProvider library bindawar ley fakkakanal shu\'ul da: %1$s</string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard">Mushkila kabirey bey %1$s:%2$s layl %3$s lugga. Dassasan shabal keyboard hanal gabul.</string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard">Mushkila kabirey bey %1$s:%2$s layl %3$s lugga. Dassasan shabal keyboard hanal gabul.</string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language).">Mushkila fyl keyboard %1$s:%2$s layl %3$s lugga.</string>
|
|
||||||
<!-- Context: Query for associated dictionary -->
|
<!-- Context: Query for associated dictionary -->
|
||||||
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Shafiyan kakkad abu kalimat shaba da ley dassasana</string>
|
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Shafiyan kakkad abu kalimat shaba da ley dassasana</string>
|
||||||
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Cannot connect to Keyman server to check for associated dictionary to download</string>
|
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Cannot connect to Keyman server to check for associated dictionary to download</string>
|
||||||
|
|
|
||||||
|
|
@ -80,8 +80,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> Mda akwa bara library na ar FileProvider kamnyar ka mdǝ wutǝ fayil ar dlara: %1$s</string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> Mda akwa bara library na ar FileProvider kamnyar ka mdǝ wutǝ fayil ar dlara: %1$s</string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Dametǝdzi na ar Fatal akwa keyboard ka %1$s:%2$s ala %3$s hulfur mnya. Akwa hara lodi ar default keyboard.</string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Dametǝdzi na ar Fatal akwa keyboard ka %1$s:%2$s ala %3$s hulfur mnya. Akwa hara lodi ar default keyboard.</string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language)."> Dametǝdzi akwa keyboard %1$s:%2$s na ar %3$s hulfur mnya.</string>
|
|
||||||
<!-- Context: Query for associated dictionary -->
|
<!-- Context: Query for associated dictionary -->
|
||||||
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Akwa pakǝ dictionary na kǝɓa kari kamnyar katsa hara dawunlodi ni</string>
|
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Akwa pakǝ dictionary na kǝɓa kari kamnyar katsa hara dawunlodi ni</string>
|
||||||
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Cannot connect to Keyman server to check for associated dictionary to download</string>
|
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Cannot connect to Keyman server to check for associated dictionary to download</string>
|
||||||
|
|
|
||||||
|
|
@ -80,8 +80,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> Gada bara library nǝr FileProvider akuyaka gǝ wul su akwa fail nǝr dlarɛ: %1$s</string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> Gada bara library nǝr FileProvider akuyaka gǝ wul su akwa fail nǝr dlarɛ: %1$s</string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Fatal keyboard error with %1$s:%2$s for %3$s language. Loading default keyboard.</string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Fatal keyboard error with %1$s:%2$s for %3$s language. Loading default keyboard.</string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language)."> Su kura kal kalakwa kibod %1$s:%2$s nǝr %3$s nya.</string>
|
|
||||||
<!-- Context: Query for associated dictionary -->
|
<!-- Context: Query for associated dictionary -->
|
||||||
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Ata kǝra chakǝnta akuyaka ɓui suyere tara tsukwar bwar dictionary kadǝbar ka ndǝ download ko sǝgǝl akǝr</string>
|
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Ata kǝra chakǝnta akuyaka ɓui suyere tara tsukwar bwar dictionary kadǝbar ka ndǝ download ko sǝgǝl akǝr</string>
|
||||||
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Gadiyata mǝzi bui sava nǝr Keyman wɛ akuya ka gǝ bui ka sǝgǝl aka jiliyir dikshinari namtǝ gada bara. </string>
|
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Gadiyata mǝzi bui sava nǝr Keyman wɛ akuya ka gǝ bui ka sǝgǝl aka jiliyir dikshinari namtǝ gada bara. </string>
|
||||||
|
|
|
||||||
|
|
@ -84,8 +84,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> Knihovna FileProvider potřebná k zobrazení nápovědy: %1$s</string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> Knihovna FileProvider potřebná k zobrazení nápovědy: %1$s</string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Fatální chyba klávesnice s %1$s:%2$s pro jazyk %3$s . Načítání výchozí klávesnice.</string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Fatální chyba klávesnice s %1$s:%2$s pro jazyk %3$s . Načítání výchozí klávesnice.</string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language)."> Chyba v klávesnici %1$s:%2$s pro jazyk %3$s.</string>
|
|
||||||
<!-- Context: Alert Dialog body: System WebView not installed -->
|
<!-- Context: Alert Dialog body: System WebView not installed -->
|
||||||
<string name="body_install_webview" comment="Notification when WebView not installed">Keyman vyžaduje, aby byl nainstalován WebView.“</string>
|
<string name="body_install_webview" comment="Notification when WebView not installed">Keyman vyžaduje, aby byl nainstalován WebView.“</string>
|
||||||
<!-- Context: Alert Dialog body: System WebView installed but not enabled -->
|
<!-- Context: Alert Dialog body: System WebView installed but not enabled -->
|
||||||
|
|
|
||||||
|
|
@ -80,8 +80,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> FileProvider-Bibliothek zum Anzeigen der Hilfe-Datei: %1$s</string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> FileProvider-Bibliothek zum Anzeigen der Hilfe-Datei: %1$s</string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Fataler Tastaturfehler mit %1$s:%2$s für %3$s Sprache. Standard-Tastatur wird geladen.</string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Fataler Tastaturfehler mit %1$s:%2$s für %3$s Sprache. Standard-Tastatur wird geladen.</string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language)."> Fehler in Tastatur %1$s:%2$s für %3$s Sprache.</string>
|
|
||||||
<!-- Context: Alert Dialog body: System WebView not installed -->
|
<!-- Context: Alert Dialog body: System WebView not installed -->
|
||||||
<string name="body_install_webview" comment="Notification when WebView not installed"> Keyman benötigt die Installation von WebView.\"</string>
|
<string name="body_install_webview" comment="Notification when WebView not installed"> Keyman benötigt die Installation von WebView.\"</string>
|
||||||
<!-- Context: Alert Dialog body: System WebView installed but not enabled -->
|
<!-- Context: Alert Dialog body: System WebView installed but not enabled -->
|
||||||
|
|
|
||||||
|
|
@ -80,8 +80,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> Biblioteca de FileProvider necesaria para ver el archivo de ayuda: %1$s</string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> Biblioteca de FileProvider necesaria para ver el archivo de ayuda: %1$s</string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Error de teclado fatal con %1$s:%2$s para %3$s idioma. Cargando teclado predeterminado.</string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Error de teclado fatal con %1$s:%2$s para %3$s idioma. Cargando teclado predeterminado.</string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language)."> Error en el teclado %1$s:%2$s para %3$s idioma.</string>
|
|
||||||
<!-- Context: Alert Dialog body: System WebView not installed -->
|
<!-- Context: Alert Dialog body: System WebView not installed -->
|
||||||
<string name="body_install_webview" comment="Notification when WebView not installed"> Keyman requiere que WebView esté instalado.\"</string>
|
<string name="body_install_webview" comment="Notification when WebView not installed"> Keyman requiere que WebView esté instalado.\"</string>
|
||||||
<!-- Context: Alert Dialog body: System WebView installed but not enabled -->
|
<!-- Context: Alert Dialog body: System WebView installed but not enabled -->
|
||||||
|
|
|
||||||
|
|
@ -80,8 +80,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> Babal fayel ɗo mari haaje laarugo fayel mballa: %1$s </string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> Babal fayel ɗo mari haaje laarugo fayel mballa: %1$s </string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Kibod man wari bee masala bee %1$s:%2$s jee %3$s ɗemngal. Ɗo nastina kibod ko naftirta. </string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Kibod man wari bee masala bee %1$s:%2$s jee %3$s ɗemngal. Ɗo nastina kibod ko naftirta. </string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language)."> Masala nder kibod %1$s:%2$s jee %3$s ɗemngal. </string>
|
|
||||||
<!-- Context: Query for associated dictionary -->
|
<!-- Context: Query for associated dictionary -->
|
||||||
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Ɗo tefa deftere ma`ana kalimaji ngam jippina</string>
|
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Ɗo tefa deftere ma`ana kalimaji ngam jippina</string>
|
||||||
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Waawaa seŋaade e sarworde Keyman ngam ƴeewtaade so saggitorde yahdoonde heen ena woodi</string>
|
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Waawaa seŋaade e sarworde Keyman ngam ƴeewtaade so saggitorde yahdoonde heen ena woodi</string>
|
||||||
|
|
|
||||||
|
|
@ -80,8 +80,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file">Deftordu FileProvider ena soklaa ngam yiyde fiilde ballal: %1$s</string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file">Deftordu FileProvider ena soklaa ngam yiyde fiilde ballal: %1$s</string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard">Juumre tappirde halkoore e %1$s: %2$s mo ɗemngal %3$s. Nana loowa tappirde woowaande.</string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard">Juumre tappirde halkoore e %1$s: %2$s mo ɗemngal %3$s. Nana loowa tappirde woowaande.</string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language)."> Juumre e tappirde %1$s:%2$s ɗemngal %3$s language.</string>
|
|
||||||
<!-- Context: Query for associated dictionary -->
|
<!-- Context: Query for associated dictionary -->
|
||||||
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Nana ƴeewtoo saggitorde yahdiinde ngam aawtaade</string>
|
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Nana ƴeewtoo saggitorde yahdiinde ngam aawtaade</string>
|
||||||
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download">Waawaa seŋaade e sarworde Keyman ngam ƴeewtaade so saggitorde aawtoonde ena woodi</string>
|
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download">Waawaa seŋaade e sarworde Keyman ngam ƴeewtaade so saggitorde aawtoonde ena woodi</string>
|
||||||
|
|
|
||||||
|
|
@ -80,8 +80,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> Librairie FileProvider nécessaire pour afficher le fichier d\'aide : %1$s</string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> Librairie FileProvider nécessaire pour afficher le fichier d\'aide : %1$s</string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Erreur fatale de clavier avec %1$s:%2$s pour %3$s langue. Chargement du clavier par défaut.</string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Erreur fatale de clavier avec %1$s:%2$s pour %3$s langue. Chargement du clavier par défaut.</string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language)."> Erreur dans le clavier %1$s:%2$s pour la langue %3$s.</string>
|
|
||||||
<!-- Context: Query for associated dictionary -->
|
<!-- Context: Query for associated dictionary -->
|
||||||
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Vérification du dictionnaire associé à télécharger</string>
|
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Vérification du dictionnaire associé à télécharger</string>
|
||||||
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Impossible de se connecter au serveur Keyman pour chercher un dictionnaire à télécharger</string>
|
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Impossible de se connecter au serveur Keyman pour chercher un dictionnaire à télécharger</string>
|
||||||
|
|
|
||||||
|
|
@ -80,8 +80,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file">Ana buƙatar wajen karatu na FileProvider domin duba fayil ɗin taimako: %1$s</string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file">Ana buƙatar wajen karatu na FileProvider domin duba fayil ɗin taimako: %1$s</string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard">Matsalar madanni da %1$s:%2$s domin %3$s yaruka. Saukar da madanni mai kyau.</string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard">Matsalar madanni da %1$s:%2$s domin %3$s yaruka. Saukar da madanni mai kyau.</string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language).">Kuskure a yaren %1$s:%2$s for %3$s madanni.</string>
|
|
||||||
<!-- Context: Query for associated dictionary -->
|
<!-- Context: Query for associated dictionary -->
|
||||||
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Duba ƙamus mai alaƙa domin a sauke</string>
|
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Duba ƙamus mai alaƙa domin a sauke</string>
|
||||||
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Cannot connect to Keyman server to check for associated dictionary to download</string>
|
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Cannot connect to Keyman server to check for associated dictionary to download</string>
|
||||||
|
|
|
||||||
|
|
@ -82,8 +82,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> FileProvider library needed to view help file: %1$s</string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> FileProvider library needed to view help file: %1$s</string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Fatal keyboard nda kuskure %1$s:%2$s anga %3$s gwaɗaha luwa. Kalt girgira keyboard.</string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Fatal keyboard nda kuskure %1$s:%2$s anga %3$s gwaɗaha luwa. Kalt girgira keyboard.</string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language)."> Kuskure an keyboard %1$s:%2$s for %3$s gwaɗa luwa.</string>
|
|
||||||
<!-- Context: Query for associated dictionary -->
|
<!-- Context: Query for associated dictionary -->
|
||||||
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Naghata anga gwaft dictionary da sangata</string>
|
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Naghata anga gwaft dictionary da sangata</string>
|
||||||
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Cannot connect to Keyman server to check for associated dictionary to download</string>
|
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Cannot connect to Keyman server to check for associated dictionary to download</string>
|
||||||
|
|
|
||||||
|
|
@ -78,8 +78,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file">Butuh FileProvider library untuk menampilkan berkas bantuan: %1$s</string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file">Butuh FileProvider library untuk menampilkan berkas bantuan: %1$s</string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard">Terjadi masalah dengan papan tombol %1$s:%2$s untuk bahasa %3$s. Papan tombol diubah ke setelah baku.</string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard">Terjadi masalah dengan papan tombol %1$s:%2$s untuk bahasa %3$s. Papan tombol diubah ke setelah baku.</string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language)."> Error in keyboard %1$s:%2$s for %3$s language.</string>
|
|
||||||
<!-- Context: Query for associated dictionary -->
|
<!-- Context: Query for associated dictionary -->
|
||||||
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Mengecek kamus yang terkait untuk diunduh</string>
|
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Mengecek kamus yang terkait untuk diunduh</string>
|
||||||
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Cannot connect to Keyman server to check for associated dictionary to download</string>
|
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Cannot connect to Keyman server to check for associated dictionary to download</string>
|
||||||
|
|
|
||||||
|
|
@ -80,8 +80,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> Libreria FileProvider necessaria per visualizzare il file d\'aiuto: %1$s</string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> Libreria FileProvider necessaria per visualizzare il file d\'aiuto: %1$s</string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Errore fatale della tastiera con %1$s:%2$s per %3$s lingua. Caricamento tastiera predefinita.</string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Errore fatale della tastiera con %1$s:%2$s per %3$s lingua. Caricamento tastiera predefinita.</string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language)."> Errore nella tastiera %1$s:%2$s per %3$s lingua.</string>
|
|
||||||
<!-- Context: Alert Dialog body: System WebView not installed -->
|
<!-- Context: Alert Dialog body: System WebView not installed -->
|
||||||
<string name="body_install_webview" comment="Notification when WebView not installed"> Keyman richiede che WebView sia installato.\"</string>
|
<string name="body_install_webview" comment="Notification when WebView not installed"> Keyman richiede che WebView sia installato.\"</string>
|
||||||
<!-- Context: Alert Dialog body: System WebView installed but not enabled -->
|
<!-- Context: Alert Dialog body: System WebView installed but not enabled -->
|
||||||
|
|
|
||||||
|
|
@ -78,8 +78,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> ត្រូវការបណ្ណាល័យ FileProvider ដើម្បីមើលឯកសារជំនួយ៖ %1$s</string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> ត្រូវការបណ្ណាល័យ FileProvider ដើម្បីមើលឯកសារជំនួយ៖ %1$s</string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> មានបញ្ហាធ្ងន់ធ្ងរចំពោះក្ដារចុច %1$s:%2$s សម្រាប់ភាសា %3$s។ កំពុងផ្ទុកក្ដារចុចលំនាំដើម។</string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> មានបញ្ហាធ្ងន់ធ្ងរចំពោះក្ដារចុច %1$s:%2$s សម្រាប់ភាសា %3$s។ កំពុងផ្ទុកក្ដារចុចលំនាំដើម។</string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language)."> បញ្ហាក្នុងក្ដារចុច %1$s:%2$s សម្រាប់ភាសា %3$s។</string>
|
|
||||||
<!-- Context: Alert Dialog body: System WebView not installed -->
|
<!-- Context: Alert Dialog body: System WebView not installed -->
|
||||||
<string name="body_install_webview" comment="Notification when WebView not installed">Keyman តម្រូវឱ្យដំឡើង WebView ។\"</string>
|
<string name="body_install_webview" comment="Notification when WebView not installed">Keyman តម្រូវឱ្យដំឡើង WebView ។\"</string>
|
||||||
<!-- Context: Alert Dialog body: System WebView installed but not enabled -->
|
<!-- Context: Alert Dialog body: System WebView installed but not enabled -->
|
||||||
|
|
|
||||||
|
|
@ -80,8 +80,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file">ಸಹಾಯ ಫೈಲ್ ವೀಕ್ಷಿಸಲು FileProvider ಲೈಬ್ರರಿ ಅಗತ್ಯವಿದೆ: %1$s</string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file">ಸಹಾಯ ಫೈಲ್ ವೀಕ್ಷಿಸಲು FileProvider ಲೈಬ್ರರಿ ಅಗತ್ಯವಿದೆ: %1$s</string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard">%1$s:%2$s ಕೀಲಿಮಣೆಯಲ್ಲಿ %3$s ಭಾಷೆಯೊಂದಿಗೆ ದೋಷವಿದೆ. ಅದರ ಬದಲಿಗೆ ಪೂರ್ವನಿರ್ಧರಿತ ಕೀಲಿಮಣೆ ಲೋಡ್ ಆಗುತ್ತಿದೆ.</string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard">%1$s:%2$s ಕೀಲಿಮಣೆಯಲ್ಲಿ %3$s ಭಾಷೆಯೊಂದಿಗೆ ದೋಷವಿದೆ. ಅದರ ಬದಲಿಗೆ ಪೂರ್ವನಿರ್ಧರಿತ ಕೀಲಿಮಣೆ ಲೋಡ್ ಆಗುತ್ತಿದೆ.</string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language).">%1$s:%2$s ಕೀಲಿಮಣೆಯಲ್ಲಿ %3$s ಭಾಷೆಯೊಂದಿಗೆ ದೋಷವಿದೆ.</string>
|
|
||||||
<!-- Context: Query for associated dictionary -->
|
<!-- Context: Query for associated dictionary -->
|
||||||
<string name="query_associated_model" comment="Check if there's an available dictionary to download">ಸಂಬಂಧಿಸಿದ ಶಬ್ದಕೋಶವನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಲು ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ</string>
|
<string name="query_associated_model" comment="Check if there's an available dictionary to download">ಸಂಬಂಧಿಸಿದ ಶಬ್ದಕೋಶವನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಲು ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ</string>
|
||||||
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download">ಸಂಬಂಧಿಸಿದ ಶಬ್ದಕೋಶವನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಲು ಕೀಮ್ಯಾನ್ ಸರ್ವರ್ ಅನ್ನು ಸಂಪರ್ಕಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲಾ</string>
|
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download">ಸಂಬಂಧಿಸಿದ ಶಬ್ದಕೋಶವನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಲು ಕೀಮ್ಯಾನ್ ಸರ್ವರ್ ಅನ್ನು ಸಂಪರ್ಕಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲಾ</string>
|
||||||
|
|
|
||||||
|
|
@ -80,8 +80,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> FileProvider library needed to view help file: %1$s</string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> FileProvider library needed to view help file: %1$s</string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Fatal keyboard error with %1$s:%2$s for %3$s language. Loading default keyboard.</string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Fatal keyboard error with %1$s:%2$s for %3$s language. Loading default keyboard.</string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language).">Taltǝ keyboard dǝn mbeji %1$s:%2$s for %3$s tǝlama.</string>
|
|
||||||
<!-- Context: Query for associated dictionary -->
|
<!-- Context: Query for associated dictionary -->
|
||||||
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Dictionary shiro kǝllata mane download nzǝ diye</string>
|
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Dictionary shiro kǝllata mane download nzǝ diye</string>
|
||||||
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Cannot connect to Keyman server to check for associated dictionary to download</string>
|
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Cannot connect to Keyman server to check for associated dictionary to download</string>
|
||||||
|
|
|
||||||
|
|
@ -80,8 +80,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> FileProvider library a kátá zhara file mla: %1$s</string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> FileProvider library a kátá zhara file mla: %1$s</string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Kuskure Fatal keyboard antara%1$s:%2$s gé %3$s nare. femhe nde default keyboard.</string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Kuskure Fatal keyboard antara%1$s:%2$s gé %3$s nare. femhe nde default keyboard.</string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language)."> Kuskure am keyboard %1$s:%2$s for %3$s nare.</string>
|
|
||||||
<!-- Context: Query for associated dictionary -->
|
<!-- Context: Query for associated dictionary -->
|
||||||
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Zharanahe dictionary harzhe gé tsukwanahe</string>
|
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Zharanahe dictionary harzhe gé tsukwanahe</string>
|
||||||
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Cannot connect to Keyman server to check for associated dictionary to download</string>
|
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Cannot connect to Keyman server to check for associated dictionary to download</string>
|
||||||
|
|
|
||||||
|
|
@ -78,8 +78,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> တၚ်နၚ်လိက် FileProvider မိက်ဂွံဗဵု ဝှါၚ်အရီုဗၚ်: %1$s</string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> တၚ်နၚ်လိက် FileProvider မိက်ဂွံဗဵု ဝှါၚ်အရီုဗၚ်: %1$s</string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> ကဳဗုဒ်ယောၚ်ယာဇၞော်ဇၞော်နကဵု %1$s:%2$s သွက် ဘာသာ %3$s ။ ဂြဲပ္တိုန်မံၚ် ကဳဗုဒ်ပကတိ။</string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> ကဳဗုဒ်ယောၚ်ယာဇၞော်ဇၞော်နကဵု %1$s:%2$s သွက် ဘာသာ %3$s ။ ဂြဲပ္တိုန်မံၚ် ကဳဗုဒ်ပကတိ။</string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language)."> တၚ်ယောၚ်ယာ ပ္ဍဲကဳဗုဒ် %1$s:%2$s သွက် ဘာသာ %3$s</string>
|
|
||||||
<!-- Context: Alert Dialog body: System WebView not installed -->
|
<!-- Context: Alert Dialog body: System WebView not installed -->
|
||||||
<string name="body_install_webview" comment="Notification when WebView not installed">သ္ဂောံဂြဲဖျေံ Keyman ဂှ် ဒးသုၚ်စောဲ WebView ရောၚ်။</string>
|
<string name="body_install_webview" comment="Notification when WebView not installed">သ္ဂောံဂြဲဖျေံ Keyman ဂှ် ဒးသုၚ်စောဲ WebView ရောၚ်။</string>
|
||||||
<!-- Context: Alert Dialog body: System WebView installed but not enabled -->
|
<!-- Context: Alert Dialog body: System WebView installed but not enabled -->
|
||||||
|
|
|
||||||
|
|
@ -80,8 +80,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file">FileProvider library needed to view help file: %1$s</string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file">FileProvider library needed to view help file: %1$s</string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Fatal keyboard error with %1$s:%2$s for %3$s language. Loading default keyboard.</string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Fatal keyboard error with %1$s:%2$s for %3$s language. Loading default keyboard.</string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language).">Ŋya nur keyboard %1$s:%2$s anu %3$s kra kalkal.</string>
|
|
||||||
<!-- Context: Query for associated dictionary -->
|
<!-- Context: Query for associated dictionary -->
|
||||||
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Luba dictionary kuku nagu acittu downloadi</string>
|
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Luba dictionary kuku nagu acittu downloadi</string>
|
||||||
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Cannot connect to Keyman server to check for associated dictionary to download</string>
|
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Cannot connect to Keyman server to check for associated dictionary to download</string>
|
||||||
|
|
|
||||||
|
|
@ -80,8 +80,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> FileProvider bibliotheek nodig om het hulpbestand te bekijken: %1$s</string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> FileProvider bibliotheek nodig om het hulpbestand te bekijken: %1$s</string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Fatale toetsenbord fout met %1$s:%2$s voor %3$s taal. Standaard toetsenbord wordt geladen.</string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Fatale toetsenbord fout met %1$s:%2$s voor %3$s taal. Standaard toetsenbord wordt geladen.</string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language)."> Fout in toetsenbord %1$s:%2$s voor %3$s taal.</string>
|
|
||||||
<!-- Context: Query for associated dictionary -->
|
<!-- Context: Query for associated dictionary -->
|
||||||
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Downloaden van bijbehorende woordenboek</string>
|
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Downloaden van bijbehorende woordenboek</string>
|
||||||
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Cannot connect to Keyman server to check for associated dictionary to download</string>
|
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Cannot connect to Keyman server to check for associated dictionary to download</string>
|
||||||
|
|
|
||||||
|
|
@ -84,8 +84,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> Biblioteka FileProvider potrzebna, aby wyświetlić plik pomocy: %1$s</string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> Biblioteka FileProvider potrzebna, aby wyświetlić plik pomocy: %1$s</string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Błąd krytycznej klawiatury z %1$s:%2$s dla %3$s języka. Ładowanie domyślnej klawiatury.</string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Błąd krytycznej klawiatury z %1$s:%2$s dla %3$s języka. Ładowanie domyślnej klawiatury.</string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language)."> Błąd w klawiaturze %1$s:%2$s dla %3$s języka.</string>
|
|
||||||
<!-- Context: Query for associated dictionary -->
|
<!-- Context: Query for associated dictionary -->
|
||||||
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Sprawdzanie dla skojarzonego słownika do pobrania</string>
|
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Sprawdzanie dla skojarzonego słownika do pobrania</string>
|
||||||
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Cannot connect to Keyman server to check for associated dictionary to download</string>
|
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Cannot connect to Keyman server to check for associated dictionary to download</string>
|
||||||
|
|
|
||||||
|
|
@ -80,8 +80,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> Biblioteca de FileProvider necessária para ver o arquivo de ajuda: %1$s</string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> Biblioteca de FileProvider necessária para ver o arquivo de ajuda: %1$s</string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Erro fatal de teclado com %1$s:%2$s para %3$s idioma. Carregando o teclado padrão.</string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Erro fatal de teclado com %1$s:%2$s para %3$s idioma. Carregando o teclado padrão.</string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language)."> Erro no teclado %1$s:%2$s para %3$s idioma.</string>
|
|
||||||
<!-- Context: Alert Dialog body: System WebView not installed -->
|
<!-- Context: Alert Dialog body: System WebView not installed -->
|
||||||
<string name="body_install_webview" comment="Notification when WebView not installed"> Keyman requer que o WebView seja instalado.\"</string>
|
<string name="body_install_webview" comment="Notification when WebView not installed"> Keyman requer que o WebView seja instalado.\"</string>
|
||||||
<!-- Context: Alert Dialog body: System WebView installed but not enabled -->
|
<!-- Context: Alert Dialog body: System WebView installed but not enabled -->
|
||||||
|
|
|
||||||
|
|
@ -84,8 +84,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> Библиотека файлового провайдера необходима для просмотра файла справки: %1$s</string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> Библиотека файлового провайдера необходима для просмотра файла справки: %1$s</string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Неустранимая ошибка клавиатуры %1$s:%2$s для %3$s языка. Загрузка по умолчанию клавиатуры.</string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Неустранимая ошибка клавиатуры %1$s:%2$s для %3$s языка. Загрузка по умолчанию клавиатуры.</string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language)."> Ошибка в клавиатуре %1$s:%2$s для языка %3$s.</string>
|
|
||||||
<!-- Context: Query for associated dictionary -->
|
<!-- Context: Query for associated dictionary -->
|
||||||
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Проверка соответствующего словаря для загрузки</string>
|
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Проверка соответствующего словаря для загрузки</string>
|
||||||
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Cannot connect to Keyman server to check for associated dictionary to download</string>
|
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Cannot connect to Keyman server to check for associated dictionary to download</string>
|
||||||
|
|
|
||||||
|
|
@ -80,8 +80,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> Filleverantörsbibliotek behövs för att visa hjälpfilen: %1$s</string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> Filleverantörsbibliotek behövs för att visa hjälpfilen: %1$s</string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Kritiskt tangentbordsfel med %1$s:%2$s för %3$s språk. Laddar standardtangentbordet.</string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Kritiskt tangentbordsfel med %1$s:%2$s för %3$s språk. Laddar standardtangentbordet.</string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language)."> Fel i tangentbordet %1$s:%2$s för %3$s språk.</string>
|
|
||||||
<!-- Context: Query for associated dictionary -->
|
<!-- Context: Query for associated dictionary -->
|
||||||
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Söker efter tillhörande ordbok att ladda ner</string>
|
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Söker efter tillhörande ordbok att ladda ner</string>
|
||||||
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Cannot connect to Keyman server to check for associated dictionary to download</string>
|
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Cannot connect to Keyman server to check for associated dictionary to download</string>
|
||||||
|
|
|
||||||
|
|
@ -84,8 +84,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> Бібліотека FileProvider необхідна для перегляду файлу довідки: %1$s</string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> Бібліотека FileProvider необхідна для перегляду файлу довідки: %1$s</string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Критична помилка в клавіатурі з %1$s:%2$s для мови %3$s . Завантаження клавіатури за замовчуванням.</string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> Критична помилка в клавіатурі з %1$s:%2$s для мови %3$s . Завантаження клавіатури за замовчуванням.</string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language)."> Помилка в клавіатурі %1$s:%2$s для мови %3$s.</string>
|
|
||||||
<!-- Context: Query for associated dictionary -->
|
<!-- Context: Query for associated dictionary -->
|
||||||
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Перевірка пов\'язаного словника для завантаження</string>
|
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Перевірка пов\'язаного словника для завантаження</string>
|
||||||
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Cannot connect to Keyman server to check for associated dictionary to download</string>
|
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> Cannot connect to Keyman server to check for associated dictionary to download</string>
|
||||||
|
|
|
||||||
|
|
@ -78,8 +78,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file">Cần có Thư viện FileProvider để xem phần trợ giúp file: %1$s</string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file">Cần có Thư viện FileProvider để xem phần trợ giúp file: %1$s</string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard">Lỗi bàn phím nghiêm trọng với %1$s: %2$s cho ngôn ngữ %3$s. Đang tải bàn phím mặc định.</string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard">Lỗi bàn phím nghiêm trọng với %1$s: %2$s cho ngôn ngữ %3$s. Đang tải bàn phím mặc định.</string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language).">Lỗi trong bàn phím %1$s:%2$s cho ngôn ngữ %3$s.</string>
|
|
||||||
<!-- Context: Alert Dialog body: System WebView not installed -->
|
<!-- Context: Alert Dialog body: System WebView not installed -->
|
||||||
<string name="body_install_webview" comment="Notification when WebView not installed"> Keyman yêu cầu phải cài đặt WebView\".</string>
|
<string name="body_install_webview" comment="Notification when WebView not installed"> Keyman yêu cầu phải cài đặt WebView\".</string>
|
||||||
<!-- Context: Alert Dialog body: System WebView installed but not enabled -->
|
<!-- Context: Alert Dialog body: System WebView installed but not enabled -->
|
||||||
|
|
|
||||||
|
|
@ -78,8 +78,6 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> 需要文件提供者文库来查看帮助文件: %1$s</string>
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file"> 需要文件提供者文库来查看帮助文件: %1$s</string>
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> %1$s键盘错误:%2$s为%3$s 语言。正在加载默认键盘。</string>
|
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard"> %1$s键盘错误:%2$s为%3$s 语言。正在加载默认键盘。</string>
|
||||||
<!-- Context: Fatal keyboard error. -->
|
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language)."> 对于 %3$s 语言,键盘出现错误 %1$s:%2$s 。</string>
|
|
||||||
<!-- Context: Query for associated dictionary -->
|
<!-- Context: Query for associated dictionary -->
|
||||||
<string name="query_associated_model" comment="Check if there's an available dictionary to download">正在检查相关字典以下载</string>
|
<string name="query_associated_model" comment="Check if there's an available dictionary to download">正在检查相关字典以下载</string>
|
||||||
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> 无法连接到 Keyman 服务器以检查要下载的相关字典</string>
|
<string name="cannot_query_associated_model" comment="Cannot reach server to check if there's an available dictionary to download"> 无法连接到 Keyman 服务器以检查要下载的相关字典</string>
|
||||||
|
|
|
||||||
|
|
@ -123,13 +123,9 @@
|
||||||
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file">
|
<string name="fileprovider_undefined" comment="FileProvider library needed to view help file">
|
||||||
FileProvider library needed to view help file: %1$s</string>
|
FileProvider library needed to view help file: %1$s</string>
|
||||||
|
|
||||||
<!-- Context: Fatal keyboard error. Will load default keyboard -->
|
|
||||||
<string name="fatal_keyboard_error" comment="Fatal keyboard error (keyboard ID::packageID for language). Will load default keyboard">
|
|
||||||
Fatal keyboard error with %1$s:%2$s for %3$s language. Loading default keyboard.</string>
|
|
||||||
|
|
||||||
<!-- Context: Fatal keyboard error. -->
|
<!-- Context: Fatal keyboard error. -->
|
||||||
<string name="fatal_keyboard_error_short" comment="Error in keyboard (keyboard ID::packageID for language).">
|
<string name="fatal_keyboard_error" comment="Displays as a toast. Generally caused by a script error in keyboard view context, may be caused by keyboard or KeymanWeb.">
|
||||||
Error in keyboard %1$s:%2$s for %3$s language.</string>
|
Keyman encountered an error and will restart</string>
|
||||||
|
|
||||||
<!-- Context: Alert Dialog body: System WebView not installed -->
|
<!-- Context: Alert Dialog body: System WebView not installed -->
|
||||||
<string name="body_install_webview" comment="Notification when WebView not installed">
|
<string name="body_install_webview" comment="Notification when WebView not installed">
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
12
common/test/keyboards/invalid/engine/README.md
Normal file
12
common/test/keyboards/invalid/engine/README.md
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
# Invalid keyboards for testing Keyman Engine
|
||||||
|
|
||||||
|
## javascript_error.kmp
|
||||||
|
|
||||||
|
A keyboard package that has a Javascript keyboard with an error in `gs()` to test runtime keyboard handling
|
||||||
|
|
||||||
|
## TODO: other invalid keyboards to add here
|
||||||
|
|
||||||
|
* invalid_packages - missing files, metadata, etc
|
||||||
|
* script_load_error - unparseable JS
|
||||||
|
* invalid kmx
|
||||||
|
* invalid fonts
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
Banne Change History
|
||||||
|
====================
|
||||||
|
|
||||||
|
1.0 (2024-07-12)
|
||||||
|
----------------
|
||||||
|
* Created by Sophia Ku
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright © 2024 SIL
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
# javascript_error keyboard
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
Keyboard with a script error in `gs()`, taken originally from release/b/banne
|
||||||
|
|
||||||
|
The .js and .kmp files in modified_build/ have been manually tweaked to throw the error:
|
||||||
|
|
||||||
|
```js
|
||||||
|
this.gs=function(t,e) {
|
||||||
|
throw new Error("javascript_error.js - runtime error");
|
||||||
|
// return this.g_main_0(t,e);
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<KeymanDeveloperProject>
|
||||||
|
<Options>
|
||||||
|
<Version>2.0</Version>
|
||||||
|
<CompilerWarningsAsErrors>True</CompilerWarningsAsErrors>
|
||||||
|
<CheckFilenameConventions>True</CheckFilenameConventions>
|
||||||
|
</Options>
|
||||||
|
</KeymanDeveloperProject>
|
||||||
|
|
@ -0,0 +1,816 @@
|
||||||
|
if(typeof keyman === 'undefined') {
|
||||||
|
console.log('Keyboard requires KeymanWeb 10.0 or later');
|
||||||
|
if(typeof tavultesoft !== 'undefined') tavultesoft.keymanweb.util.alert("This keyboard requires KeymanWeb 10.0 or later");
|
||||||
|
} else {
|
||||||
|
KeymanWeb.KR(new Keyboard_javascript_error());
|
||||||
|
}
|
||||||
|
function Keyboard_javascript_error()
|
||||||
|
{
|
||||||
|
var modCodes = keyman.osk.modifierCodes;
|
||||||
|
var keyCodes = keyman.osk.keyCodes;
|
||||||
|
|
||||||
|
this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;
|
||||||
|
this.KI="Keyboard_javascript_error";
|
||||||
|
this.KN="javascript_error";
|
||||||
|
this.KMINVER="10.0";
|
||||||
|
this.KV={F:' 1em "Arial"',K102:0};
|
||||||
|
this.KV.KLS={
|
||||||
|
"default": ["`","1","2","3","4","5","6","7","8","9","0","-","=","","","","q","w","e","r","t","y","u","i","o","p","[","]","\\","","","","a","s","d","f","g","h","j","k","l",";","'","","","","","","\\","z","x","c","v","b","n","m",",",".","/","","","","","",""],
|
||||||
|
"shift": ["~","!","@","#","$","%","^","&","*","(",")","_","+","","","","Q","W","E","R","T","Y","U","I","O","P","{","}","|","","","","A","S","D","F","G","H","J","K","L",":","«","","","","","","|","Z","X","C","V","B","N","M","<",">","?","","","","","",""]
|
||||||
|
};
|
||||||
|
this.KV.BK=(function(x){
|
||||||
|
var
|
||||||
|
empty=Array.apply(null, Array(65)).map(String.prototype.valueOf,""),
|
||||||
|
result=[], v, i,
|
||||||
|
modifiers=['default','shift','ctrl','shift-ctrl','alt','shift-alt','ctrl-alt','shift-ctrl-alt'];
|
||||||
|
for(i=modifiers.length-1;i>=0;i--) {
|
||||||
|
v = x[modifiers[i]];
|
||||||
|
if(v || result.length > 0) {
|
||||||
|
result=(v ? v : empty).slice().concat(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
})(this.KV.KLS);
|
||||||
|
this.KDU=0;
|
||||||
|
this.KH='';
|
||||||
|
this.KM=0;
|
||||||
|
this.KBVER="1.0";
|
||||||
|
this.KMBM=modCodes.SHIFT /* 0x0010 */;
|
||||||
|
this.KVKL={
|
||||||
|
"phone": {
|
||||||
|
"font": "Tahoma",
|
||||||
|
"layer": [
|
||||||
|
{
|
||||||
|
"id": "default",
|
||||||
|
"row": [
|
||||||
|
{
|
||||||
|
"id": "1",
|
||||||
|
"key": [
|
||||||
|
{
|
||||||
|
"id": "K_Q",
|
||||||
|
"text": "q"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_W",
|
||||||
|
"text": "w"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_E",
|
||||||
|
"text": "e"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_R",
|
||||||
|
"text": "r"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_T",
|
||||||
|
"text": "t"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_Y",
|
||||||
|
"text": "y"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_U",
|
||||||
|
"text": "u"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_I",
|
||||||
|
"text": "i"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_O",
|
||||||
|
"text": "o"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_P",
|
||||||
|
"text": "p"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "2",
|
||||||
|
"key": [
|
||||||
|
{
|
||||||
|
"id": "K_A",
|
||||||
|
"text": "a",
|
||||||
|
"pad": "50"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_S",
|
||||||
|
"text": "s",
|
||||||
|
"sk": [
|
||||||
|
{
|
||||||
|
"text": "š",
|
||||||
|
"id": "U_0161"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_D",
|
||||||
|
"text": "d"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_F",
|
||||||
|
"text": "f"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_G",
|
||||||
|
"text": "g"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_H",
|
||||||
|
"text": "h"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_J",
|
||||||
|
"text": "j"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_K",
|
||||||
|
"text": "k"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_L",
|
||||||
|
"text": "l"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "T_new_88",
|
||||||
|
"width": "10",
|
||||||
|
"sp": "10"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "3",
|
||||||
|
"key": [
|
||||||
|
{
|
||||||
|
"id": "K_SHIFT",
|
||||||
|
"text": "*Shift*",
|
||||||
|
"sp": "1",
|
||||||
|
"nextlayer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_Z",
|
||||||
|
"text": "z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_X",
|
||||||
|
"text": "x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_C",
|
||||||
|
"text": "c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_V",
|
||||||
|
"text": "v"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_B",
|
||||||
|
"text": "b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_N",
|
||||||
|
"text": "n"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_M",
|
||||||
|
"text": "m"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_PERIOD",
|
||||||
|
"text": ".",
|
||||||
|
"sk": [
|
||||||
|
{
|
||||||
|
"text": ",",
|
||||||
|
"id": "K_COMMA"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "!",
|
||||||
|
"id": "K_1",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "?",
|
||||||
|
"id": "K_SLASH",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "‹",
|
||||||
|
"id": "U_2039"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "›",
|
||||||
|
"id": "U_203A"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "«",
|
||||||
|
"id": "U_00AB",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "»",
|
||||||
|
"id": "U_00BB"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "\\",
|
||||||
|
"id": "K_BKSLASH"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": ":",
|
||||||
|
"id": "K_COLON",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": ";",
|
||||||
|
"id": "K_COLON"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_BKSP",
|
||||||
|
"text": "*BkSp*",
|
||||||
|
"width": "100",
|
||||||
|
"sp": "1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "4",
|
||||||
|
"key": [
|
||||||
|
{
|
||||||
|
"id": "K_NUMLOCK",
|
||||||
|
"text": "*123*",
|
||||||
|
"width": "150",
|
||||||
|
"sp": "1",
|
||||||
|
"nextlayer": "numeric"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_LOPT",
|
||||||
|
"text": "*Menu*",
|
||||||
|
"width": "120",
|
||||||
|
"sp": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_SPACE",
|
||||||
|
"width": "610"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_ENTER",
|
||||||
|
"text": "*Enter*",
|
||||||
|
"width": "150",
|
||||||
|
"sp": "1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "shift",
|
||||||
|
"row": [
|
||||||
|
{
|
||||||
|
"id": "1",
|
||||||
|
"key": [
|
||||||
|
{
|
||||||
|
"id": "K_Q",
|
||||||
|
"text": "Q"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_W",
|
||||||
|
"text": "W"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_E",
|
||||||
|
"text": "E"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_R",
|
||||||
|
"text": "R"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_T",
|
||||||
|
"text": "T"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_Y",
|
||||||
|
"text": "Y"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_U",
|
||||||
|
"text": "U"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_I",
|
||||||
|
"text": "I"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_O",
|
||||||
|
"text": "O"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_P",
|
||||||
|
"text": "P"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "2",
|
||||||
|
"key": [
|
||||||
|
{
|
||||||
|
"id": "K_A",
|
||||||
|
"text": "A",
|
||||||
|
"pad": "50"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_S",
|
||||||
|
"text": "S",
|
||||||
|
"sk": [
|
||||||
|
{
|
||||||
|
"text": "Š",
|
||||||
|
"id": "U_0160"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_D",
|
||||||
|
"text": "D"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_F",
|
||||||
|
"text": "F"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_G",
|
||||||
|
"text": "G"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_H",
|
||||||
|
"text": "H"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_J",
|
||||||
|
"text": "J"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_K",
|
||||||
|
"text": "K"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_L",
|
||||||
|
"text": "L"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "T_new_122",
|
||||||
|
"width": "10",
|
||||||
|
"sp": "10"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "3",
|
||||||
|
"key": [
|
||||||
|
{
|
||||||
|
"id": "K_SHIFT",
|
||||||
|
"text": "*Shift*",
|
||||||
|
"sp": "2",
|
||||||
|
"nextlayer": "default"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_Z",
|
||||||
|
"text": "Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_X",
|
||||||
|
"text": "X"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_C",
|
||||||
|
"text": "C"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_V",
|
||||||
|
"text": "V"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_B",
|
||||||
|
"text": "B"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_N",
|
||||||
|
"text": "N"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_M",
|
||||||
|
"text": "M"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_PERIOD",
|
||||||
|
"text": ".",
|
||||||
|
"layer": "default",
|
||||||
|
"sk": [
|
||||||
|
{
|
||||||
|
"text": ",",
|
||||||
|
"id": "K_COMMA",
|
||||||
|
"layer": "default"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "!",
|
||||||
|
"id": "K_1",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "?",
|
||||||
|
"id": "K_SLASH",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "‹",
|
||||||
|
"id": "U_2039",
|
||||||
|
"layer": "default"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "›",
|
||||||
|
"id": "U_203A"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "«",
|
||||||
|
"id": "U_00AB",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "»",
|
||||||
|
"id": "U_00BB"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "\\",
|
||||||
|
"id": "K_BKSLASH",
|
||||||
|
"layer": "default"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": ":",
|
||||||
|
"id": "K_COLON",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": ";",
|
||||||
|
"id": "K_COLON",
|
||||||
|
"layer": "default"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_BKSP",
|
||||||
|
"text": "*BkSp*",
|
||||||
|
"sp": "1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "4",
|
||||||
|
"key": [
|
||||||
|
{
|
||||||
|
"id": "K_NUMLOCK",
|
||||||
|
"text": "*123*",
|
||||||
|
"width": "150",
|
||||||
|
"sp": "1",
|
||||||
|
"nextlayer": "numeric"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_LOPT",
|
||||||
|
"text": "*Menu*",
|
||||||
|
"width": "120",
|
||||||
|
"sp": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_SPACE",
|
||||||
|
"width": "610"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_ENTER",
|
||||||
|
"text": "*Enter*",
|
||||||
|
"width": "150",
|
||||||
|
"sp": "1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "numeric",
|
||||||
|
"row": [
|
||||||
|
{
|
||||||
|
"id": "1",
|
||||||
|
"key": [
|
||||||
|
{
|
||||||
|
"id": "K_1",
|
||||||
|
"text": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_2",
|
||||||
|
"text": "2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_3",
|
||||||
|
"text": "3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_4",
|
||||||
|
"text": "4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_5",
|
||||||
|
"text": "5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_6",
|
||||||
|
"text": "6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_7",
|
||||||
|
"text": "7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_8",
|
||||||
|
"text": "8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_9",
|
||||||
|
"text": "9"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_0",
|
||||||
|
"text": "0",
|
||||||
|
"width": "100"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "2",
|
||||||
|
"key": [
|
||||||
|
{
|
||||||
|
"id": "K_4",
|
||||||
|
"text": "$",
|
||||||
|
"pad": "50",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_2",
|
||||||
|
"text": "@",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_3",
|
||||||
|
"text": "#",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_5",
|
||||||
|
"text": "%",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_7",
|
||||||
|
"text": "&",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_HYPHEN",
|
||||||
|
"text": "-"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_HYPHEN",
|
||||||
|
"text": "_",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_EQUAL",
|
||||||
|
"text": "=",
|
||||||
|
"layer": "default"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_BKSLASH",
|
||||||
|
"text": "|",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_BKSLASH",
|
||||||
|
"text": "\\",
|
||||||
|
"layer": "default"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "3",
|
||||||
|
"key": [
|
||||||
|
{
|
||||||
|
"id": "K_LBRKT",
|
||||||
|
"text": "[",
|
||||||
|
"pad": "110",
|
||||||
|
"sk": [
|
||||||
|
{
|
||||||
|
"text": "<",
|
||||||
|
"id": "K_COMMA",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "{",
|
||||||
|
"id": "K_LBRKT",
|
||||||
|
"layer": "shift"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_9",
|
||||||
|
"text": "(",
|
||||||
|
"layer": "shift",
|
||||||
|
"sk": [
|
||||||
|
{
|
||||||
|
"text": "‹",
|
||||||
|
"id": "U_2039"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "«",
|
||||||
|
"id": "U_00AB"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_0",
|
||||||
|
"text": ")",
|
||||||
|
"layer": "shift",
|
||||||
|
"sk": [
|
||||||
|
{
|
||||||
|
"text": "›",
|
||||||
|
"id": "U_203A"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "»",
|
||||||
|
"id": "U_00BB"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_RBRKT",
|
||||||
|
"text": "]",
|
||||||
|
"sk": [
|
||||||
|
{
|
||||||
|
"text": ">",
|
||||||
|
"id": "K_PERIOD",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "}",
|
||||||
|
"id": "K_RBRKT",
|
||||||
|
"layer": "shift"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "U_0027",
|
||||||
|
"text": "'"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "U_0022",
|
||||||
|
"text": "\""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_EQUAL",
|
||||||
|
"text": "+",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_8",
|
||||||
|
"text": "*",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_SLASH",
|
||||||
|
"text": "/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_BKSP",
|
||||||
|
"text": "*BkSp*",
|
||||||
|
"width": "100",
|
||||||
|
"sp": "1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "4",
|
||||||
|
"key": [
|
||||||
|
{
|
||||||
|
"id": "K_LOWER",
|
||||||
|
"text": "*abc*",
|
||||||
|
"width": "150",
|
||||||
|
"sp": "1",
|
||||||
|
"nextlayer": "default"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_LOPT",
|
||||||
|
"text": "*Menu*",
|
||||||
|
"width": "120",
|
||||||
|
"sp": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_SPACE",
|
||||||
|
"width": "610"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_ENTER",
|
||||||
|
"text": "*Enter*",
|
||||||
|
"width": "150",
|
||||||
|
"sp": "1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"displayUnderlying": false
|
||||||
|
}
|
||||||
|
};
|
||||||
|
this.KVER="19.0.254.0";
|
||||||
|
this.KVS=[];
|
||||||
|
this.gs=function(t,e) {
|
||||||
|
throw new Error("javascript_error.js - runtime error");
|
||||||
|
// return this.g_main_0(t,e);
|
||||||
|
};
|
||||||
|
this.g_main_0=function(t,e) {
|
||||||
|
var k=KeymanWeb,r=0,m=0;
|
||||||
|
if(k.KKM(e, modCodes.SHIFT | modCodes.VIRTUAL_KEY /* 0x4010 */, keyCodes.K_QUOTE /* 0xDE */)) {
|
||||||
|
if(k.KFCM(1,t,['«'])){
|
||||||
|
r=m=1; // Line 26
|
||||||
|
k.KDC(1,t);
|
||||||
|
k.KO(-1,t,"»");
|
||||||
|
}
|
||||||
|
else if(k.KFCM(1,t,['»'])){
|
||||||
|
r=m=1; // Line 27
|
||||||
|
k.KDC(1,t);
|
||||||
|
k.KO(-1,t,"«");
|
||||||
|
}
|
||||||
|
else if(k.KFCM(1,t,[';'])){
|
||||||
|
r=m=1; // Line 30
|
||||||
|
k.KDC(1,t);
|
||||||
|
k.KO(-1,t,"\"");
|
||||||
|
}
|
||||||
|
else if(1){
|
||||||
|
r=m=1; // Line 25
|
||||||
|
k.KDC(0,t);
|
||||||
|
k.KO(-1,t,"«");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_QUOTE /* 0xDE */)) {
|
||||||
|
if(k.KFCM(1,t,['\''])){
|
||||||
|
r=m=1; // Line 20
|
||||||
|
k.KDC(1,t);
|
||||||
|
k.KO(-1,t,"‹");
|
||||||
|
}
|
||||||
|
else if(k.KFCM(1,t,['‹'])){
|
||||||
|
r=m=1; // Line 21
|
||||||
|
k.KDC(1,t);
|
||||||
|
k.KO(-1,t,"›");
|
||||||
|
}
|
||||||
|
else if(k.KFCM(1,t,['›'])){
|
||||||
|
r=m=1; // Line 22
|
||||||
|
k.KDC(1,t);
|
||||||
|
k.KO(-1,t,"‹");
|
||||||
|
}
|
||||||
|
else if(k.KFCM(1,t,['<'])){
|
||||||
|
r=m=1; // Line 33
|
||||||
|
k.KDC(1,t);
|
||||||
|
k.KO(-1,t,"‹");
|
||||||
|
}
|
||||||
|
else if(k.KFCM(1,t,['>'])){
|
||||||
|
r=m=1; // Line 34
|
||||||
|
k.KDC(1,t);
|
||||||
|
k.KO(-1,t,"›");
|
||||||
|
}
|
||||||
|
else if(k.KFCM(1,t,['s'])){
|
||||||
|
r=m=1; // Line 42
|
||||||
|
k.KDC(1,t);
|
||||||
|
k.KO(-1,t,"š");
|
||||||
|
}
|
||||||
|
else if(k.KFCM(1,t,['S'])){
|
||||||
|
r=m=1; // Line 43
|
||||||
|
k.KDC(1,t);
|
||||||
|
k.KO(-1,t,"Š");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(k.KKM(e, modCodes.SHIFT | modCodes.VIRTUAL_KEY /* 0x4010 */, keyCodes.K_COMMA /* 0xBC */)) {
|
||||||
|
if(k.KFCM(1,t,['<'])){
|
||||||
|
r=m=1; // Line 35
|
||||||
|
k.KDC(1,t);
|
||||||
|
k.KO(-1,t,"«");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(k.KKM(e, modCodes.SHIFT | modCodes.VIRTUAL_KEY /* 0x4010 */, keyCodes.K_PERIOD /* 0xBE */)) {
|
||||||
|
if(k.KFCM(1,t,['>'])){
|
||||||
|
r=m=1; // Line 36
|
||||||
|
k.KDC(1,t);
|
||||||
|
k.KO(-1,t,"»");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return r;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,39 @@
|
||||||
|
{
|
||||||
|
"id": "javascript_error",
|
||||||
|
"name": "javascript_error",
|
||||||
|
"license": "mit",
|
||||||
|
"authorName": "Marc Durdin",
|
||||||
|
"description": "<p>javascript_error test keyboard</p>",
|
||||||
|
"languages": {
|
||||||
|
"amf": {
|
||||||
|
"examples": [],
|
||||||
|
"languageName": "Hamer-Banne",
|
||||||
|
"displayName": "Hamer-Banne"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lastModifiedDate": "2026-07-13T07:51:37.473Z",
|
||||||
|
"packageFilename": "javascript_error.kmp",
|
||||||
|
"packageFileSize": 6898,
|
||||||
|
"jsFilename": "javascript_error.js",
|
||||||
|
"jsFileSize": 20557,
|
||||||
|
"packageIncludes": [
|
||||||
|
"visualKeyboard",
|
||||||
|
"welcome",
|
||||||
|
"documentation"
|
||||||
|
],
|
||||||
|
"version": "1.0",
|
||||||
|
"encodings": [
|
||||||
|
"unicode"
|
||||||
|
],
|
||||||
|
"platformSupport": {
|
||||||
|
"windows": "full",
|
||||||
|
"macos": "full",
|
||||||
|
"linux": "full",
|
||||||
|
"desktopWeb": "full",
|
||||||
|
"ios": "full",
|
||||||
|
"android": "full",
|
||||||
|
"mobileWeb": "full"
|
||||||
|
},
|
||||||
|
"minKeymanVersion": "10.0",
|
||||||
|
"helpLink": "https://help.keyman.com/keyboard/javascript_error"
|
||||||
|
}
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1,701 @@
|
||||||
|
{
|
||||||
|
"phone": {
|
||||||
|
"font": "Tahoma",
|
||||||
|
"layer": [
|
||||||
|
{
|
||||||
|
"id": "default",
|
||||||
|
"row": [
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"key": [
|
||||||
|
{
|
||||||
|
"id": "K_Q",
|
||||||
|
"text": "q"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_W",
|
||||||
|
"text": "w"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_E",
|
||||||
|
"text": "e"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_R",
|
||||||
|
"text": "r"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_T",
|
||||||
|
"text": "t"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_Y",
|
||||||
|
"text": "y"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_U",
|
||||||
|
"text": "u"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_I",
|
||||||
|
"text": "i"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_O",
|
||||||
|
"text": "o"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_P",
|
||||||
|
"text": "p"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2,
|
||||||
|
"key": [
|
||||||
|
{
|
||||||
|
"id": "K_A",
|
||||||
|
"text": "a",
|
||||||
|
"pad": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_S",
|
||||||
|
"text": "s",
|
||||||
|
"sk": [
|
||||||
|
{
|
||||||
|
"text": "š",
|
||||||
|
"id": "U_0161"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_D",
|
||||||
|
"text": "d"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_F",
|
||||||
|
"text": "f"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_G",
|
||||||
|
"text": "g"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_H",
|
||||||
|
"text": "h"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_J",
|
||||||
|
"text": "j"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_K",
|
||||||
|
"text": "k"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_L",
|
||||||
|
"text": "l"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "T_new_88",
|
||||||
|
"text": "",
|
||||||
|
"width": 10,
|
||||||
|
"sp": 10
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3,
|
||||||
|
"key": [
|
||||||
|
{
|
||||||
|
"id": "K_SHIFT",
|
||||||
|
"text": "*Shift*",
|
||||||
|
"sp": 1,
|
||||||
|
"nextlayer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_Z",
|
||||||
|
"text": "z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_X",
|
||||||
|
"text": "x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_C",
|
||||||
|
"text": "c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_V",
|
||||||
|
"text": "v"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_B",
|
||||||
|
"text": "b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_N",
|
||||||
|
"text": "n"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_M",
|
||||||
|
"text": "m"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_PERIOD",
|
||||||
|
"text": ".",
|
||||||
|
"sk": [
|
||||||
|
{
|
||||||
|
"text": ",",
|
||||||
|
"id": "K_COMMA"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "!",
|
||||||
|
"id": "K_1",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "?",
|
||||||
|
"id": "K_SLASH",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "‹",
|
||||||
|
"id": "U_2039"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "›",
|
||||||
|
"id": "U_203A"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "«",
|
||||||
|
"id": "U_00AB",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "»",
|
||||||
|
"id": "U_00BB"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "\\",
|
||||||
|
"id": "K_BKSLASH"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": ":",
|
||||||
|
"id": "K_COLON",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": ";",
|
||||||
|
"id": "K_COLON"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_BKSP",
|
||||||
|
"text": "*BkSp*",
|
||||||
|
"width": 100,
|
||||||
|
"sp": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 4,
|
||||||
|
"key": [
|
||||||
|
{
|
||||||
|
"id": "K_NUMLOCK",
|
||||||
|
"text": "*123*",
|
||||||
|
"width": 150,
|
||||||
|
"sp": 1,
|
||||||
|
"nextlayer": "numeric"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_LOPT",
|
||||||
|
"text": "*Menu*",
|
||||||
|
"width": 120,
|
||||||
|
"sp": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_SPACE",
|
||||||
|
"text": "",
|
||||||
|
"width": 610,
|
||||||
|
"sp": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_ENTER",
|
||||||
|
"text": "*Enter*",
|
||||||
|
"width": 150,
|
||||||
|
"sp": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "shift",
|
||||||
|
"row": [
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"key": [
|
||||||
|
{
|
||||||
|
"id": "K_Q",
|
||||||
|
"text": "Q"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_W",
|
||||||
|
"text": "W"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_E",
|
||||||
|
"text": "E"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_R",
|
||||||
|
"text": "R"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_T",
|
||||||
|
"text": "T"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_Y",
|
||||||
|
"text": "Y"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_U",
|
||||||
|
"text": "U"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_I",
|
||||||
|
"text": "I"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_O",
|
||||||
|
"text": "O"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_P",
|
||||||
|
"text": "P"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2,
|
||||||
|
"key": [
|
||||||
|
{
|
||||||
|
"id": "K_A",
|
||||||
|
"text": "A",
|
||||||
|
"pad": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_S",
|
||||||
|
"text": "S",
|
||||||
|
"sk": [
|
||||||
|
{
|
||||||
|
"text": "Š",
|
||||||
|
"id": "U_0160"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_D",
|
||||||
|
"text": "D"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_F",
|
||||||
|
"text": "F"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_G",
|
||||||
|
"text": "G"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_H",
|
||||||
|
"text": "H"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_J",
|
||||||
|
"text": "J"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_K",
|
||||||
|
"text": "K"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_L",
|
||||||
|
"text": "L"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "T_new_122",
|
||||||
|
"text": "",
|
||||||
|
"width": 10,
|
||||||
|
"sp": 10
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3,
|
||||||
|
"key": [
|
||||||
|
{
|
||||||
|
"id": "K_SHIFT",
|
||||||
|
"text": "*Shift*",
|
||||||
|
"sp": 2,
|
||||||
|
"nextlayer": "default"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_Z",
|
||||||
|
"text": "Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_X",
|
||||||
|
"text": "X"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_C",
|
||||||
|
"text": "C"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_V",
|
||||||
|
"text": "V"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_B",
|
||||||
|
"text": "B"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_N",
|
||||||
|
"text": "N"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_M",
|
||||||
|
"text": "M"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_PERIOD",
|
||||||
|
"text": ".",
|
||||||
|
"layer": "default",
|
||||||
|
"sk": [
|
||||||
|
{
|
||||||
|
"text": ",",
|
||||||
|
"id": "K_COMMA",
|
||||||
|
"layer": "default"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "!",
|
||||||
|
"id": "K_1",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "?",
|
||||||
|
"id": "K_SLASH",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "‹",
|
||||||
|
"id": "U_2039",
|
||||||
|
"layer": "default"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "›",
|
||||||
|
"id": "U_203A"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "«",
|
||||||
|
"id": "U_00AB",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "»",
|
||||||
|
"id": "U_00BB"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "\\",
|
||||||
|
"id": "K_BKSLASH",
|
||||||
|
"layer": "default"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": ":",
|
||||||
|
"id": "K_COLON",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": ";",
|
||||||
|
"id": "K_COLON",
|
||||||
|
"layer": "default"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_BKSP",
|
||||||
|
"text": "*BkSp*",
|
||||||
|
"sp": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 4,
|
||||||
|
"key": [
|
||||||
|
{
|
||||||
|
"id": "K_NUMLOCK",
|
||||||
|
"text": "*123*",
|
||||||
|
"width": 150,
|
||||||
|
"sp": 1,
|
||||||
|
"nextlayer": "numeric"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_LOPT",
|
||||||
|
"text": "*Menu*",
|
||||||
|
"width": 120,
|
||||||
|
"sp": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_SPACE",
|
||||||
|
"text": "",
|
||||||
|
"width": 610,
|
||||||
|
"sp": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_ENTER",
|
||||||
|
"text": "*Enter*",
|
||||||
|
"width": 150,
|
||||||
|
"sp": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "numeric",
|
||||||
|
"row": [
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"key": [
|
||||||
|
{
|
||||||
|
"id": "K_1",
|
||||||
|
"text": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_2",
|
||||||
|
"text": "2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_3",
|
||||||
|
"text": "3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_4",
|
||||||
|
"text": "4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_5",
|
||||||
|
"text": "5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_6",
|
||||||
|
"text": "6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_7",
|
||||||
|
"text": "7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_8",
|
||||||
|
"text": "8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_9",
|
||||||
|
"text": "9"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_0",
|
||||||
|
"text": "0",
|
||||||
|
"width": 100
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2,
|
||||||
|
"key": [
|
||||||
|
{
|
||||||
|
"id": "K_4",
|
||||||
|
"text": "$",
|
||||||
|
"pad": 50,
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_2",
|
||||||
|
"text": "@",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_3",
|
||||||
|
"text": "#",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_5",
|
||||||
|
"text": "%",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_7",
|
||||||
|
"text": "&",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_HYPHEN",
|
||||||
|
"text": "-"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_HYPHEN",
|
||||||
|
"text": "_",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_EQUAL",
|
||||||
|
"text": "=",
|
||||||
|
"layer": "default"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_BKSLASH",
|
||||||
|
"text": "|",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_BKSLASH",
|
||||||
|
"text": "\\",
|
||||||
|
"layer": "default"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3,
|
||||||
|
"key": [
|
||||||
|
{
|
||||||
|
"id": "K_LBRKT",
|
||||||
|
"text": "[",
|
||||||
|
"pad": 110,
|
||||||
|
"sk": [
|
||||||
|
{
|
||||||
|
"text": "<",
|
||||||
|
"id": "K_COMMA",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "{",
|
||||||
|
"id": "K_LBRKT",
|
||||||
|
"layer": "shift"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_9",
|
||||||
|
"text": "(",
|
||||||
|
"layer": "shift",
|
||||||
|
"sk": [
|
||||||
|
{
|
||||||
|
"text": "‹",
|
||||||
|
"id": "U_2039"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "«",
|
||||||
|
"id": "U_00AB"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_0",
|
||||||
|
"text": ")",
|
||||||
|
"layer": "shift",
|
||||||
|
"sk": [
|
||||||
|
{
|
||||||
|
"text": "›",
|
||||||
|
"id": "U_203A"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "»",
|
||||||
|
"id": "U_00BB"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_RBRKT",
|
||||||
|
"text": "]",
|
||||||
|
"sk": [
|
||||||
|
{
|
||||||
|
"text": ">",
|
||||||
|
"id": "K_PERIOD",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "}",
|
||||||
|
"id": "K_RBRKT",
|
||||||
|
"layer": "shift"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "U_0027",
|
||||||
|
"text": "'"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "U_0022",
|
||||||
|
"text": "\""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_EQUAL",
|
||||||
|
"text": "+",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_8",
|
||||||
|
"text": "*",
|
||||||
|
"layer": "shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_SLASH",
|
||||||
|
"text": "/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_BKSP",
|
||||||
|
"text": "*BkSp*",
|
||||||
|
"width": 100,
|
||||||
|
"sp": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 4,
|
||||||
|
"key": [
|
||||||
|
{
|
||||||
|
"id": "K_LOWER",
|
||||||
|
"text": "*abc*",
|
||||||
|
"width": 150,
|
||||||
|
"sp": 1,
|
||||||
|
"nextlayer": "default"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_LOPT",
|
||||||
|
"text": "*Menu*",
|
||||||
|
"width": 120,
|
||||||
|
"sp": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_SPACE",
|
||||||
|
"text": "",
|
||||||
|
"width": 610,
|
||||||
|
"sp": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "K_ENTER",
|
||||||
|
"text": "*Enter*",
|
||||||
|
"width": 150,
|
||||||
|
"sp": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,43 @@
|
||||||
|
c banne generated from template at 2024-07-12 10:16:50
|
||||||
|
c with name "Banne"
|
||||||
|
store(&VERSION) '10.0'
|
||||||
|
store(&NAME) 'javascript_error'
|
||||||
|
store(©RIGHT) 'Copyright © SIL'
|
||||||
|
store(&KEYBOARDVERSION) '1.0'
|
||||||
|
store(&TARGETS) 'any'
|
||||||
|
store(&VISUALKEYBOARD) 'javascript_error.kvks'
|
||||||
|
store(&LAYOUTFILE) 'javascript_error.keyman-touch-layout'
|
||||||
|
|
||||||
|
begin Unicode > use(main)
|
||||||
|
|
||||||
|
group(main) using keys
|
||||||
|
|
||||||
|
c ------------------------------------------------------------------------------
|
||||||
|
c punctuation characters
|
||||||
|
c ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
c Toggle between ‹ and › by continuing to input '
|
||||||
|
"'" + "'" > U+2039 c ‹
|
||||||
|
U+2039 + "'" > U+203A c ›
|
||||||
|
U+203A + "'" > U+2039 c ‹
|
||||||
|
|
||||||
|
c Toggle between « and » by continuing to input "
|
||||||
|
+ '"' > U+00AB c «
|
||||||
|
U+00AB + '"' > U+00BB c »
|
||||||
|
U+00BB + '"' > U+00AB c «
|
||||||
|
|
||||||
|
c Revert to default " character
|
||||||
|
";" + '"' > '"'
|
||||||
|
|
||||||
|
c Use angle brackets to type characters
|
||||||
|
"<" + "'" > U+2039 c ‹
|
||||||
|
">" + "'" > U+203A c ›
|
||||||
|
"<" + "<" > U+00AB c «
|
||||||
|
">" + ">" > U+00BB c »
|
||||||
|
|
||||||
|
c ------------------------------------------------------------------------------
|
||||||
|
c s with caron
|
||||||
|
c ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
"s" + "'" > U+0161 c š
|
||||||
|
"S" + "'" > U+0160 c Š
|
||||||
|
|
@ -0,0 +1,75 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Package>
|
||||||
|
<System>
|
||||||
|
<KeymanDeveloperVersion>17.0.326.0</KeymanDeveloperVersion>
|
||||||
|
<FileVersion>7.0</FileVersion>
|
||||||
|
</System>
|
||||||
|
<Options>
|
||||||
|
<ExecuteProgram></ExecuteProgram>
|
||||||
|
<ReadMeFile>readme.htm</ReadMeFile>
|
||||||
|
<LicenseFile>..\LICENSE.md</LicenseFile>
|
||||||
|
<MSIFileName></MSIFileName>
|
||||||
|
<MSIOptions></MSIOptions>
|
||||||
|
<FollowKeyboardVersion/>
|
||||||
|
</Options>
|
||||||
|
<StartMenu>
|
||||||
|
<Folder></Folder>
|
||||||
|
<Items/>
|
||||||
|
</StartMenu>
|
||||||
|
<Info>
|
||||||
|
<Name URL="">javascript_error</Name>
|
||||||
|
<Copyright URL="">Copyright © SIL</Copyright>
|
||||||
|
<Author URL="">Marc Durdin</Author>
|
||||||
|
<Description URL="">javascript_error test keyboard</Description>
|
||||||
|
<Version URL=""></Version>
|
||||||
|
</Info>
|
||||||
|
<Files>
|
||||||
|
<File>
|
||||||
|
<Name>..\build\javascript_error.kmx</Name>
|
||||||
|
<Description></Description>
|
||||||
|
<CopyLocation>0</CopyLocation>
|
||||||
|
<FileType>.kmx</FileType>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<Name>..\build\javascript_error.js</Name>
|
||||||
|
<Description></Description>
|
||||||
|
<CopyLocation>0</CopyLocation>
|
||||||
|
<FileType>.js</FileType>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<Name>..\build\javascript_error.kvk</Name>
|
||||||
|
<Description></Description>
|
||||||
|
<CopyLocation>0</CopyLocation>
|
||||||
|
<FileType>.kvk</FileType>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<Name>welcome.htm</Name>
|
||||||
|
<Description></Description>
|
||||||
|
<CopyLocation>0</CopyLocation>
|
||||||
|
<FileType>.htm</FileType>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<Name>readme.htm</Name>
|
||||||
|
<Description></Description>
|
||||||
|
<CopyLocation>0</CopyLocation>
|
||||||
|
<FileType>.htm</FileType>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<Name>..\LICENSE.md</Name>
|
||||||
|
<Description></Description>
|
||||||
|
<CopyLocation>0</CopyLocation>
|
||||||
|
<FileType>.md</FileType>
|
||||||
|
</File>
|
||||||
|
</Files>
|
||||||
|
<Keyboards>
|
||||||
|
<Keyboard>
|
||||||
|
<Name>javascript_error</Name>
|
||||||
|
<ID>javascript_error</ID>
|
||||||
|
<Version>1.0</Version>
|
||||||
|
<Languages>
|
||||||
|
<Language ID="amf">Hamer-Banna</Language>
|
||||||
|
</Languages>
|
||||||
|
</Keyboard>
|
||||||
|
</Keyboards>
|
||||||
|
<Strings/>
|
||||||
|
</Package>
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue