mirror of
https://github.com/keymanapp/keyman.git
synced 2026-09-19 06:07:40 +00:00
Merge pull request #6137 from keymanapp/feat/windows/6099-emit-keystrokes-from-imx
feat(windows): emit keystrokes for imx keydown/up actions 🥑
This commit is contained in:
commit
ad91e0e307
185 changed files with 15334 additions and 406 deletions
|
|
@ -1,8 +1,8 @@
|
|||
#
|
||||
# Automatically merges pull requests opened by keyman-server
|
||||
# The initial use of this action is to increment the patch
|
||||
# The initial use of this action is to increment the patch
|
||||
# version of Keyman with resources/build/increment-version.sh.
|
||||
# That script creates a PR and then this workflow will be
|
||||
# That script creates a PR and then this workflow will be
|
||||
# triggered to approve the PR (from github-actions account), and
|
||||
# then automerge it.
|
||||
#
|
||||
|
|
@ -14,15 +14,14 @@ on:
|
|||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.actor == 'keyman-server' && startsWith(github.event.pull_request.title, 'auto:') }}
|
||||
steps:
|
||||
- name: auto approve PR from keyman-server
|
||||
uses: hmarr/auto-approve-action@v2.0.0
|
||||
if: github.actor == 'keyman-server'
|
||||
with:
|
||||
github-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
- name: auto merge PR from keyman-server
|
||||
uses: "pascalgn/automerge-action@7854d3bd607dccdaf0b2c134b699a812c8960213"
|
||||
if: github.actor == 'keyman-server'
|
||||
env:
|
||||
GITHUB_TOKEN: "${{ secrets.AUTOINC_GITHUB_TOKEN }}"
|
||||
MERGE_LABELS: ""
|
||||
|
|
|
|||
40
HISTORY.md
40
HISTORY.md
|
|
@ -1,5 +1,45 @@
|
|||
# Keyman Version History
|
||||
|
||||
## 15.0.183 alpha 2022-01-21
|
||||
|
||||
* chore(linux): Update changelogs for 14.0.284 :cherries: (#6132)
|
||||
* chore(linux): Revert workaround for Python bug (#6133)
|
||||
|
||||
## 15.0.182 alpha 2022-01-21
|
||||
|
||||
* chore(linux): Add metadata file for packaging (#6127)
|
||||
* fix(web): crash in setTitleFromKeyboard when no keyboard active (#6129)
|
||||
|
||||
## 15.0.181 alpha 2022-01-19
|
||||
|
||||
* fix(linux): Add workaround for Python bug (#6124)
|
||||
* docs(linux): Add missing dependency (#6118)
|
||||
|
||||
## 15.0.180 alpha 2022-01-18
|
||||
|
||||
* feat(web): Caps Layer and double-tap gesture (#5989)
|
||||
* fix(web): Use regex to determine display layer and functional layers (#6100)
|
||||
|
||||
## 15.0.179 alpha 2022-01-17
|
||||
|
||||
* feat(web): Start of Sentence support - part 1 (#5963)
|
||||
* feat(developer): support for Caps Lock layer (#5988)
|
||||
* fix(web): call postKeystroke on banner touch (#6004)
|
||||
* chore(ios): project scripts should use /usr/bin/env bash (#6114)
|
||||
* chore: update docs (#6115)
|
||||
* chore(common): Check in crowdin strings for Kibaku (#6048)
|
||||
* fix(mac): externalize strings for package info window localization (#6088)
|
||||
* fix(developer): repatch #6074 (#6111)
|
||||
* fix(linux): Fix lintian errors (#6106)
|
||||
|
||||
## 15.0.178 alpha 2022-01-14
|
||||
|
||||
* chore(common): Check in crowdin strings for Waha (#6050)
|
||||
|
||||
## 15.0.177 alpha 2022-01-13
|
||||
|
||||
* chore(common): Check in crowdin strings for Marghi (#6049)
|
||||
|
||||
## 15.0.176 alpha 2022-01-12
|
||||
|
||||
* fix(windows): add x64 build fix invalid memory access (#6057)
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
15.0.177
|
||||
15.0.184
|
||||
154
android/KMAPro/kMAPro/src/main/res/values-ckl-rNG/strings.xml
Normal file
154
android/KMAPro/kMAPro/src/main/res/values-ckl-rNG/strings.xml
Normal file
|
|
@ -0,0 +1,154 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Context: Menu Action -->
|
||||
<string name="action_share" comment="Menu action to send text content to another app">Ndǝɦǝnta</string>
|
||||
<!-- Context: Menu Action -->
|
||||
<string name="action_web" comment="Menu action to open Keyman browser">Brauza nǝr Web</string>
|
||||
<!-- Context: Menu Action -->
|
||||
<string name="action_text_size" comment="Menu action to adjust text size">Ngakurǝr Text</string>
|
||||
<!-- Context: Menu Action -->
|
||||
<string name="action_overflow" comment="Show additional menu items">Dzakti</string>
|
||||
<!-- Context: Menu Action -->
|
||||
<string name="action_clear_text" comment="Menu action to erase text">Kǝkǝrnta Text</string>
|
||||
<!-- Context: Menu Action -->
|
||||
<string name="action_info" comment="Menu action to display Keyman help page">Sǝr zǝndi</string>
|
||||
<!-- Context: Menu Action -->
|
||||
<string name="action_settings" comment="Menu action to open Settings menu">Settingyere</string>
|
||||
<!-- Context: Menu Action -->
|
||||
<string name="action_install_updates" comment="Menu notification that keyboard or dictionary updates available">Vu Updateyere</string>
|
||||
<!-- Context: Title -->
|
||||
<string name="title_version" comment="Title of Keyman for Android version">Jili: %1$s</string>
|
||||
<!-- Context: Text label when old Chrome version installed -->
|
||||
<string name="text_require_chrome_57" comment="Banner text when old version of Chrome is installed"> Kiman ada bara Krom vashion 57 ko nam bǝlin ta dza.</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="button_update_chrome" comment="Prompt to upgrade Chrome in the Play Store">Dzakti bǝlikurir Krom</string>
|
||||
<!-- Context: Textfield prompt (… is the ellipsis character "...") -->
|
||||
<string name="textview_hint" comment="Prompt to start typing">Badicini taiping akwani…</string>
|
||||
<!-- Context: Splash screen (version/copyright info currently disabled -->
|
||||
<!-- Context: Splash screen (version/copyright info currently disabled -->
|
||||
<!-- Context: Text Size dialog -->
|
||||
<string name="text_size" comment="Current text size (number)">Ngakurǝr Text: %1$d</string>
|
||||
<!-- Context: Text Size dialog -->
|
||||
<string name="ic_text_size_up" comment="Make text bigger">Dzakti ngakurir text</string>
|
||||
<!-- Context: Text Size dialog -->
|
||||
<string name="ic_text_size_down" comment="Make text smaller">Kǝnta ngakurir text</string>
|
||||
<!-- Context: Clear Text dialog -->
|
||||
<string name="all_text_will_be_cleared" comment="Erase all the text">\nShanga text ata fwavuntadzi\n</string>
|
||||
<!-- Context: Get Started menu -->
|
||||
<string name="get_started" comment="Menu for getting started">Badicini kulini</string>
|
||||
<!-- Context: Get Started menu -->
|
||||
<string name="add_a_keyboard" comment="Menu item to add a keyboard">Dzakǝkǝr kibod kadǝbar nyar ngɛ</string>
|
||||
<!-- Context: Get Started menu -->
|
||||
<string name="enable_system_keyboard" comment="Menu item to enable Keyman as system keyboard">ʻYati ka Keyman njai kibod nǝr system shang shang</string>
|
||||
<!-- Context: Get Started menu -->
|
||||
<string name="set_keyman_as_default" comment="Menu item to set Keyman as default system keyboard">Mǝrti ka Keyman dza njai default keyboard</string>
|
||||
<!-- Context: Get Started menu -->
|
||||
<string name="more_info" comment="Open the Keyman for Android help page">Dzaktǝr sǝr zǝndi</string>
|
||||
<!-- Context: Get Started menu -->
|
||||
<string name="show_get_started" comment="Show the "Get Started" menu on startup">Tsanti \"%1$s\" akwa badicini</string>
|
||||
<!-- Context: Android Storage Permission -->
|
||||
<string name="request_storage_permission" comment="Request storage permission to access keyboard packages"> Kadǝbar ka gǝ mǝzi vu packageyere, gyar Keyman ka dzǝ karatɛ vi pu suyere nam abǝla.</string>
|
||||
<!-- Context: Android Storage Permission -->
|
||||
<string name="storage_permission_denied" comment="Keyboard package installation may fail since Android storage permission not granted"> Ndǝ kanti yuwur bara vǝyir pu su. Bisu adiyata gyar ka gǝ vu package nǝr kibod wɛ</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="keyman_settings" comment="Settings menu title">Settingyere</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<plurals name="installed_languages">
|
||||
<item quantity="one">Vu nyayere (%1$d)</item>
|
||||
<item quantity="other">Nyayere namtǝ ndǝ vu (%1$d)</item>
|
||||
</plurals>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="install_keyboard_or_dictionary" comment="Menu item to install keyboard or dictionary">Vu Kibod ko Dictionary</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="change_display_language" comment="Menu action to change interface language">Nyar tsanti su</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="adjust_keyboard_height" comment="Menu action to adjust keyboard height">Dzuguti dzugamkurir kibod</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="spacebar_caption" comment="Menu action to set the spacebar caption">Kapshion nǝr Spesba</string>
|
||||
<!-- Context: Keyman Settings menu / Spacebar caption -->
|
||||
<string name="spacebar_caption_keyboard" comment="Spacebar caption option - keyboard">Kibod</string>
|
||||
<!-- Context: Keyman Settings menu / Spacebar caption -->
|
||||
<string name="spacebar_caption_language" comment="Spacebar caption option - language">Nya</string>
|
||||
<!-- Context: Keyman Settings menu / Spacebar caption -->
|
||||
<string name="spacebar_caption_language_keyboard" comment="Spacebar caption option - language + keyboard">Nya + Kibod</string>
|
||||
<!-- Context: Keyman Settings menu / Spacebar caption -->
|
||||
<string name="spacebar_caption_blank" comment="Spacebar caption option - blank">Kuraka rubwa</string>
|
||||
<!-- Context: Keyman Settings menu / Spacebar caption hint -->
|
||||
<string name="spacebar_caption_hint_keyboard" comment="Spacebar caption hint - keyboard">Tsanti thlǝma kibod ata spesba</string>
|
||||
<!-- Context: Keyman Settings menu / Spacebar caption hint -->
|
||||
<string name="spacebar_caption_hint_language" comment="Spacebar caption hint - language">Tsanti thlǝma nya ata spesba</string>
|
||||
<!-- Context: Keyman Settings menu / Spacebar caption hint -->
|
||||
<string name="spacebar_caption_hint_language_keyboard" comment="Spacebar caption hint - language + keyboard">Nya aka kibod ata spesba</string>
|
||||
<!-- Context: Keyman Settings menu / Spacebar caption hint -->
|
||||
<string name="spacebar_caption_hint_blank" comment="Spacebar caption hint - blank">Ta gǝta tsanti kapshion ata spesba</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="show_banner" comment="text suggestions banner">Tsanti banner kǝlara saka</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="show_banner_on" comment="Description when toggle is on">Namtǝ ndata ʻyati</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="show_banner_off" comment="Description when toggle is off">Ma tsai tsai, tsantin predictive text sai saka namtǝ ndǝ mburnta tǝni</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="show_send_crash_report" comment="permission for sending crash reports">Ka gǝ gyar hyantǝr rupotu nǝr suwar su akwa whalǝr sambar</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="show_send_crash_report_on" comment="Description when toggle is on">Ma ata kǝra kǝthlǝr, rupotu ata kǝra suwar su ndata mǝzi hyanti tǝni</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="show_send_crash_report_off" comment="Description when toggle is off">Ma dzǝ tsat tsai, rupotu nǝr suwar su adiyata mǝzi hyantǝdzi wɛ</string>
|
||||
<!-- Context: Keyman Settings "Install Keyboard or Dictionary" menu -->
|
||||
<string name="install_from_keyman_dot_com" comment="Install package from Keyman server">Ɓui ka vu tubwar keyman.com</string>
|
||||
<!-- Context: Keyman Settings "Install Keyboard or Dictionary" menu -->
|
||||
<string name="install_from_local_file" comment="Install package file from local device">Ɓui ka vu tubwar local file</string>
|
||||
<!-- Context: Keyman Settings "Install Keyboard or Dictionary" menu -->
|
||||
<string name="install_from_other_device" comment="Scan QR Code">Ɓui ka vu tubwar divais damwa</string>
|
||||
<!-- Context: Keyman Settings "Install Keyboard or Dictionary" menu -->
|
||||
<string name="add_languages_to_installed_keyboard" comment="Install additional languages from a keyboard package">Dzakti nya damwayere akuya ka gǝ vu kibod</string>
|
||||
<!-- Context: Keyman Settings "Install Keyboard or Dictionary" menu -->
|
||||
<string name="add_language_subtext" comment="Additional information for adding another language">(tubwar kibod package)</string>
|
||||
<!-- Context: Select Package and Select Languages menu -->
|
||||
<string name="title_select_keyboard_package_list" comment="Select a keyboard package to add languages">Tsarba Package nǝr Kibod</string>
|
||||
<!-- Context: Select Package and Select Languages menu -->
|
||||
<string name="title_select_languages_for_package" comment="Select language names from the keyboard package">Tsarba nyayere kadǝbar %1$s</string>
|
||||
<!-- Context: Select Package and Select Languages menu -->
|
||||
<string name="added_language_to_keyboard" comment="Notification that a language name is added to a keyboard">Nyayere namtǝ ndǝ dzaktiyere %1$s to %2$s</string>
|
||||
<!-- Context: Select Package and Select Languages menu -->
|
||||
<string name="all_languages_installed" comment="Text when all languages from a keyboard package have been installed">Shanga nyayere ndǝ kurtǝ vu tǝdar</string>
|
||||
<!-- Context: Adjust Keyboard Height menu -->
|
||||
<string name="drag_the_keyboard" comment="First line of adjusting keyboard height">Ndǝrti kibod akuya ka gǝ kǝnta dzugamkurir ko saɓǝlkur su</string>
|
||||
<!-- Context: Adjust Keyboard Height menu -->
|
||||
<string name="rotate_the_device" comment="Second line of adjusting keyboard height">Mwari aka sǝr ʻya su akuyaka gǝ dzuguti njaiyir lanskep</string>
|
||||
<!-- Context: Adjust Keyboard Height menu -->
|
||||
<string name="reset_to_defaults" comment="Button to reset to default heights">Ɓǝla ʻyati tǝni apa Waci</string>
|
||||
<!-- Context: Keyman Web Browser -->
|
||||
<string name="hint_text" comment="Prompt to type in the browser search bar">Bara ko type URL</string>
|
||||
<!-- Context: Keyman Web Browser -->
|
||||
<string name="title_bookmarks" comment="Title for bookmarks">Bookmarkyere</string>
|
||||
<!-- Context: Keyman Web Browser -->
|
||||
<string name="no_bookmarks" comment="Text when bookmark list is empty">Bookmarkyere adiwɛ</string>
|
||||
<!-- Context: Keyman Web Browser -->
|
||||
<string name="add_bookmark" comment="Confirmation to add bookmark">Bookmarkyere adiwɛ</string>
|
||||
<!-- Context: Keyman Web Browser -->
|
||||
<string name="hint_title" comment="Page title for saved bookmark">Thlǝmɛ</string>
|
||||
<!-- Context: Keyman Web Browser -->
|
||||
<string name="hint_url" comment="Page URL for saved bookmark">Url</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="title_package_failed_to_install" comment="Error dialog title when package failed to install">Package %1$s ngǝla vudzi</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="downloading_keyboard_package" comment="Confirmation to download keyboard package filename">Download nǝr kibod package\n%1$s…</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="failed_to_extract" comment="Notification that keyboard package failed to unzip">Ngǝlata kǝlbadzi ko sǝgǝl</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="install_keyboard_package" comment="Title to install keyboard package">Hau ko vu Kibod</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="install_predictive_text_package" comment="Title to install dictionary package">Vu ko hau Dictionary</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="not_valid_package_file" comment="Notification when invalid package file cannot be installed">%1$s adi Keyman package file nam aka peda wɛ.\n%2$s\"</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="no_new_touch_keyboards_to_install" comment="Notification when no touch-optimized keyboards can be installed">Package nǝr kibod adiyaka sǝr tsukwar nǝr vu ka kibodyere ka dar vudzi ko haudzi wɛ</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="no_new_predictive_text_to_install" comment="Notification when no dictionaries can be installed">Predictive text adiwɛ namtǝ ndata mǝzi hau ko vu</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="no_targets_to_install" comment="Notification when a package doesn't contain keyboards or dictionaries">Kibodyere ko predictive text adiwɛ namtǝ ndata vu ko hau</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="no_associated_languages" comment="Notification when a keyboard package doesn't contain languages">Keyboard package adiyaka nyayere namtǝ ndata mǝzi vu ko hau</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="invalid_metadata" comment="kmp.json metadata file is invalid or missing in package">Invalid/Missing metadata in package</string>
|
||||
</resources>
|
||||
155
android/KMAPro/kMAPro/src/main/res/values-hia-rNG/strings.xml
Normal file
155
android/KMAPro/kMAPro/src/main/res/values-hia-rNG/strings.xml
Normal file
|
|
@ -0,0 +1,155 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Context: Menu Action -->
|
||||
<string name="action_share" comment="Menu action to send text content to another app">Tuguta</string>
|
||||
<!-- Context: Menu Action -->
|
||||
<string name="action_web" comment="Menu action to open Keyman browser">Web Browser</string>
|
||||
<!-- Context: Menu Action -->
|
||||
<string name="action_text_size" comment="Menu action to adjust text size">Kaduka Gwaɗa</string>
|
||||
<!-- Context: Menu Action -->
|
||||
<string name="action_overflow" comment="Show additional menu items">Mbakata</string>
|
||||
<!-- Context: Menu Action -->
|
||||
<string name="action_clear_text" comment="Menu action to erase text">Tsuweɗeɗa Gwaɗa</string>
|
||||
<!-- Context: Menu Action -->
|
||||
<string name="action_info" comment="Menu action to display Keyman help page">Info</string>
|
||||
<!-- Context: Menu Action -->
|
||||
<string name="action_settings" comment="Menu action to open Settings menu">Settings</string>
|
||||
<!-- Context: Menu Action -->
|
||||
<string name="action_install_updates" comment="Menu notification that keyboard or dictionary updates available">Fanta tinahunda sa magalo</string>
|
||||
<!-- Context: Title -->
|
||||
<string name="title_version" comment="Title of Keyman for Android version">Version: %1$s</string>
|
||||
<!-- Context: Text label when old Chrome version installed -->
|
||||
<string name="text_require_chrome_57" comment="Banner text when old version of Chrome is installed"> Keyman ɗowt Chrome version 57 ko wuliwa.</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="button_update_chrome" comment="Prompt to upgrade Chrome in the Play Store">Update Chrome</string>
|
||||
<!-- Context: Textfield prompt (… is the ellipsis character "...") -->
|
||||
<string name="textview_hint" comment="Prompt to start typing">A fuɗa vinda ahdina…</string>
|
||||
<!-- Context: Splash screen (version/copyright info currently disabled -->
|
||||
<!-- Context: Splash screen (version/copyright info currently disabled -->
|
||||
<!-- Context: Text Size dialog -->
|
||||
<string name="text_size" comment="Current text size (number)">Text Size: %1$d</string>
|
||||
<!-- Context: Text Size dialog -->
|
||||
<string name="ic_text_size_up" comment="Make text bigger">Text size up</string>
|
||||
<!-- Context: Text Size dialog -->
|
||||
<string name="ic_text_size_down" comment="Make text smaller">Text size down</string>
|
||||
<!-- Context: Clear Text dialog -->
|
||||
<string name="all_text_will_be_cleared" comment="Erase all the text">\nSma inaha ngana da ɗughwana\n</string>
|
||||
<!-- Context: Get Started menu -->
|
||||
<string name="get_started" comment="Menu for getting started">Yagha a fuɗa</string>
|
||||
<!-- Context: Get Started menu -->
|
||||
<string name="add_a_keyboard" comment="Menu item to add a keyboard">A mbaka t keyboard anga gwaɗa luwaghini</string>
|
||||
<!-- Context: Get Started menu -->
|
||||
<string name="enable_system_keyboard" comment="Menu item to enable Keyman as system keyboard">Maghva Keyman as system-wide keyboard</string>
|
||||
<!-- Context: Get Started menu -->
|
||||
<string name="set_keyman_as_default" comment="Menu item to set Keyman as default system keyboard">Affat Keyman man keyboard kol ɗughwana</string>
|
||||
<!-- Context: Get Started menu -->
|
||||
<string name="more_info" comment="Open the Keyman for Android help page">Mbakat info</string>
|
||||
<!-- Context: Get Started menu -->
|
||||
<string name="show_get_started" comment="Show the "Get Started" menu on startup">Marant \"%1$s\" taghan startup</string>
|
||||
<!-- Context: Android Storage Permission -->
|
||||
<string name="request_storage_permission" comment="Request storage permission to access keyboard packages"> Ka funt keyboard packages, avathla Keyman wativa jangat ina fal ta bileke.</string>
|
||||
<!-- Context: Android Storage Permission -->
|
||||
<string name="storage_permission_denied" comment="Keyboard package installation may fail since Android storage permission not granted"> Wativa fata ɗowlo thlaha thlaha. Kaɗa ha da fant keyboard package wo</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="keyman_settings" comment="Settings menu title">Settings</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<plurals name="installed_languages">
|
||||
<item quantity="zero">Gwaɗa luwagwaɗa luwa (%1$d)</item>
|
||||
<item quantity="one">Gwaɗa luwagwaɗa luwa (%1$d)</item>
|
||||
<item quantity="other">Gwaɗa luwagwaɗa luwa (%1$d)</item>
|
||||
</plurals>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="install_keyboard_or_dictionary" comment="Menu item to install keyboard or dictionary">Fant Keyboard ko Dictionary</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="change_display_language" comment="Menu action to change interface language">Sangabt gwaɗa luwa</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="adjust_keyboard_height" comment="Menu action to adjust keyboard height">Gulat keyboard fiwukini</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="spacebar_caption" comment="Menu action to set the spacebar caption">Spacebar caption</string>
|
||||
<!-- Context: Keyman Settings menu / Spacebar caption -->
|
||||
<string name="spacebar_caption_keyboard" comment="Spacebar caption option - keyboard">Ina ta faftal jiv tadiye k vinda an kompitaina ta faftal jiv tadiye k vinda an kompita</string>
|
||||
<!-- Context: Keyman Settings menu / Spacebar caption -->
|
||||
<string name="spacebar_caption_language" comment="Spacebar caption option - language">Gwaɗa luwa</string>
|
||||
<!-- Context: Keyman Settings menu / Spacebar caption -->
|
||||
<string name="spacebar_caption_language_keyboard" comment="Spacebar caption option - language + keyboard">Gwaɗa luwa nda keyboard</string>
|
||||
<!-- Context: Keyman Settings menu / Spacebar caption -->
|
||||
<string name="spacebar_caption_blank" comment="Spacebar caption option - blank">Ha konuwo</string>
|
||||
<!-- Context: Keyman Settings menu / Spacebar caption hint -->
|
||||
<string name="spacebar_caption_hint_keyboard" comment="Spacebar caption hint - keyboard">Marant keyboard zirin taghan spacebar</string>
|
||||
<!-- Context: Keyman Settings menu / Spacebar caption hint -->
|
||||
<string name="spacebar_caption_hint_language" comment="Spacebar caption hint - language">Marant gwaɗa luwa taghan spacebar</string>
|
||||
<!-- Context: Keyman Settings menu / Spacebar caption hint -->
|
||||
<string name="spacebar_caption_hint_language_keyboard" comment="Spacebar caption hint - language + keyboard">Gwaɗa luwa nda keyboard zirini taghan spacebar</string>
|
||||
<!-- Context: Keyman Settings menu / Spacebar caption hint -->
|
||||
<string name="spacebar_caption_hint_blank" comment="Spacebar caption hint - blank">Eh marantaka t caption taghan spacebar</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="show_banner" comment="text suggestions banner">Ko ngawa an mara t banner</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="show_banner_on" comment="Description when toggle is on">Da moge molo</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="show_banner_off" comment="Description when toggle is off">Vita haɗuwo, kawai t marantal predictive text vita hahaɗe</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="show_send_crash_report" comment="permission for sending crash reports">Avathla t tsaghat gwaɗha tabga tala taghan network</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="show_send_crash_report_on" comment="Description when toggle is on">Vita tadeɗe, gwaɗha tabga tala an jivan jivo da tsighaptal jebe</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="show_send_crash_report_off" comment="Description when toggle is off">Vita haɗ tadewo, gwaɗan jivan jivo hal da tsighapta jebwo</string>
|
||||
<!-- Context: Keyman Settings "Install Keyboard or Dictionary" menu -->
|
||||
<string name="install_from_keyman_dot_com" comment="Install package from Keyman server">An fa avla keyman.com</string>
|
||||
<!-- Context: Keyman Settings "Install Keyboard or Dictionary" menu -->
|
||||
<string name="install_from_local_file" comment="Install package file from local device">An fa avla local file</string>
|
||||
<!-- Context: Keyman Settings "Install Keyboard or Dictionary" menu -->
|
||||
<string name="install_from_other_device" comment="Scan QR Code">An fa da minaha sakwiɗi</string>
|
||||
<!-- Context: Keyman Settings "Install Keyboard or Dictionary" menu -->
|
||||
<string name="add_languages_to_installed_keyboard" comment="Install additional languages from a keyboard package">A mbaka gwaɗa luwaha ka fant keyboard</string>
|
||||
<!-- Context: Keyman Settings "Install Keyboard or Dictionary" menu -->
|
||||
<string name="add_language_subtext" comment="Additional information for adding another language">(avla keyboard package)</string>
|
||||
<!-- Context: Select Package and Select Languages menu -->
|
||||
<string name="title_select_keyboard_package_list" comment="Select a keyboard package to add languages">Abkla t Keyboard Package</string>
|
||||
<!-- Context: Select Package and Select Languages menu -->
|
||||
<string name="title_select_languages_for_package" comment="Select language names from the keyboard package">Abkla gwaɗaha luwa anga %1$s</string>
|
||||
<!-- Context: Select Package and Select Languages menu -->
|
||||
<string name="added_language_to_keyboard" comment="Notification that a language name is added to a keyboard">Gwaɗaha luwunda mbakalo %1$s to %2$s</string>
|
||||
<!-- Context: Select Package and Select Languages menu -->
|
||||
<string name="all_languages_installed" comment="Text when all languages from a keyboard package have been installed">Sma gwaɗaha luwunda falo</string>
|
||||
<!-- Context: Adjust Keyboard Height menu -->
|
||||
<string name="drag_the_keyboard" comment="First line of adjusting keyboard height">An tiɗat keyboard ka virata mbakat fiwuku</string>
|
||||
<!-- Context: Adjust Keyboard Height menu -->
|
||||
<string name="rotate_the_device" comment="Second line of adjusting keyboard height">Awava tina ngana ka gulat foto nda plavant bugo</string>
|
||||
<!-- Context: Adjust Keyboard Height menu -->
|
||||
<string name="reset_to_defaults" comment="Button to reset to default heights">Virata magat ina kol ɗughwana</string>
|
||||
<!-- Context: Keyman Web Browser -->
|
||||
<string name="hint_text" comment="Prompt to type in the browser search bar">Psa ko vinda URL</string>
|
||||
<!-- Context: Keyman Web Browser -->
|
||||
<string name="title_bookmarks" comment="Title for bookmarks">Bookmarks</string>
|
||||
<!-- Context: Keyman Web Browser -->
|
||||
<string name="no_bookmarks" comment="Text when bookmark list is empty">Haɗ Bookmarks wo</string>
|
||||
<!-- Context: Keyman Web Browser -->
|
||||
<string name="add_bookmark" comment="Confirmation to add bookmark">A mbakat Bookmark</string>
|
||||
<!-- Context: Keyman Web Browser -->
|
||||
<string name="hint_title" comment="Page title for saved bookmark">Title</string>
|
||||
<!-- Context: Keyman Web Browser -->
|
||||
<string name="hint_url" comment="Page URL for saved bookmark">Url</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="title_package_failed_to_install" comment="Error dialog title when package failed to install">Package %1$s kalavu kala ka fanta</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="downloading_keyboard_package" comment="Confirmation to download keyboard package filename">Angas t keyboard package\n%1$s…</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="failed_to_extract" comment="Notification that keyboard package failed to unzip">Kalavu kala k klapta</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="install_keyboard_package" comment="Title to install keyboard package">An fat Keyboard</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="install_predictive_text_package" comment="Title to install dictionary package">An fat Dictionary</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="not_valid_package_file" comment="Notification when invalid package file cannot be installed">%1$s is not a valid Keyman package file.\n%2$s\"</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="no_new_touch_keyboards_to_install" comment="Notification when no touch-optimized keyboards can be installed">Keyboard package has no touch-optimized keyboards to install</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="no_new_predictive_text_to_install" comment="Notification when no dictionaries can be installed">Ha wuliwa predictive text anga fantawo</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="no_targets_to_install" comment="Notification when a package doesn't contain keyboards or dictionaries">Ha keyboards ko predictive text anga fantawo</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="no_associated_languages" comment="Notification when a keyboard package doesn't contain languages">Keyboard package na haɗ nda gwaɗa luwunda garavata da fantal wo</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="invalid_metadata" comment="kmp.json metadata file is invalid or missing in package">Ɗughwanbuwo/zaɗata metadata an package</string>
|
||||
</resources>
|
||||
154
android/KMAPro/kMAPro/src/main/res/values-mrt-rNG/strings.xml
Normal file
154
android/KMAPro/kMAPro/src/main/res/values-mrt-rNG/strings.xml
Normal file
|
|
@ -0,0 +1,154 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Context: Menu Action -->
|
||||
<string name="action_share" comment="Menu action to send text content to another app">Ntiku</string>
|
||||
<!-- Context: Menu Action -->
|
||||
<string name="action_web" comment="Menu action to open Keyman browser">Web Browser</string>
|
||||
<!-- Context: Menu Action -->
|
||||
<string name="action_text_size" comment="Menu action to adjust text size">Nga nur Ruɓutsini</string>
|
||||
<!-- Context: Menu Action -->
|
||||
<string name="action_overflow" comment="Show additional menu items">Odi</string>
|
||||
<!-- Context: Menu Action -->
|
||||
<string name="action_clear_text" comment="Menu action to erase text">Kukulna ruɓutsini</string>
|
||||
<!-- Context: Menu Action -->
|
||||
<string name="action_info" comment="Menu action to display Keyman help page">Labar</string>
|
||||
<!-- Context: Menu Action -->
|
||||
<string name="action_settings" comment="Menu action to open Settings menu">Settings</string>
|
||||
<!-- Context: Menu Action -->
|
||||
<string name="action_install_updates" comment="Menu notification that keyboard or dictionary updates available">Install Updates</string>
|
||||
<!-- Context: Title -->
|
||||
<string name="title_version" comment="Title of Keyman for Android version">Version: %1$s</string>
|
||||
<!-- Context: Text label when old Chrome version installed -->
|
||||
<string name="text_require_chrome_57" comment="Banner text when old version of Chrome is installed">Keyman naja ayu version nur Chrome 57 akiya mai bilin.</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="button_update_chrome" comment="Prompt to upgrade Chrome in the Play Store">Fia Chrome bilin</string>
|
||||
<!-- Context: Textfield prompt (… is the ellipsis character "...") -->
|
||||
<string name="textview_hint" comment="Prompt to start typing">Baditsini ruɓutsini uvun…</string>
|
||||
<!-- Context: Splash screen (version/copyright info currently disabled -->
|
||||
<!-- Context: Splash screen (version/copyright info currently disabled -->
|
||||
<!-- Context: Text Size dialog -->
|
||||
<string name="text_size" comment="Current text size (number)">Nga nur ruɓutsini: %1$d</string>
|
||||
<!-- Context: Text Size dialog -->
|
||||
<string name="ic_text_size_up" comment="Make text bigger">Nga nur ruɓutsini adagiju</string>
|
||||
<!-- Context: Text Size dialog -->
|
||||
<string name="ic_text_size_down" comment="Make text smaller">Nga nur ruɓutsini adzia</string>
|
||||
<!-- Context: Clear Text dialog -->
|
||||
<string name="all_text_will_be_cleared" comment="Erase all the text">\nCa ruɓutsini ara kukulna\n</string>
|
||||
<!-- Context: Get Started menu -->
|
||||
<string name="get_started" comment="Menu for getting started">Kuga baditsini</string>
|
||||
<!-- Context: Get Started menu -->
|
||||
<string name="add_a_keyboard" comment="Menu item to add a keyboard">Mchaku ŋya nur keyboard</string>
|
||||
<!-- Context: Get Started menu -->
|
||||
<string name="enable_system_keyboard" comment="Menu item to enable Keyman as system keyboard">Enable Keyman as system-wide keyboard</string>
|
||||
<!-- Context: Get Started menu -->
|
||||
<string name="set_keyman_as_default" comment="Menu item to set Keyman as default system keyboard">Fia Keyman digu default nur keyboard ari</string>
|
||||
<!-- Context: Get Started menu -->
|
||||
<string name="more_info" comment="Open the Keyman for Android help page">Labar nagum odi</string>
|
||||
<!-- Context: Get Started menu -->
|
||||
<string name="show_get_started" comment="Show the "Get Started" menu on startup">Nchaba \"%1$s\" magu ga baditsini</string>
|
||||
<!-- Context: Android Storage Permission -->
|
||||
<string name="request_storage_permission" comment="Request storage permission to access keyboard packages">Kuga install package nur keyboard yer, ngeri lagu anu Keyman kija karatsini external storage.</string>
|
||||
<!-- Context: Android Storage Permission -->
|
||||
<string name="storage_permission_denied" comment="Keyboard package installation may fail since Android storage permission not granted">Naja nkani lagur ɗuwa su. Acittu install keyboard package mai</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="keyman_settings" comment="Settings menu title">Settings</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<plurals name="installed_languages">
|
||||
<item quantity="one">Installed ŋya yer (%1$d)</item>
|
||||
<item quantity="other">Fia Ŋya yer (%1$d)</item>
|
||||
</plurals>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="install_keyboard_or_dictionary" comment="Menu item to install keyboard or dictionary">Install Keyboard akiya mai Dictionary</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="change_display_language" comment="Menu action to change interface language">Ncha ŋya dun mji vur iu thlir duri</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="adjust_keyboard_height" comment="Menu action to adjust keyboard height">Fia dzigamkur nur keyboard kalkal</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="spacebar_caption" comment="Menu action to set the spacebar caption">Ruɓutsini ar Spaceba</string>
|
||||
<!-- Context: Keyman Settings menu / Spacebar caption -->
|
||||
<string name="spacebar_caption_keyboard" comment="Spacebar caption option - keyboard">Keyboard</string>
|
||||
<!-- Context: Keyman Settings menu / Spacebar caption -->
|
||||
<string name="spacebar_caption_language" comment="Spacebar caption option - language">Ŋya</string>
|
||||
<!-- Context: Keyman Settings menu / Spacebar caption -->
|
||||
<string name="spacebar_caption_language_keyboard" comment="Spacebar caption option - language + keyboard">Ŋya + Keyboard</string>
|
||||
<!-- Context: Keyman Settings menu / Spacebar caption -->
|
||||
<string name="spacebar_caption_blank" comment="Spacebar caption option - blank">Ruɓutsini aʻi mai</string>
|
||||
<!-- Context: Keyman Settings menu / Spacebar caption hint -->
|
||||
<string name="spacebar_caption_hint_keyboard" comment="Spacebar caption hint - keyboard">Ŋcha thlimur keyboard arkra spaceba</string>
|
||||
<!-- Context: Keyman Settings menu / Spacebar caption hint -->
|
||||
<string name="spacebar_caption_hint_language" comment="Spacebar caption hint - language">Ŋcha thlimur ŋya arkra spaceba</string>
|
||||
<!-- Context: Keyman Settings menu / Spacebar caption hint -->
|
||||
<string name="spacebar_caption_hint_language_keyboard" comment="Spacebar caption hint - language + keyboard">Ŋya baɗa keyboard arkra spaceba</string>
|
||||
<!-- Context: Keyman Settings menu / Spacebar caption hint -->
|
||||
<string name="spacebar_caption_hint_blank" comment="Spacebar caption hint - blank">Asuka ga ncha ruɓutsini arkra spaceba mai</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="show_banner" comment="text suggestions banner">Kuga ncha banner zarzar</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="show_banner_on" comment="Description when toggle is on">Nanda ara iu</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="show_banner_off" comment="Description when toggle is off">Ma naja vur iu thlir mai, naja vur ncha jili predictive text kuku vur iu thlir</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="show_send_crash_report" comment="permission for sending crash reports">Ngeri hyanba crash report u network</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="show_send_crash_report_on" comment="Description when toggle is on">Ma naja vur iu thlir, mji acittu hyanba crash report</string>
|
||||
<!-- Context: Keyman Settings menu -->
|
||||
<string name="show_send_crash_report_off" comment="Description when toggle is off">Ma naja vur iu thlir mai, mji acittu hyanba crash report mai</string>
|
||||
<!-- Context: Keyman Settings "Install Keyboard or Dictionary" menu -->
|
||||
<string name="install_from_keyman_dot_com" comment="Install package from Keyman server">Install ara keyman.com</string>
|
||||
<!-- Context: Keyman Settings "Install Keyboard or Dictionary" menu -->
|
||||
<string name="install_from_local_file" comment="Install package file from local device">Install ara local file</string>
|
||||
<!-- Context: Keyman Settings "Install Keyboard or Dictionary" menu -->
|
||||
<string name="install_from_other_device" comment="Scan QR Code">Install ara su nagum yer</string>
|
||||
<!-- Context: Keyman Settings "Install Keyboard or Dictionary" menu -->
|
||||
<string name="add_languages_to_installed_keyboard" comment="Install additional languages from a keyboard package">Mchaku ŋya yer ga installed keyboard</string>
|
||||
<!-- Context: Keyman Settings "Install Keyboard or Dictionary" menu -->
|
||||
<string name="add_language_subtext" comment="Additional information for adding another language">(ara keyboard package)</string>
|
||||
<!-- Context: Select Package and Select Languages menu -->
|
||||
<string name="title_select_keyboard_package_list" comment="Select a keyboard package to add languages">Caɗu Keyboard Package</string>
|
||||
<!-- Context: Select Package and Select Languages menu -->
|
||||
<string name="title_select_languages_for_package" comment="Select language names from the keyboard package">Caɗu jili ŋya yer anu %1$s</string>
|
||||
<!-- Context: Select Package and Select Languages menu -->
|
||||
<string name="added_language_to_keyboard" comment="Notification that a language name is added to a keyboard">Ŋya du mji a mchakuri %1$s alu %2$s</string>
|
||||
<!-- Context: Select Package and Select Languages menu -->
|
||||
<string name="all_languages_installed" comment="Text when all languages from a keyboard package have been installed">Ca ŋya yer kuku du mji akuya installed</string>
|
||||
<!-- Context: Adjust Keyboard Height menu -->
|
||||
<string name="drag_the_keyboard" comment="First line of adjusting keyboard height">Cina keyboard gadibar ngilaba dzigamkur ari</string>
|
||||
<!-- Context: Adjust Keyboard Height menu -->
|
||||
<string name="rotate_the_device" comment="Second line of adjusting keyboard height">Shina su ari ga ngilaba dzigamkur baɗa ŋga ari</string>
|
||||
<!-- Context: Adjust Keyboard Height menu -->
|
||||
<string name="reset_to_defaults" comment="Button to reset to default heights">Iri ga munagu alu lagu ginda nur dang</string>
|
||||
<!-- Context: Keyman Web Browser -->
|
||||
<string name="hint_text" comment="Prompt to type in the browser search bar">Nguba akiya mai ruɓutsini URL</string>
|
||||
<!-- Context: Keyman Web Browser -->
|
||||
<string name="title_bookmarks" comment="Title for bookmarks">Bookmarks</string>
|
||||
<!-- Context: Keyman Web Browser -->
|
||||
<string name="no_bookmarks" comment="Text when bookmark list is empty">Bookmarks aʻi mai</string>
|
||||
<!-- Context: Keyman Web Browser -->
|
||||
<string name="add_bookmark" comment="Confirmation to add bookmark">Mchaku Bookmark</string>
|
||||
<!-- Context: Keyman Web Browser -->
|
||||
<string name="hint_title" comment="Page title for saved bookmark">Kra ndir</string>
|
||||
<!-- Context: Keyman Web Browser -->
|
||||
<string name="hint_url" comment="Page URL for saved bookmark">Url</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="title_package_failed_to_install" comment="Error dialog title when package failed to install">Package %1$s a ngil ga install</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="downloading_keyboard_package" comment="Confirmation to download keyboard package filename">Kuga Download keyboard package \n%1$s…</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="failed_to_extract" comment="Notification that keyboard package failed to unzip">A ngil ga ziba</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="install_keyboard_package" comment="Title to install keyboard package">Install Keyboard</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="install_predictive_text_package" comment="Title to install dictionary package">Install Dictionary</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="not_valid_package_file" comment="Notification when invalid package file cannot be installed">%1$s naja aʻi Keyman package kuku kalkal mai. \n%2$s\"</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="no_new_touch_keyboards_to_install" comment="Notification when no touch-optimized keyboards can be installed">Keyboard package naja aga touch-optimized keyboards ga fu mai</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="no_new_predictive_text_to_install" comment="Notification when no dictionaries can be installed">Predictive text bilin aʻi mai ga install</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="no_targets_to_install" comment="Notification when a package doesn't contain keyboards or dictionaries">Keyboard akiya mai predictive text nanda aʻi mai ga install</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="no_associated_languages" comment="Notification when a keyboard package doesn't contain languages">Keyboard package naja aga ŋya nagum ga install mai</string>
|
||||
<!-- Context: KMP Package strings -->
|
||||
<string name="invalid_metadata" comment="kmp.json metadata file is invalid or missing in package">Kra kalkal/metadata package kuku ga sanakir akwa package ari</string>
|
||||
</resources>
|
||||
|
|
@ -248,7 +248,8 @@
|
|||
var keyPos = x.toString() + ',' + y.toString();
|
||||
for(i=0; i<obj.length; i++)
|
||||
{
|
||||
s=s+obj[i].layer+'-'+obj[i].coreID;
|
||||
// elementID contains the layer and coreID
|
||||
s=s+obj[i].elementID;
|
||||
if(obj[i].sp == 1 || obj[i].sp == 2) shift = true;
|
||||
if(typeof(obj[i].text) != 'undefined' && obj[i].text != null && obj[i].text != '') s=s+':'+toHex(obj[i].text);
|
||||
if(i < (obj.length -1)) s=s+';'
|
||||
|
|
|
|||
|
|
@ -51,10 +51,13 @@ public class DisplayLanguages {
|
|||
new DisplayLanguageType("de-DE", "German"),
|
||||
new DisplayLanguageType("kr-NG", "Kanuri"),
|
||||
new DisplayLanguageType("km-KH", "Khmer"),
|
||||
new DisplayLanguageType("ckl-NG", "Kibaku"),
|
||||
new DisplayLanguageType("mfi-NG", "Mandara (Wandala)"),
|
||||
new DisplayLanguageType("mrt-NG", "Marghi"),
|
||||
new DisplayLanguageType("ann", "Obolo"),
|
||||
new DisplayLanguageType("ff-ZA", "Pulaar-Fulfulde"), // or Fulah
|
||||
new DisplayLanguageType("shu-latn", "Shuwa (Latin)"),
|
||||
new DisplayLanguageType("hia-NG", "Waha"),
|
||||
new DisplayLanguageType("zh-CN", "中文(简体) (Simplified Chinese)")
|
||||
};
|
||||
return languages;
|
||||
|
|
|
|||
158
android/KMEA/app/src/main/res/values-ckl-rNG/strings.xml
Normal file
158
android/KMEA/app/src/main/res/values-ckl-rNG/strings.xml
Normal file
|
|
@ -0,0 +1,158 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Device type -->
|
||||
<!-- Application name (Keyman Engine for Android) -->
|
||||
<!-- Context: Title for list -->
|
||||
<plurals name="title_keyboards">
|
||||
<item quantity="one">Kibod</item>
|
||||
<item quantity="other">Kibodyere</item>
|
||||
</plurals>
|
||||
<!-- Context: Title for list -->
|
||||
<plurals name="title_other_input_methods">
|
||||
<item quantity="one">Other Input Method</item>
|
||||
<item quantity="other">Other Input Methods</item>
|
||||
</plurals>
|
||||
<!-- Context: Title for list -->
|
||||
<string name="title_add_keyboard" comment="Add a new keyboard">Dzakǝr Kibod Ɓǝlin</string>
|
||||
<!-- Context: Title for list -->
|
||||
<string name="title_languages_settings" comment="List of installed languages">Nyayere Namtǝ Ndǝ Vu</string>
|
||||
<!-- Context: Title for list -->
|
||||
<string name="title_language_settings" comment="Keyman Settings for a language">%1$s Settingyere</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_add" comment="Button to add an item">Pukǝr</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_back" comment="Button to go back">Mwari tubwa hi</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_cancel" comment="Button to cancel an action">Kansǝl</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_close" comment="Close a dialog">Harti</string>
|
||||
<!-- Context: Button label. Removed in Keyman 15 -->
|
||||
<string name="label_close_keyman" comment="Close the Keyman application">Harti Keyman</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_forward" comment="Button to go forward">Alǝkǝma</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_next_input_method" comment="Switch to next input method (replaces label_close_keyman)">Whalǝr ʻYati su Alǝkǝma</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_download" comment="Button to confirm downloading an item">Sǝgǝl akǝr</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_install" comment="Confirmation to install a package">Vu ko hau</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_later" comment="Do an action at a later time">Aɦǝla saka nkiɗu</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_next" comment="Go to the next screen">Akǝma</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_ok" comment="Button to acknowledge a dialog">Kal kal</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_update" comment="Dialog button to update a resource">Update</string>
|
||||
<!-- Context: Keyboard Updates -->
|
||||
<string name="cannot_connect" comment="Error message when network connection fails">Adi ata mǝzi ɓui ka lukwa Keyman server wɛ!</string>
|
||||
<!-- Context: Keyboard Updates -->
|
||||
<string name="confirm_delete_keyboard" comment="Confirmation to delete a keyboard">Gada bara ɗlǝba ka ɗalba kibod ǝni ya?</string>
|
||||
<!-- Context: Keyboard Updates -->
|
||||
<string name="confirm_download_keyboard" comment="Confirmation to download a keyboard update">Gada bara download vershon nam ɓǝlin nǝr kibod ǝni ya?</string>
|
||||
<!-- Context: Keyboard Updates -->
|
||||
<string name="confirm_update" comment="Confirmation to update several resources">Gada bara ka update kibodyere ba and dictionariyere kulini ya?</string>
|
||||
<!-- Context: Keyboard Updates -->
|
||||
<string name="keyboard_updates_channel">Updateyere nǝr sǝr kǝthlǝr</string>
|
||||
<!-- Context: Keyboard Updates -->
|
||||
<string name="keyboard_updates_available" comment="Notification when resource updates are available">Updateyere Nǝr Sǝr Kǝthlǝr Nam Adai</string>
|
||||
<!-- Context: Keyboard Updates -->
|
||||
<string name="update_available" comment="Currently installed version of a resource with an available update">%1$s (Updateyer Nam Adai)</string>
|
||||
<!-- Context: Keyboard Updates -->
|
||||
<string name="keyboard_update_message" comment="language name: keyboard name"> Updateyere nam adai nǝr kibod %1$s: %2$s </string>
|
||||
<!-- Context: Keyboard Updates -->
|
||||
<string name="dictionary_update_message">Updateyere nam adai nǝr dictionary %1$s: %2$s </string>
|
||||
<!-- Context: Keyboard Info and Keyboard Settings -->
|
||||
<string name="keyboard_version" comment="Label for keyboard version">Vershon nǝr kibod</string>
|
||||
<!-- Context: Keyboard Info and Keyboard Settings -->
|
||||
<string name="help_link" comment="Label for help link">Link nǝr dlarɛ</string>
|
||||
<!-- Context: Keyboard Info and Keyboard Settings -->
|
||||
<string name="uninstall_keyboard" comment="Label for uninstalling keyboard">Faba ka ɗalba kibod</string>
|
||||
<!-- Context: Keyboard Info and Keyboard Settings -->
|
||||
<string name="keyboard_picker_new_keyboard" comment="Mark a language name that's newly installed in keyboard list">[new] %1$s</string>
|
||||
<!-- Context: Keyboard Info and Keyboard Settings -->
|
||||
<string name="keyboard_qr_code" comment="QR Code description"> Skanba code ǝni akuya ka gǝ vu ǝni akwa\nkeyboard divais damwa</string>
|
||||
<!-- Context: Keyboard Help welcome.htm title -->
|
||||
<string name="welcome_package" comment="Title to welcome.htm page (name and version)">Usɛ aka si akwa %1$s</string>
|
||||
<!-- Context: Keyboard app doesn't include FileProvider library needed to view help file -->
|
||||
<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 -->
|
||||
<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 -->
|
||||
<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>
|
||||
<!-- Context: Model Updates -->
|
||||
<string name="confirm_download_model" comment="Confirmation to download a dictionary update">Gada bara download vershon nam ɓǝlin nǝr kibod ǝni ya?</string>
|
||||
<!-- Context: No associated dictionary found -->
|
||||
<string name="no_associated_model" comment="Confirmation there's no available dictionary to download">Dictionary adiwɛ akuya ka ndǝ download</string>
|
||||
<!-- Context: Model Updates -->
|
||||
<string name="catalog_unavailable" comment="Notification that the cloud resource catalog can't be updated">Katalog nǝr dlarɛ adiwɛ</string>
|
||||
<!-- Context: Background download messages-->
|
||||
<string name="catalog_download_start_in_background" comment="Notification that the resource catalog update will begin">Update nǝr Katalog badicini akwa background</string>
|
||||
<!-- Context: Background download messages-->
|
||||
<string name="catalog_download_is_running_in_background" comment="Notification that the resource catalog update is still downloading"> Katalogari tsu ata kǝra downloading; usɛ ɓǝla dzakti nkǝrti aɦǝla saka nkiɗu laka kadwam!</string>
|
||||
<!-- Context: Background download messages-->
|
||||
<string name="progress_message_checking_resource_is_running" comment="Progress notification that the check for a resource is still running ">Ata kǝra chakǝnta ka bara sǝr ampaniyere wato resource</string>
|
||||
<!-- Context: Background download messages-->
|
||||
<string name="keyboard_download_start_in_background" comment="Notification that a keyboard download has started">Downloading keyboard badicini akwa Background</string>
|
||||
<!-- Context: Background download messages-->
|
||||
<string name="keyboard_download_is_running_in_background" comment="Notification that a keyboard download is still running">Kibodnamtǝ gǝ tsarba ata kǝra downloading; usɛ dzakti nkǝrti kadawm aɦǝla saka nkiɗu laka!</string>
|
||||
<!-- Context: Background download messages-->
|
||||
<string name="keyboard_download_finished" comment="Notification that a keyboard download has finished">Keyboard download kǝ kuri!</string>
|
||||
<!-- Context: Background download messages-->
|
||||
<string name="dictionary_download_start_in_background" comment="Notification that a dictionary download has started">Downloading dictionary kǝ Badicini Aɦǝli</string>
|
||||
<!-- Context: Background download messages-->
|
||||
<string name="dictionary_download_is_running_in_background" comment="Notification that a dictionary download is still running">Kibod namtǝ gǝ tsarba ata kǝra downloading; usɛ dzakti nkǝrti kadawm aɦǝla saka nkiɗu laka!</string>
|
||||
<!-- Context: Background download messages-->
|
||||
<string name="dictionary_download_finished" comment="Notification that a dictionary download has finished">Keyboard download kǝ kuri.</string>
|
||||
<!-- Context: Background download messages -->
|
||||
<string name="download_failed" comment="Notification that a download failed">Download ta mǝzi ʻya wɛ</string>
|
||||
<!-- Context: Background download messages -->
|
||||
<string name="failed_to_retrieve_file" comment="Failed to retrieve downloaded file">Ta ɓui ka download fail wɛ</string>
|
||||
<!-- Context: General Updates -->
|
||||
<string name="update_check_unavailable" comment="Error message when a Keyman server can't be reached">Ta ɓui ka lukwa server wɛ!</string>
|
||||
<!-- Context: General Updates -->
|
||||
<string name="update_check_current" comment="Notification that all resources are up to date">"Shanga suyere nam adai ani up to date!"</string>
|
||||
<!-- Context: General Updates -->
|
||||
<string name="update_failed" comment="Notification that a resource update failed">Duku akwa ko hang ta ǝniyere ngǝlata ʻya update!</string>
|
||||
<!-- Context: General Updates -->
|
||||
<string name="update_success" comment="Notification that a resource update successfully updated">Sǝr kǝthlǝryere nam adai kǝ ʻya update kal kal!</string>
|
||||
<!-- Context: Model Info -->
|
||||
<string name="model_version" comment="Title for a dictionary version">Version nǝr Dictionary</string>
|
||||
<!-- Context: Model Info -->
|
||||
<string name="uninstall_model" comment="Label to uninstall a dictionary">Kǝlba ka ɗalba dictionary</string>
|
||||
<!-- Context: Model Info -->
|
||||
<string name="confirm_delete_model" comment="Confirmation to delete a dictionary">Gada bara kǝlba ka ɗalba dictionary ǝni ya?</string>
|
||||
<!-- Context: Language Settings Keyboard install strings -->
|
||||
<string name="keyboard_install_toast" comment="Notification when a keyboard is installed">%1$s ndǝ kurta vu kibod</string>
|
||||
<!-- Context: Language Settings menu strings -->
|
||||
<string name="enable_corrections" comment="Enable corrections from the suggestion banner">Mǝrti ka dza mǝzi ʻyati ka dzǝ dzukti suwar su wato correctionyere</string>
|
||||
<!-- Context: Language Settings menu strings -->
|
||||
<string name="enable_predictions" comment="Enable predictions from the suggestion banner">Enable predictions</string>
|
||||
<!-- Context: Language Settings menu strings -->
|
||||
<string name="model_label">Dictionary</string>
|
||||
<!-- Context: Language Settings menu substring - Check for available dictionary -->
|
||||
<string name="check_available_model" comment="Check for available dictionary">Baraba ka zǝndi dictionary nam adai</string>
|
||||
<!-- Context: Language Settings menu strings -->
|
||||
<string name="model_info_header" comment="Dictionary name">Dictionary: %1$s</string>
|
||||
<!-- Context: Language Settings menu strings -->
|
||||
<string name="model_picker_header" comment="Dictionaries for a specified language">%1$s dictionariyere</string>
|
||||
<!-- Context: Language Settings menu strings -->
|
||||
<!-- Context: Language Settings menu strings -->
|
||||
<string name="model_install_toast" comment="Notification when a dictionary is installed">Dictionary namtǝ ndǝ vu ko hau</string>
|
||||
<!-- Context: Language Settings menu strings -->
|
||||
<plurals name="keyboard_count">
|
||||
<item quantity="one">(%1$d kibod)</item>
|
||||
<item quantity="other">(%1$d kibodyere)</item>
|
||||
</plurals>
|
||||
<!-- Context: "Change Display Language" menu -->
|
||||
<string name="default_locale" comment="Use the device's current locale">Default Locale</string>
|
||||
<!-- Context: Content descriptions -->
|
||||
<!-- Context: Content descriptions -->
|
||||
<!-- Context: Popup menu labels -->
|
||||
<string name="label_delete" comment="Confirmation to delete an item">Kǝlba ka ɗalba</string>
|
||||
<!-- Context: Shared preferences name -->
|
||||
<!-- Context: Other strings -->
|
||||
<string name="help_bubble_text">Tsukwar vi ǝni akuya ka gǝ pali kibod</string>
|
||||
</resources>
|
||||
161
android/KMEA/app/src/main/res/values-hia-rNG/strings.xml
Normal file
161
android/KMEA/app/src/main/res/values-hia-rNG/strings.xml
Normal file
|
|
@ -0,0 +1,161 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Device type -->
|
||||
<!-- Application name (Keyman Engine for Android) -->
|
||||
<!-- Context: Title for list -->
|
||||
<plurals name="title_keyboards">
|
||||
<item quantity="zero">Keyboardina ta faftal jiv tadiye k vinda an kompitaina ta faftal jiv tadiye k vinda an kompita</item>
|
||||
<item quantity="one">Keyboardina ta faftal jiv tadiye k vinda an kompitaina ta faftal jiv tadiye k vinda an kompita</item>
|
||||
<item quantity="other">Keyboardina ta faftal jiv tadiye k vinda an kompitaina ta faftal jiv tadiye k vinda an kompita</item>
|
||||
</plurals>
|
||||
<!-- Context: Title for list -->
|
||||
<plurals name="title_other_input_methods">
|
||||
<item quantity="zero">Other Input Methods</item>
|
||||
<item quantity="one">Other Input Method</item>
|
||||
<item quantity="other">Other Input Methods</item>
|
||||
</plurals>
|
||||
<!-- Context: Title for list -->
|
||||
<string name="title_add_keyboard" comment="Add a new keyboard">A mbakat wuliwa Keyboard</string>
|
||||
<!-- Context: Title for list -->
|
||||
<string name="title_languages_settings" comment="List of installed languages">Gwaɗaha luwahunda fanlo</string>
|
||||
<!-- Context: Title for list -->
|
||||
<string name="title_language_settings" comment="Keyman Settings for a language">%1$s Settings</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_add" comment="Button to add an item">Mbakata</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_back" comment="Button to go back">Uhili</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_cancel" comment="Button to cancel an action">Jata</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_close" comment="Close a dialog">Funta</string>
|
||||
<!-- Context: Button label. Removed in Keyman 15 -->
|
||||
<string name="label_close_keyman" comment="Close the Keyman application">Funt Keyman</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_forward" comment="Button to go forward">Mbakata jeb t kima</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_next_input_method" comment="Switch to next input method (replaces label_close_keyman)">Next Input Method</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_download" comment="Button to confirm downloading an item">Sangata</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_install" comment="Confirmation to install a package">Fanta</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_later" comment="Do an action at a later time">Peɗe</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_next" comment="Go to the next screen">Unda siɗi</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_ok" comment="Button to acknowledge a dialog">Muvaya</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_update" comment="Dialog button to update a resource">Haf tinunda sa magalo</string>
|
||||
<!-- Context: Keyboard Updates -->
|
||||
<string name="cannot_connect" comment="Error message when network connection fails">Ha da gwaghva nda Keyman server wo!</string>
|
||||
<!-- Context: Keyboard Updates -->
|
||||
<string name="confirm_delete_keyboard" comment="Confirmation to delete a keyboard">Ɗow ka k masunt tana keyboard na re?</string>
|
||||
<!-- Context: Keyboard Updates -->
|
||||
<string name="confirm_download_keyboard" comment="Confirmation to download a keyboard update">Ɗow ka k sangat tina wuliwa tana keyboard na re?</string>
|
||||
<!-- Context: Keyboard Updates -->
|
||||
<string name="confirm_update" comment="Confirmation to update several resources">Ɗow ka k haf tinunda sa magalo sakoro t keyboards na nda dictionaries na kana re?</string>
|
||||
<!-- Context: Keyboard Updates -->
|
||||
<string name="keyboard_updates_channel">Resource Updates</string>
|
||||
<!-- Context: Keyboard Updates -->
|
||||
<string name="keyboard_updates_available" comment="Notification when resource updates are available">Resource Updates hahaɗe</string>
|
||||
<!-- Context: Keyboard Updates -->
|
||||
<string name="update_available" comment="Currently installed version of a resource with an available update">%1$s (Update hahaɗe)</string>
|
||||
<!-- Context: Keyboard Updates -->
|
||||
<string name="keyboard_update_message" comment="language name: keyboard name"> Updates hahaɗe anga keyboard %1$s: %2$s </string>
|
||||
<!-- Context: Keyboard Updates -->
|
||||
<string name="dictionary_update_message">Updates hahaɗe anga dictionary %1$s: %2$s </string>
|
||||
<!-- Context: Keyboard Info and Keyboard Settings -->
|
||||
<string name="keyboard_version" comment="Label for keyboard version">Keyboard version</string>
|
||||
<!-- Context: Keyboard Info and Keyboard Settings -->
|
||||
<string name="help_link" comment="Label for help link">Help link</string>
|
||||
<!-- Context: Keyboard Info and Keyboard Settings -->
|
||||
<string name="uninstall_keyboard" comment="Label for uninstalling keyboard">Fan bol t keyboard wo</string>
|
||||
<!-- Context: Keyboard Info and Keyboard Settings -->
|
||||
<string name="keyboard_picker_new_keyboard" comment="Mark a language name that's newly installed in keyboard list">[new] %1$s</string>
|
||||
<!-- Context: Keyboard Info and Keyboard Settings -->
|
||||
<string name="keyboard_qr_code" comment="QR Code description"> Afkla fota nana code na anga klaf tana \nkeyboard tundaha sakwiɗi</string>
|
||||
<!-- Context: Keyboard Help welcome.htm title -->
|
||||
<string name="welcome_package" comment="Title to welcome.htm page (name and version)">Uss nda sukagha da vila %1$s</string>
|
||||
<!-- Context: Keyboard app doesn't include 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>
|
||||
<!-- 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>
|
||||
<!-- 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 -->
|
||||
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Naghata anga gwaft dictionary da sangata</string>
|
||||
<!-- Context: Model Updates -->
|
||||
<string name="confirm_download_model" comment="Confirmation to download a dictionary update">Ɗow ka k sangat wuliwa nana dictionary na re?</string>
|
||||
<!-- Context: No associated dictionary found -->
|
||||
<string name="no_associated_model" comment="Confirmation there's no available dictionary to download">Ha dictionary k sangatawo</string>
|
||||
<!-- Context: Model Updates -->
|
||||
<string name="catalog_unavailable" comment="Notification that the cloud resource catalog can't be updated">The resource catalog is unavailable</string>
|
||||
<!-- Context: Background download messages-->
|
||||
<string name="catalog_download_start_in_background" comment="Notification that the resource catalog update will begin">Catalog update started in background</string>
|
||||
<!-- Context: Background download messages-->
|
||||
<string name="catalog_download_is_running_in_background" comment="Notification that the resource catalog update is still downloading"> Ana catalog nana hma t sangata; Gamsa an tika pighata hiɗeka!</string>
|
||||
<!-- Context: Background download messages-->
|
||||
<string name="progress_message_checking_resource_is_running" comment="Progress notification that the check for a resource is still running ">Nagha tinaha</string>
|
||||
<!-- Context: Background download messages-->
|
||||
<string name="keyboard_download_start_in_background" comment="Notification that a keyboard download has started">Sangat keyboard fuɗata an Background</string>
|
||||
<!-- Context: Background download messages-->
|
||||
<string name="keyboard_download_is_running_in_background" comment="Notification that a keyboard download is still running">Key board unda klafal na fuɗa fuɗa sangata; Gamsa an tika pighata hiɗeka!</string>
|
||||
<!-- Context: Background download messages-->
|
||||
<string name="keyboard_download_finished" comment="Notification that a keyboard download has finished">Keyboard kakiɗa sangata!</string>
|
||||
<!-- Context: Background download messages-->
|
||||
<string name="dictionary_download_start_in_background" comment="Notification that a dictionary download has started">Sangat dictionary fuɗa fuɗa an Background</string>
|
||||
<!-- Context: Background download messages-->
|
||||
<string name="dictionary_download_is_running_in_background" comment="Notification that a dictionary download is still running">Dictionary unda klafal na fuɗa fuɗa sangata; gamsa an tika pighata hiɗeka!</string>
|
||||
<!-- Context: Background download messages-->
|
||||
<string name="dictionary_download_finished" comment="Notification that a dictionary download has finished">Dictionary kakiɗa sangata.</string>
|
||||
<!-- Context: Background download messages -->
|
||||
<string name="download_failed" comment="Notification that a download failed">Sanga buwo</string>
|
||||
<!-- Context: Background download messages -->
|
||||
<string name="failed_to_retrieve_file" comment="Failed to retrieve downloaded file">Kalavukala k thlighaft file unda sangalo</string>
|
||||
<!-- Context: General Updates -->
|
||||
<string name="update_check_unavailable" comment="Error message when a Keyman server can't be reached">Javabt wativa kusat server wo!</string>
|
||||
<!-- Context: General Updates -->
|
||||
<string name="update_check_current" comment="Notification that all resources are up to date">"Sma inaha nganana ɗughwana!"</string>
|
||||
<!-- Context: General Updates -->
|
||||
<string name="update_failed" comment="Notification that a resource update failed">Tala ko kada inaha kol ɗughwana!</string>
|
||||
<!-- Context: General Updates -->
|
||||
<string name="update_success" comment="Notification that a resource update successfully updated">Inaha ngana maga magal saʻa ɗughwanukini!</string>
|
||||
<!-- Context: Model Info -->
|
||||
<string name="model_version" comment="Title for a dictionary version">Dictionary version</string>
|
||||
<!-- Context: Model Info -->
|
||||
<string name="uninstall_model" comment="Label to uninstall a dictionary">Fan bol t dictionary wo</string>
|
||||
<!-- Context: Model Info -->
|
||||
<string name="confirm_delete_model" comment="Confirmation to delete a dictionary">Ɗow ka k masun tana dictionary na re?</string>
|
||||
<!-- Context: Language Settings Keyboard install strings -->
|
||||
<string name="keyboard_install_toast" comment="Notification when a keyboard is installed">%1$s keyboard fan falo</string>
|
||||
<!-- Context: Language Settings menu strings -->
|
||||
<string name="enable_corrections" comment="Enable corrections from the suggestion banner">Magaghva virata magata</string>
|
||||
<!-- Context: Language Settings menu strings -->
|
||||
<string name="enable_predictions" comment="Enable predictions from the suggestion banner">Enable predictions</string>
|
||||
<!-- Context: Language Settings menu strings -->
|
||||
<string name="model_label">Dictionary</string>
|
||||
<!-- Context: Language Settings menu substring - Check for available dictionary -->
|
||||
<string name="check_available_model" comment="Check for available dictionary">A nighat dictionary unda hahaɗe</string>
|
||||
<!-- Context: Language Settings menu strings -->
|
||||
<string name="model_info_header" comment="Dictionary name">Dictionary: %1$s</string>
|
||||
<!-- Context: Language Settings menu strings -->
|
||||
<string name="model_picker_header" comment="Dictionaries for a specified language">%1$s dictionaries</string>
|
||||
<!-- Context: Language Settings menu strings -->
|
||||
<!-- Context: Language Settings menu strings -->
|
||||
<string name="model_install_toast" comment="Notification when a dictionary is installed">Dictionary fan falo</string>
|
||||
<!-- Context: Language Settings menu strings -->
|
||||
<plurals name="keyboard_count">
|
||||
<item quantity="zero">(%1$d keyboards)</item>
|
||||
<item quantity="one">(%1$d keyboard)</item>
|
||||
<item quantity="other">(%1$d keyboards)</item>
|
||||
</plurals>
|
||||
<!-- Context: "Change Display Language" menu -->
|
||||
<string name="default_locale" comment="Use the device's current locale">Default Locale</string>
|
||||
<!-- Context: Content descriptions -->
|
||||
<!-- Context: Content descriptions -->
|
||||
<!-- Context: Popup menu labels -->
|
||||
<string name="label_delete" comment="Confirmation to delete an item">Masata</string>
|
||||
<!-- Context: Shared preferences name -->
|
||||
<!-- Context: Other strings -->
|
||||
<string name="help_bubble_text">Aff fa jiv ahdina ka mbiɗat keyboard</string>
|
||||
</resources>
|
||||
158
android/KMEA/app/src/main/res/values-mrt-rNG/strings.xml
Normal file
158
android/KMEA/app/src/main/res/values-mrt-rNG/strings.xml
Normal file
|
|
@ -0,0 +1,158 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Device type -->
|
||||
<!-- Application name (Keyman Engine for Android) -->
|
||||
<!-- Context: Title for list -->
|
||||
<plurals name="title_keyboards">
|
||||
<item quantity="one">Keyboard</item>
|
||||
<item quantity="other">Keyboard</item>
|
||||
</plurals>
|
||||
<!-- Context: Title for list -->
|
||||
<plurals name="title_other_input_methods">
|
||||
<item quantity="one">Other Input Method</item>
|
||||
<item quantity="other">Other Input Methods</item>
|
||||
</plurals>
|
||||
<!-- Context: Title for list -->
|
||||
<string name="title_add_keyboard" comment="Add a new keyboard">Mchaku Keyboard bilin</string>
|
||||
<!-- Context: Title for list -->
|
||||
<string name="title_languages_settings" comment="List of installed languages">Fia Ŋya ari yer</string>
|
||||
<!-- Context: Title for list -->
|
||||
<string name="title_language_settings" comment="Keyman Settings for a language">%1$s Settings</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_add" comment="Button to add an item">Mchaku</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_back" comment="Button to go back">Yikuɗu</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_cancel" comment="Button to cancel an action">Kukulna</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_close" comment="Close a dialog">Ghaɗu</string>
|
||||
<!-- Context: Button label. Removed in Keyman 15 -->
|
||||
<string name="label_close_keyman" comment="Close the Keyman application">Ghaɗu Keyman</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_forward" comment="Button to go forward">Ladaŋwa</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_next_input_method" comment="Switch to next input method (replaces label_close_keyman)">Lagu fia ruɓutsini adaŋwa</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_download" comment="Button to confirm downloading an item">Download</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_install" comment="Confirmation to install a package">Install</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_later" comment="Do an action at a later time">Asikari</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_next" comment="Go to the next screen">Nagum</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_ok" comment="Button to acknowledge a dialog">OK</string>
|
||||
<!-- Context: Button label -->
|
||||
<string name="label_update" comment="Dialog button to update a resource">Update</string>
|
||||
<!-- Context: Keyboard Updates -->
|
||||
<string name="cannot_connect" comment="Error message when network connection fails">Accitu connect anu Keyman server mai!</string>
|
||||
<!-- Context: Keyboard Updates -->
|
||||
<string name="confirm_delete_keyboard" comment="Confirmation to delete a keyboard">Nagu ayu ga kukulna keyboard ari ya?</string>
|
||||
<!-- Context: Keyboard Updates -->
|
||||
<string name="confirm_download_keyboard" comment="Confirmation to download a keyboard update">Nagu ayu ga download version bilin nur keyboard ya?</string>
|
||||
<!-- Context: Keyboard Updates -->
|
||||
<string name="confirm_update" comment="Confirmation to update several resources">Nagu ayu ga update anu keyboard baɗa dictionaries yer abang?</string>
|
||||
<!-- Context: Keyboard Updates -->
|
||||
<string name="keyboard_updates_channel">Updates nur resource</string>
|
||||
<!-- Context: Keyboard Updates -->
|
||||
<string name="keyboard_updates_available" comment="Notification when resource updates are available">Updates nur Resource aʻi</string>
|
||||
<!-- Context: Keyboard Updates -->
|
||||
<string name="update_available" comment="Currently installed version of a resource with an available update">%1$s (Update aʻi)</string>
|
||||
<!-- Context: Keyboard Updates -->
|
||||
<string name="keyboard_update_message" comment="language name: keyboard name">Updates aʻi anu keyboard %1$s: %2$s </string>
|
||||
<!-- Context: Keyboard Updates -->
|
||||
<string name="dictionary_update_message">Updates aʻi anu dictionary %1$s: %2$s </string>
|
||||
<!-- Context: Keyboard Info and Keyboard Settings -->
|
||||
<string name="keyboard_version" comment="Label for keyboard version">Version nur keyman</string>
|
||||
<!-- Context: Keyboard Info and Keyboard Settings -->
|
||||
<string name="help_link" comment="Label for help link">Help link</string>
|
||||
<!-- Context: Keyboard Info and Keyboard Settings -->
|
||||
<string name="uninstall_keyboard" comment="Label for uninstalling keyboard">Uninstall keyboard</string>
|
||||
<!-- Context: Keyboard Info and Keyboard Settings -->
|
||||
<string name="keyboard_picker_new_keyboard" comment="Mark a language name that's newly installed in keyboard list">[bilin] %1$s</string>
|
||||
<!-- Context: Keyboard Info and Keyboard Settings -->
|
||||
<string name="keyboard_qr_code" comment="QR Code description"> Scan this code to load this\nkeyboard on another device</string>
|
||||
<!-- Context: Keyboard Help welcome.htm title -->
|
||||
<string name="welcome_package" comment="Title to welcome.htm page (name and version)">Usi ga shili %1$s</string>
|
||||
<!-- Context: Keyboard app doesn't include 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>
|
||||
<!-- 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. -->
|
||||
<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 -->
|
||||
<string name="query_associated_model" comment="Check if there's an available dictionary to download">Luba dictionary kuku nagu acittu downloadi</string>
|
||||
<!-- Context: Model Updates -->
|
||||
<string name="confirm_download_model" comment="Confirmation to download a dictionary update">Nagu ayu ga download version bilin nur dictionary ya?</string>
|
||||
<!-- Context: No associated dictionary found -->
|
||||
<string name="no_associated_model" comment="Confirmation there's no available dictionary to download">Dictionary aʻi mai ga download</string>
|
||||
<!-- Context: Model Updates -->
|
||||
<string name="catalog_unavailable" comment="Notification that the cloud resource catalog can't be updated">Catalog nur kari yer aʻi mai</string>
|
||||
<!-- Context: Background download messages-->
|
||||
<string name="catalog_download_start_in_background" comment="Notification that the resource catalog update will begin">Catalog update started in background</string>
|
||||
<!-- Context: Background download messages-->
|
||||
<string name="catalog_download_is_running_in_background" comment="Notification that the resource catalog update is still downloading">Catalog tsu naja vur downloading; manki kuga bura ngilaba!</string>
|
||||
<!-- Context: Background download messages-->
|
||||
<string name="progress_message_checking_resource_is_running" comment="Progress notification that the check for a resource is still running ">Luba kari yer</string>
|
||||
<!-- Context: Background download messages-->
|
||||
<string name="keyboard_download_start_in_background" comment="Notification that a keyboard download has started">Downloading keyboard a baditsini akwa Background</string>
|
||||
<!-- Context: Background download messages-->
|
||||
<string name="keyboard_download_is_running_in_background" comment="Notification that a keyboard download is still running">Keyboard dun mji a caɗu naja vur dowloadi manki bura ngilaba u latu kushu!</string>
|
||||
<!-- Context: Background download messages-->
|
||||
<string name="keyboard_download_finished" comment="Notification that a keyboard download has finished">Keyboard download akuɗuri!</string>
|
||||
<!-- Context: Background download messages-->
|
||||
<string name="dictionary_download_start_in_background" comment="Notification that a dictionary download has started">Downloading dictionary a baditsini akwa Background</string>
|
||||
<!-- Context: Background download messages-->
|
||||
<string name="dictionary_download_is_running_in_background" comment="Notification that a dictionary download is still running">Dictionary kuku dun mji a caɗu naja vur downloadi: manki ngilaba u latu kushu!</string>
|
||||
<!-- Context: Background download messages-->
|
||||
<string name="dictionary_download_finished" comment="Notification that a dictionary download has finished">Download nur dictionary akuɗuri.</string>
|
||||
<!-- Context: Background download messages -->
|
||||
<string name="download_failed" comment="Notification that a download failed">Download a ngiliri</string>
|
||||
<!-- Context: Background download messages -->
|
||||
<string name="failed_to_retrieve_file" comment="Failed to retrieve downloaded file">Acittu ziba aga file dun mji a iu download</string>
|
||||
<!-- Context: General Updates -->
|
||||
<string name="update_check_unavailable" comment="Error message when a Keyman server can't be reached">Acittu gwa kwa server mai!</string>
|
||||
<!-- Context: General Updates -->
|
||||
<string name="update_check_current" comment="Notification that all resources are up to date">"Ca thlir ari nanda bilin!"</string>
|
||||
<!-- Context: General Updates -->
|
||||
<string name="update_failed" comment="Notification that a resource update failed">Resources pathlu akiya mai mithlu a ngil ga iu update!</string>
|
||||
<!-- Context: General Updates -->
|
||||
<string name="update_success" comment="Notification that a resource update successfully updated">Resources successfully updated!</string>
|
||||
<!-- Context: Model Info -->
|
||||
<string name="model_version" comment="Title for a dictionary version">Dictionary version</string>
|
||||
<!-- Context: Model Info -->
|
||||
<string name="uninstall_model" comment="Label to uninstall a dictionary">Uninstall dictionary</string>
|
||||
<!-- Context: Model Info -->
|
||||
<string name="confirm_delete_model" comment="Confirmation to delete a dictionary">Nagu ayu ga kukulna dictionary ya?</string>
|
||||
<!-- Context: Language Settings Keyboard install strings -->
|
||||
<string name="keyboard_install_toast" comment="Notification when a keyboard is installed">%1$s keyboard installed</string>
|
||||
<!-- Context: Language Settings menu strings -->
|
||||
<string name="enable_corrections" comment="Enable corrections from the suggestion banner">Enable corrections</string>
|
||||
<!-- Context: Language Settings menu strings -->
|
||||
<string name="enable_predictions" comment="Enable predictions from the suggestion banner">Enable predictions</string>
|
||||
<!-- Context: Language Settings menu strings -->
|
||||
<string name="model_label">Dictionary</string>
|
||||
<!-- Context: Language Settings menu substring - Check for available dictionary -->
|
||||
<string name="check_available_model" comment="Check for available dictionary">Kutu ma dictionary aʻi</string>
|
||||
<!-- Context: Language Settings menu strings -->
|
||||
<string name="model_info_header" comment="Dictionary name">Dictionary: %1$s</string>
|
||||
<!-- Context: Language Settings menu strings -->
|
||||
<string name="model_picker_header" comment="Dictionaries for a specified language">%1$s dictionaries</string>
|
||||
<!-- Context: Language Settings menu strings -->
|
||||
<!-- Context: Language Settings menu strings -->
|
||||
<string name="model_install_toast" comment="Notification when a dictionary is installed">Dictionary installed</string>
|
||||
<!-- Context: Language Settings menu strings -->
|
||||
<plurals name="keyboard_count">
|
||||
<item quantity="one">(%1$d keyboard)</item>
|
||||
<item quantity="other">(%1$d keyboards)</item>
|
||||
</plurals>
|
||||
<!-- Context: "Change Display Language" menu -->
|
||||
<string name="default_locale" comment="Use the device's current locale">Default Locale</string>
|
||||
<!-- Context: Content descriptions -->
|
||||
<!-- Context: Content descriptions -->
|
||||
<!-- Context: Popup menu labels -->
|
||||
<string name="label_delete" comment="Confirmation to delete an item">Kukulna</string>
|
||||
<!-- Context: Shared preferences name -->
|
||||
<!-- Context: Other strings -->
|
||||
<string name="help_bubble_text">Ncina ga pubila keyboard</string>
|
||||
</resources>
|
||||
|
|
@ -70,7 +70,7 @@ km_kbp_context *km_kbp_state_context(km_kbp_state *state)
|
|||
}
|
||||
|
||||
km_kbp_status kbp_state_get_intermediate_context(
|
||||
km_kbp_state *state,
|
||||
km_kbp_state *state,
|
||||
km_kbp_context_item ** context_items
|
||||
) {
|
||||
assert(state);
|
||||
|
|
@ -116,7 +116,7 @@ km_kbp_status km_kbp_state_queue_action_items(
|
|||
return KM_KBP_STATUS_INVALID_ARGUMENT;
|
||||
}
|
||||
|
||||
if (!processor.queue_action(action_items)) {
|
||||
if (!processor.queue_action(state, action_items)) {
|
||||
return KM_KBP_STATUS_KEY_ERROR;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -110,6 +110,8 @@ namespace kmx {
|
|||
|
||||
#define TSS_COMPARISON 30
|
||||
|
||||
#define TSS__KEYMAN_80_MAX 30
|
||||
|
||||
/* Keyman 9.0 system stores */
|
||||
|
||||
#define TSS_PLATFORM 31
|
||||
|
|
@ -126,7 +128,23 @@ namespace kmx {
|
|||
|
||||
#define TSS_TARGETS 38
|
||||
|
||||
#define TSS__MAX 38
|
||||
#define TSS__KEYMAN_90_MAX 38
|
||||
|
||||
/* Keyman 14.0 system stores */
|
||||
|
||||
#define TSS_CASEDKEYS 39
|
||||
|
||||
#define TSS__KEYMAN_140_MAX 39
|
||||
|
||||
/* Keyman 15.0 system stores */
|
||||
|
||||
#define TSS_BEGIN_NEWCONTEXT 40
|
||||
#define TSS_BEGIN_POSTKEYSTROKE 41
|
||||
#define TSS_LAYERCHANGED 42
|
||||
|
||||
#define TSS__KEYMAN_150_MAX 42
|
||||
|
||||
#define TSS__MAX 42
|
||||
|
||||
/* wm_keyman_control_internal message control codes */
|
||||
|
||||
|
|
|
|||
|
|
@ -103,7 +103,9 @@ kmx_processor::update_option(
|
|||
return option(scope, key, value);
|
||||
}
|
||||
|
||||
bool kmx_processor::queue_action(
|
||||
bool
|
||||
kmx_processor::queue_action(
|
||||
km_kbp_state * state,
|
||||
km_kbp_action_item const * action_item
|
||||
) {
|
||||
switch (action_item->type) {
|
||||
|
|
@ -136,11 +138,17 @@ bool kmx_processor::queue_action(
|
|||
break;
|
||||
}
|
||||
case KM_KBP_IT_PERSIST_OPT:
|
||||
case KM_KBP_IT_EMIT_KEYSTROKE:
|
||||
case KM_KBP_IT_CAPSLOCK:
|
||||
DebugLog("kmx_processor::queue_action: Warning handling of action type [%d] not implented \n", action_item->type);
|
||||
return false;
|
||||
break;
|
||||
case KM_KBP_IT_EMIT_KEYSTROKE:
|
||||
// By pass the kmx processor and put this action into the core queue immediately
|
||||
// This has to be done as the kmx processor QueAction does not have an
|
||||
// emit key stroke type.
|
||||
// currently only supporting emitting the current key stroke
|
||||
state->actions().push_emit_keystroke();
|
||||
break;
|
||||
case KM_KBP_IT_INVALIDATE_CONTEXT:
|
||||
_kmx.GetActions()->QueueAction(QIT_INVALIDATECONTEXT, 0);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -60,7 +60,11 @@ namespace kbp
|
|||
km_kbp_state *state
|
||||
) override;
|
||||
|
||||
bool queue_action(km_kbp_action_item const* action_item) override;
|
||||
bool
|
||||
queue_action(
|
||||
km_kbp_state * state,
|
||||
km_kbp_action_item const* action_item
|
||||
) override;
|
||||
|
||||
km_kbp_context_item * get_intermediate_context() override;
|
||||
|
||||
|
|
|
|||
|
|
@ -114,9 +114,15 @@ namespace km {
|
|||
return KM_KBP_STATUS_OK;
|
||||
}
|
||||
|
||||
bool mock_processor::queue_action(km_kbp_action_item const* action_item) {
|
||||
bool mock_processor::queue_action(
|
||||
km_kbp_state * state,
|
||||
km_kbp_action_item const* action_item
|
||||
)
|
||||
{
|
||||
assert(state);
|
||||
assert(action_item);
|
||||
// TODO Implement
|
||||
if ((!state) || (!action_item))
|
||||
return false;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -53,7 +53,10 @@ namespace kbp
|
|||
|
||||
km_kbp_status process_queued_actions( km_kbp_state *state) override;
|
||||
|
||||
bool queue_action(km_kbp_action_item const* action_item) override;
|
||||
bool queue_action(
|
||||
km_kbp_state * state,
|
||||
km_kbp_action_item const* action_item
|
||||
) override;
|
||||
|
||||
km_kbp_context_item * get_intermediate_context() override;
|
||||
|
||||
|
|
|
|||
|
|
@ -75,11 +75,15 @@ namespace kbp
|
|||
/**
|
||||
* Add the action items to this keyboard processor queue
|
||||
*
|
||||
* @param state An opaque pointer to a state object
|
||||
* @param action_item
|
||||
* @param bool return true if action item list is successfully processed
|
||||
*/
|
||||
virtual bool
|
||||
queue_action(km_kbp_action_item const* action_item) = 0;
|
||||
queue_action(
|
||||
km_kbp_state * state,
|
||||
km_kbp_action_item const* action_item
|
||||
) = 0;
|
||||
|
||||
/**
|
||||
* Returns the keyboardprocessor context as an array of
|
||||
|
|
|
|||
|
|
@ -70,8 +70,15 @@ namespace km {
|
|||
return KM_KBP_STATUS_OK;
|
||||
}
|
||||
|
||||
bool rust_mock_processor::queue_action(km_kbp_action_item const* action_item) {
|
||||
assert(action_item);
|
||||
bool rust_mock_processor::queue_action(
|
||||
km_kbp_state * state,
|
||||
km_kbp_action_item const* action_item
|
||||
)
|
||||
{
|
||||
assert(state);
|
||||
assert(action_item);
|
||||
if ((!state) || (!action_item))
|
||||
return false;
|
||||
// TODO Implement
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,7 +50,10 @@ namespace kbp
|
|||
|
||||
km_kbp_status process_queued_actions( km_kbp_state *state) override;
|
||||
|
||||
bool queue_action(km_kbp_action_item const* action_item) override;
|
||||
bool queue_action(
|
||||
km_kbp_state * state,
|
||||
km_kbp_action_item const* action_item
|
||||
) override;
|
||||
|
||||
km_kbp_context_item * get_intermediate_context() override;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@keymanapp/input-processor",
|
||||
"version": "15.0.177",
|
||||
"version": "15.0.184",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@keymanapp/input-processor",
|
||||
"version": "15.0.177",
|
||||
"version": "15.0.184",
|
||||
"description": "The core text and prediction processing engine for KeymanWeb",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
|
@ -18,8 +18,8 @@
|
|||
},
|
||||
"homepage": "https://github.com/keymanapp/keyman#readme",
|
||||
"devDependencies": {
|
||||
"@keymanapp/lexical-model-compiler": "^15.0.177",
|
||||
"@keymanapp/resources-gosh": "^15.0.177",
|
||||
"@keymanapp/lexical-model-compiler": "^15.0.184",
|
||||
"@keymanapp/resources-gosh": "^15.0.184",
|
||||
"@types/node": "^11.9.4",
|
||||
"chai": "^4.3.4",
|
||||
"mocha": "^8.4.0",
|
||||
|
|
@ -34,11 +34,11 @@
|
|||
"mocha": "mocha"
|
||||
},
|
||||
"dependencies": {
|
||||
"@keymanapp/keyboard-processor": "^15.0.177",
|
||||
"@keymanapp/lexical-model-layer": "^15.0.177",
|
||||
"@keymanapp/models-types": "^15.0.177",
|
||||
"@keymanapp/web-environment": "^15.0.177",
|
||||
"@keymanapp/web-utils": "^15.0.177",
|
||||
"@keymanapp/keyboard-processor": "^15.0.184",
|
||||
"@keymanapp/lexical-model-layer": "^15.0.184",
|
||||
"@keymanapp/models-types": "^15.0.184",
|
||||
"@keymanapp/web-environment": "^15.0.184",
|
||||
"@keymanapp/web-utils": "^15.0.184",
|
||||
"eventemitter3": "^4.0.0"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,14 +10,16 @@ namespace com.keyman.text {
|
|||
baseLayout: 'us'
|
||||
}
|
||||
|
||||
private device: utils.DeviceSpec;
|
||||
private kbdProcessor: KeyboardProcessor;
|
||||
private lngProcessor: prediction.LanguageProcessor;
|
||||
|
||||
constructor(options?: ProcessorInitOptions) {
|
||||
constructor(device: utils.DeviceSpec, options?: ProcessorInitOptions) {
|
||||
if(!options) {
|
||||
options = InputProcessor.DEFAULT_OPTIONS;
|
||||
}
|
||||
|
||||
this.device = device;
|
||||
this.kbdProcessor = new KeyboardProcessor(options);
|
||||
this.lngProcessor = new prediction.LanguageProcessor();
|
||||
}
|
||||
|
|
@ -50,11 +52,28 @@ namespace com.keyman.text {
|
|||
return this.languageProcessor.activeModel;
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* Tell the currently active keyboard that a new context has been selected,
|
||||
* e.g. by focus change, selection change, keyboard change, etc.
|
||||
*
|
||||
* @param {Object} outputTarget The OutputTarget that has focus
|
||||
* @returns {Object} A RuleBehavior object describing the cumulative effects of
|
||||
* all matched keyboard rules
|
||||
*/
|
||||
processNewContextEvent(outputTarget: OutputTarget): RuleBehavior {
|
||||
const ruleBehavior = this.keyboardProcessor.processNewContextEvent(this.device, outputTarget);
|
||||
|
||||
if(ruleBehavior) {
|
||||
ruleBehavior.finalize(this.keyboardProcessor, outputTarget);
|
||||
}
|
||||
return ruleBehavior;
|
||||
}
|
||||
|
||||
/**
|
||||
* Simulate a keystroke according to the touched keyboard button element
|
||||
*
|
||||
* Handles default output and keyboard processing for both OSK and physical keystrokes.
|
||||
*
|
||||
*
|
||||
* @param {Object} keyEvent The abstracted KeyEvent to use for keystroke processing
|
||||
* @param {Object} outputTarget The OutputTarget receiving the KeyEvent
|
||||
* @returns {Object} A RuleBehavior object describing the cumulative effects of
|
||||
|
|
@ -105,6 +124,8 @@ namespace com.keyman.text {
|
|||
// Current, long-existing assumption - it's DOM-backed.
|
||||
let preInputMock = Mock.from(outputTarget);
|
||||
|
||||
const startingLayerId = this.keyboardProcessor.layerId;
|
||||
|
||||
// We presently need the true keystroke to run on the FULL context. That index is still
|
||||
// needed for some indexing operations when comparing two different output targets.
|
||||
let ruleBehavior = this.keyboardProcessor.processKeystroke(keyEvent, outputTarget);
|
||||
|
|
@ -113,7 +134,7 @@ namespace com.keyman.text {
|
|||
if(keyEvent.kNextLayer) {
|
||||
this.keyboardProcessor.selectLayer(keyEvent);
|
||||
}
|
||||
|
||||
|
||||
// Should we swallow any further processing of keystroke events for this keydown-keypress sequence?
|
||||
if(ruleBehavior != null) {
|
||||
let alternates: Alternate[];
|
||||
|
|
@ -123,7 +144,7 @@ namespace com.keyman.text {
|
|||
if(this.languageProcessor.isActive && !ruleBehavior.triggersDefaultCommand) {
|
||||
let keyDistribution = keyEvent.keyDistribution;
|
||||
|
||||
// We don't need to track absolute indexing during alternate-generation;
|
||||
// We don't need to track absolute indexing during alternate-generation;
|
||||
// only position-relative, so it's better to use a sliding window for context
|
||||
// when making alternates. (Slightly worse for short text, matters greatly
|
||||
// for long text.)
|
||||
|
|
@ -141,7 +162,7 @@ namespace com.keyman.text {
|
|||
let _globalThis = com.keyman.utils.getGlobalObject();
|
||||
let timer: () => number;
|
||||
|
||||
// Available by default on `window` in browsers, but _not_ on `global` in Node,
|
||||
// Available by default on `window` in browsers, but _not_ on `global` in Node,
|
||||
// surprisingly. Since we can't use code dependent on `require` statements
|
||||
// at present, we have to condition upon it actually existing.
|
||||
if(_globalThis['performance'] && _globalThis['performance']['now']) {
|
||||
|
|
@ -152,15 +173,15 @@ namespace com.keyman.text {
|
|||
TIMEOUT_THRESHOLD = timer() + 16; // + 16ms.
|
||||
} // else {
|
||||
// We _could_ just use Date.now() as a backup... but that (probably) only matters
|
||||
// when unit testing. So... we actually don't _need_ time thresholding when in
|
||||
// when unit testing. So... we actually don't _need_ time thresholding when in
|
||||
// a Node environment.
|
||||
// }
|
||||
|
||||
// Tracks a minimum probability for keystroke probability. Anything less will not be
|
||||
// included in alternate calculations.
|
||||
// included in alternate calculations.
|
||||
//
|
||||
// Seek to match SearchSpace.EDIT_DISTANCE_COST_SCALE from the predictive-text engine.
|
||||
// Reasoning for the selected value may be seen there. Short version - keystrokes
|
||||
// Reasoning for the selected value may be seen there. Short version - keystrokes
|
||||
// that _appear_ very precise may otherwise not even consider directly-neighboring keys.
|
||||
let KEYSTROKE_EPSILON = Math.exp(-5);
|
||||
|
||||
|
|
@ -169,7 +190,7 @@ namespace com.keyman.text {
|
|||
|
||||
let activeLayout = this.activeKeyboard.layout(keyEvent.device.formFactor);
|
||||
alternates = [];
|
||||
|
||||
|
||||
let totalMass = 0; // Tracks sum of non-error probabilities.
|
||||
for(let pair of keyDistribution) {
|
||||
if(pair.p < KEYSTROKE_EPSILON) {
|
||||
|
|
@ -184,7 +205,7 @@ namespace com.keyman.text {
|
|||
}
|
||||
|
||||
let mock = Mock.from(windowedMock);
|
||||
|
||||
|
||||
let altKey = activeLayout.getLayer(keyEvent.kbdLayer).getKey(pair.keyId);
|
||||
if(!altKey) {
|
||||
console.warn("Potential fat-finger key could not be found in layer!");
|
||||
|
|
@ -193,14 +214,14 @@ namespace com.keyman.text {
|
|||
|
||||
let altEvent = altKey.constructKeyEvent(this.keyboardProcessor, keyEvent.device);
|
||||
let alternateBehavior = this.keyboardProcessor.processKeystroke(altEvent, mock);
|
||||
|
||||
|
||||
// If alternateBehavior.beep == true, ignore it. It's a disallowed key sequence,
|
||||
// so we expect users to never intend their use.
|
||||
//
|
||||
// Also possible that this set of conditions fail for all evaluated alternates.
|
||||
if(alternateBehavior && !alternateBehavior.beep && pair.p > 0) {
|
||||
let transform: Transform = alternateBehavior.transcription.transform;
|
||||
|
||||
|
||||
// Ensure that the alternate's token id matches that of the current keystroke, as we only
|
||||
// record the matched rule's context (since they match)
|
||||
transform.id = ruleBehavior.transcription.token;
|
||||
|
|
@ -224,7 +245,7 @@ namespace com.keyman.text {
|
|||
ruleBehavior.finalize(this.keyboardProcessor, outputTarget);
|
||||
|
||||
// -- All keystroke (and 'alternate') processing is now complete. Time to finalize everything! --
|
||||
|
||||
|
||||
// Notify the ModelManager of new input - it's predictive text time!
|
||||
if(alternates && alternates.length > 0) {
|
||||
ruleBehavior.transcription.alternates = alternates;
|
||||
|
|
@ -237,6 +258,20 @@ namespace com.keyman.text {
|
|||
// For DOM-aware targets, this will trigger a DOM event page designers may listen for.
|
||||
outputTarget.doInputEvent();
|
||||
}
|
||||
|
||||
// The keyboard may want to take an action after all other keystroke processing is
|
||||
// finished, for example to switch layers. This action may not have any output
|
||||
// but may change system store or variable store values. Given this, we don't need to
|
||||
// save anything about the post behavior, after finalizing it
|
||||
|
||||
// We need to tell the keyboard if the layer has been changed, either by a keyboard rule itself,
|
||||
// or by the touch layout 'nextlayer' control.
|
||||
this.keyboardProcessor.layerChangedStore.set(startingLayerId == this.keyboardProcessor.layerId ? '0' : '1');
|
||||
|
||||
let postRuleBehavior = this.keyboardProcessor.processPostKeystroke(keyEvent.device, outputTarget);
|
||||
if(postRuleBehavior) {
|
||||
postRuleBehavior.finalize(this.keyboardProcessor, outputTarget);
|
||||
}
|
||||
}
|
||||
|
||||
return ruleBehavior;
|
||||
|
|
@ -245,6 +280,12 @@ namespace com.keyman.text {
|
|||
public resetContext(outputTarget?: OutputTarget) {
|
||||
this.keyboardProcessor.resetContext();
|
||||
this.languageProcessor.invalidateContext(outputTarget);
|
||||
|
||||
// Let the keyboard do its initial group processing
|
||||
//console.log('processNewContextEvent called from resetContext');
|
||||
if(outputTarget) {
|
||||
this.processNewContextEvent(outputTarget);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ namespace com.keyman.text.prediction {
|
|||
path: string;
|
||||
|
||||
/**
|
||||
* The raw JS script defining the model. Only used if `path` is not specified.
|
||||
* The raw JS script defining the model. Only used if `path` is not specified.
|
||||
*/
|
||||
code: string;
|
||||
}
|
||||
|
|
@ -123,10 +123,10 @@ namespace com.keyman.text.prediction {
|
|||
lp.emit('statechange', 'active');
|
||||
}
|
||||
|
||||
return this.lmEngine.loadModel(source, specType).then(function(config: Configuration) {
|
||||
return this.lmEngine.loadModel(source, specType).then(function(config: Configuration) {
|
||||
lp.configuration = config;
|
||||
lp.emit('statechange', 'configured');
|
||||
}).catch(function(error) {
|
||||
}).catch(function(error) {
|
||||
// Does this provide enough logging information?
|
||||
let message: string;
|
||||
if(error instanceof Error) {
|
||||
|
|
@ -185,7 +185,7 @@ namespace com.keyman.text.prediction {
|
|||
if(!this.currentModel || !this.configuration) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
// We've already invalidated any suggestions resulting from any previously-existing Promise -
|
||||
// may as well officially invalidate them via event.
|
||||
this.emit("invalidatesuggestions", 'new');
|
||||
|
|
@ -197,7 +197,7 @@ namespace com.keyman.text.prediction {
|
|||
if(!outputTarget) {
|
||||
throw "Accepting suggestions requires a destination OutputTarget instance."
|
||||
}
|
||||
|
||||
|
||||
// Find the state of the context at the time the suggestion was generated.
|
||||
// This may refer to the context before an input keystroke or before application
|
||||
// of a predictive suggestion.
|
||||
|
|
@ -218,6 +218,10 @@ namespace com.keyman.text.prediction {
|
|||
let transform = final.buildTransformFrom(outputTarget);
|
||||
outputTarget.apply(transform);
|
||||
|
||||
// Tell the banner that a suggestion was applied, so it can call the
|
||||
// keyboard's PostKeystroke entry point as needed
|
||||
this.emit('suggestionapplied', outputTarget);
|
||||
|
||||
// Build a 'reversion' Transcription that can be used to undo this apply() if needed,
|
||||
// replacing the suggestion transform with the original input text.
|
||||
let preApply = text.Mock.from(original.preInput);
|
||||
|
|
@ -259,7 +263,7 @@ namespace com.keyman.text.prediction {
|
|||
if(!outputTarget) {
|
||||
throw "Accepting suggestions requires a destination OutputTarget instance."
|
||||
}
|
||||
|
||||
|
||||
// Find the state of the context at the time the suggestion was generated.
|
||||
// This may refer to the context before an input keystroke or before application
|
||||
// of a predictive suggestion.
|
||||
|
|
@ -271,7 +275,7 @@ namespace com.keyman.text.prediction {
|
|||
console.warn("Could not apply the Suggestion!");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// Apply the Reversion!
|
||||
|
||||
// Step 1: determine the final output text
|
||||
|
|
@ -355,7 +359,7 @@ namespace com.keyman.text.prediction {
|
|||
}
|
||||
|
||||
/**
|
||||
* Retrieves the context and output state of KMW immediately before the prediction with
|
||||
* Retrieves the context and output state of KMW immediately before the prediction with
|
||||
* token `id` was generated. Must correspond to a 'recent' one, as only so many are stored
|
||||
* in `ModelManager`'s history buffer.
|
||||
* @param id A unique identifier corresponding to a recent `Transcription`.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@keymanapp/keyboard-processor",
|
||||
"version": "15.0.177",
|
||||
"version": "15.0.184",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@keymanapp/keyboard-processor",
|
||||
"version": "15.0.177",
|
||||
"version": "15.0.184",
|
||||
"description": "Core module for Keyman keyboard support in KeymanWeb.",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
|
@ -18,7 +18,7 @@
|
|||
},
|
||||
"homepage": "https://github.com/keymanapp/keyman#readme",
|
||||
"devDependencies": {
|
||||
"@keymanapp/resources-gosh": "^15.0.177",
|
||||
"@keymanapp/resources-gosh": "^15.0.184",
|
||||
"chai": "^4.3.4",
|
||||
"mocha": "^8.4.0",
|
||||
"mocha-teamcity-reporter": "^4.0.0",
|
||||
|
|
@ -32,9 +32,9 @@
|
|||
"mocha": "mocha"
|
||||
},
|
||||
"dependencies": {
|
||||
"@keymanapp/models-types": "^15.0.177",
|
||||
"@keymanapp/web-environment": "^15.0.177",
|
||||
"@keymanapp/web-utils": "^15.0.177",
|
||||
"@keymanapp/models-types": "^15.0.184",
|
||||
"@keymanapp/web-environment": "^15.0.184",
|
||||
"@keymanapp/web-utils": "^15.0.184",
|
||||
"@types/node": "^11.9.4"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -158,13 +158,12 @@ namespace com.keyman.keyboards {
|
|||
|
||||
// Start: mirrors _GetKeyEventProperties
|
||||
|
||||
// Override key shift state if specified for key in layout (corrected for popup keys KMEW-93)
|
||||
let keyShiftState = text.KeyboardProcessor.getModifierState(layer);
|
||||
|
||||
// First check the virtual key, and process shift, control, alt or function keys
|
||||
var Lkc: text.KeyEvent = {
|
||||
Lmodifiers: keyShiftState,
|
||||
Lstates: 0,
|
||||
// Override key shift state if specified for key in layout (corrected for popup keys KMEW-93)
|
||||
Lmodifiers: text.KeyboardProcessor.getModifierState(layer),
|
||||
Lstates: text.KeyboardProcessor.getStateFromLayer(layer),
|
||||
Lcode: keyName ? text.Codes.keyCodes[keyName] : 0,
|
||||
LisVirtualKey: true,
|
||||
vkCode: 0,
|
||||
|
|
|
|||
|
|
@ -58,12 +58,26 @@ namespace com.keyman.keyboards {
|
|||
}
|
||||
|
||||
/**
|
||||
* Calls the keyboard's `gs` function, which represents the keyboard source's group(main).
|
||||
* Calls the keyboard's `gs` function, which represents the keyboard source's begin Unicode group.
|
||||
*/
|
||||
process(outputTarget: text.OutputTarget, keystroke: text.KeyEvent): boolean {
|
||||
return this.scriptObject['gs'](outputTarget, keystroke);
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls the keyboard's `gn` function, which represents the keyboard source's begin newContext group.
|
||||
*/
|
||||
processNewContextEvent(outputTarget: text.OutputTarget, keystroke: text.KeyEvent): boolean {
|
||||
return this.scriptObject['gn'] ? this.scriptObject['gn'](outputTarget, keystroke) : false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls the keyboard's `gpk` function, which represents the keyboard source's begin postKeystroke group.
|
||||
*/
|
||||
processPostKeystroke(outputTarget: text.OutputTarget, keystroke: text.KeyEvent): boolean {
|
||||
return this.scriptObject['gpk'] ? this.scriptObject['gpk'](outputTarget, keystroke) : false;
|
||||
}
|
||||
|
||||
get isHollow(): boolean {
|
||||
return this.scriptObject == Keyboard.DEFAULT_SCRIPT_OBJECT;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -185,6 +185,7 @@ namespace com.keyman.text {
|
|||
|
||||
static readonly TSS_LAYER: number = 33;
|
||||
static readonly TSS_PLATFORM: number = 31;
|
||||
static readonly TSS_LAYERCHANGED: number = 42;
|
||||
|
||||
systemStores: {[storeID: number]: SystemStore};
|
||||
|
||||
|
|
@ -201,6 +202,7 @@ namespace com.keyman.text {
|
|||
|
||||
this.systemStores[KeyboardInterface.TSS_PLATFORM] = new PlatformSystemStore(this);
|
||||
this.systemStores[KeyboardInterface.TSS_LAYER] = new MutableSystemStore(KeyboardInterface.TSS_LAYER, 'default');
|
||||
this.systemStores[KeyboardInterface.TSS_LAYERCHANGED] = new MutableSystemStore(KeyboardInterface.TSS_LAYERCHANGED, '0');
|
||||
|
||||
this.variableStoreSerializer = variableStoreSerializer;
|
||||
}
|
||||
|
|
@ -948,20 +950,59 @@ namespace com.keyman.text {
|
|||
this.output(1, outputTarget, "");
|
||||
}
|
||||
|
||||
/**
|
||||
* Function processNewContextEvent
|
||||
* Scope Private
|
||||
* @param {Object} outputTarget The target receiving input
|
||||
* @param {Object} keystroke The input keystroke (with its properties) to be mapped by the keyboard.
|
||||
* Description Calls the keyboard's `begin newContext` group
|
||||
* @returns {RuleBehavior} Record of commands and state changes that result from executing `begin NewContext`
|
||||
*/
|
||||
processNewContextEvent(outputTarget: OutputTarget, keystroke: KeyEvent): RuleBehavior {
|
||||
if(!this.activeKeyboard) {
|
||||
throw "No active keyboard for keystroke processing!";
|
||||
}
|
||||
return this.process(this.activeKeyboard.processNewContextEvent.bind(this.activeKeyboard), outputTarget, keystroke);
|
||||
}
|
||||
|
||||
/**
|
||||
* Function processPostKeystroke
|
||||
* Scope Private
|
||||
* @param {Object} outputTarget The target receiving input
|
||||
* @param {Object} keystroke The input keystroke with relevant properties to be mapped by the keyboard.
|
||||
* Description Calls the keyboard's `begin postKeystroke` group
|
||||
* @returns {RuleBehavior} Record of commands and state changes that result from executing `begin PostKeystroke`
|
||||
*/
|
||||
processPostKeystroke(outputTarget: OutputTarget, keystroke: KeyEvent): RuleBehavior {
|
||||
if(!this.activeKeyboard) {
|
||||
throw "No active keyboard for keystroke processing!";
|
||||
}
|
||||
return this.process(this.activeKeyboard.processPostKeystroke.bind(this.activeKeyboard), outputTarget, keystroke);
|
||||
}
|
||||
|
||||
/**
|
||||
* Function processKeystroke
|
||||
* Scope Private
|
||||
* @param {Object} element The page element receiving input
|
||||
* @param {Object} outputTarget The target receiving input
|
||||
* @param {Object} keystroke The input keystroke (with its properties) to be mapped by the keyboard.
|
||||
* Description Encapsulates calls to keyboard input processing.
|
||||
* @returns {number} 0 if no match is made, otherwise 1.
|
||||
* @returns {RuleBehavior} Record of commands and state changes that result from executing `begin Unicode`
|
||||
*/
|
||||
processKeystroke(outputTarget: OutputTarget, keystroke: KeyEvent): RuleBehavior {
|
||||
if(!this.activeKeyboard) {
|
||||
throw "No active keyboard for keystroke processing!";
|
||||
}
|
||||
return this.process(this.activeKeyboard.process.bind(this.activeKeyboard), outputTarget, keystroke);
|
||||
}
|
||||
|
||||
private process(callee, outputTarget: OutputTarget, keystroke: KeyEvent): RuleBehavior {
|
||||
// Clear internal state tracking data from prior keystrokes.
|
||||
if(!outputTarget) {
|
||||
throw "No target specified for keyboard output!";
|
||||
} else if(!this.activeKeyboard) {
|
||||
throw "No active keyboard for keystroke processing!";
|
||||
} else if(!callee) {
|
||||
throw "No callee for keystroke processing!";
|
||||
}
|
||||
|
||||
outputTarget.invalidateSelection();
|
||||
|
|
@ -984,7 +1025,7 @@ namespace com.keyman.text {
|
|||
|
||||
// Calls the start-group of the active keyboard.
|
||||
this.activeTargetOutput = outputTarget;
|
||||
var matched = this.activeKeyboard.process(outputTarget, keystroke);
|
||||
var matched = callee(outputTarget, keystroke);
|
||||
this.activeTargetOutput = null;
|
||||
|
||||
// Finalize the rule's results.
|
||||
|
|
|
|||
|
|
@ -20,12 +20,12 @@ namespace com.keyman.text {
|
|||
kLayer?: string; // The key's layer property
|
||||
kbdLayer?: string; // The virtual keyboard's active layer
|
||||
kNextLayer?: string;
|
||||
|
||||
|
||||
// Holds relevant event properties leading to construction of this KeyEvent.
|
||||
source?: any; // Technically, KeyEvent|MouseEvent|Touch - but those are DOM types that must be kept out of headless mode.
|
||||
// Holds a generated fat-finger distribution (when appropriate)
|
||||
keyDistribution?: KeyDistribution;
|
||||
|
||||
|
||||
/**
|
||||
* The device model for web-core to follow when processing the keystroke.
|
||||
*/
|
||||
|
|
@ -35,5 +35,13 @@ namespace com.keyman.text {
|
|||
* `true` if this event was produced by sources other than a DOM-based KeyboardEvent.
|
||||
*/
|
||||
isSynthetic: boolean = true;
|
||||
|
||||
public static constructNullKeyEvent(device: utils.DeviceSpec): KeyEvent {
|
||||
const keyEvent = new KeyEvent();
|
||||
keyEvent.Lcode = 0;
|
||||
keyEvent.kName = '';
|
||||
keyEvent.device = device;
|
||||
return keyEvent;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
@ -91,6 +91,10 @@ namespace com.keyman.text {
|
|||
return this.keyboardInterface.systemStores[KeyboardInterface.TSS_LAYER] as MutableSystemStore;
|
||||
}
|
||||
|
||||
public get layerChangedStore(): MutableSystemStore {
|
||||
return this.keyboardInterface.systemStores[KeyboardInterface.TSS_LAYERCHANGED] as MutableSystemStore;
|
||||
}
|
||||
|
||||
public get layerId(): string {
|
||||
return this.layerStore.value;
|
||||
}
|
||||
|
|
@ -207,6 +211,24 @@ namespace com.keyman.text {
|
|||
}
|
||||
}
|
||||
|
||||
constructNullKeyEvent(device: utils.DeviceSpec): KeyEvent {
|
||||
const keyEvent = KeyEvent.constructNullKeyEvent(device);
|
||||
this.setSyntheticEventDefaults(keyEvent);
|
||||
return keyEvent;
|
||||
}
|
||||
|
||||
processNewContextEvent(device: utils.DeviceSpec, outputTarget: OutputTarget): RuleBehavior {
|
||||
return this.activeKeyboard ?
|
||||
this.keyboardInterface.processNewContextEvent(outputTarget, this.constructNullKeyEvent(device)) :
|
||||
null;
|
||||
}
|
||||
|
||||
processPostKeystroke(device: utils.DeviceSpec, outputTarget: OutputTarget): RuleBehavior {
|
||||
return this.activeKeyboard ?
|
||||
this.keyboardInterface.processPostKeystroke(outputTarget, this.constructNullKeyEvent(device)) :
|
||||
null;
|
||||
}
|
||||
|
||||
processKeystroke(keyEvent: KeyEvent, outputTarget: OutputTarget): RuleBehavior {
|
||||
var matchBehavior: RuleBehavior;
|
||||
|
||||
|
|
@ -342,6 +364,22 @@ namespace com.keyman.text {
|
|||
return modifier;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get state key state from layer id
|
||||
*
|
||||
* @param {string} layerId layer id (e.g. caps)
|
||||
* @return {number} modifier key state (desktop keyboards)
|
||||
*/
|
||||
static getStateFromLayer(layerId: string): number {
|
||||
var modifier=0;
|
||||
|
||||
if(layerId.indexOf('caps') >= 0) {
|
||||
modifier |= Codes.modifierCodes['CAPS'];
|
||||
}
|
||||
|
||||
return modifier;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Look up a custom virtual key code in the virtual key code dictionary KVKD. On first run, will build the dictionary.
|
||||
*
|
||||
|
|
|
|||
2
common/core/web/tools/recorder/package-lock.json
generated
2
common/core/web/tools/recorder/package-lock.json
generated
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@keymanapp/recorder-core",
|
||||
"version": "15.0.177",
|
||||
"version": "15.0.184",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@keymanapp/recorder-core",
|
||||
"version": "15.0.177",
|
||||
"version": "15.0.184",
|
||||
"description": "Core classes used to develop KeymanWeb test cases based on keystrokes",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
|
|
@ -17,10 +17,10 @@
|
|||
},
|
||||
"homepage": "https://github.com/keymanapp/keyman#readme",
|
||||
"dependencies": {
|
||||
"@keymanapp/keyboard-processor": "^15.0.177",
|
||||
"@keymanapp/models-types": "^15.0.177",
|
||||
"@keymanapp/web-environment": "^15.0.177",
|
||||
"@keymanapp/web-utils": "^15.0.177",
|
||||
"@keymanapp/keyboard-processor": "^15.0.184",
|
||||
"@keymanapp/models-types": "^15.0.184",
|
||||
"@keymanapp/web-environment": "^15.0.184",
|
||||
"@keymanapp/web-utils": "^15.0.184",
|
||||
"@types/node": "^11.9.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@keymanapp/web-sentry-manager",
|
||||
"version": "15.0.177",
|
||||
"version": "15.0.184",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@keymanapp/web-sentry-manager",
|
||||
"version": "15.0.177",
|
||||
"version": "15.0.184",
|
||||
"description": "Common setup for KeymanWeb's Sentry-based error reporting",
|
||||
"main": "dist/index.js",
|
||||
"scripts": {
|
||||
|
|
@ -20,7 +20,7 @@
|
|||
"typescript": "^3.8.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"@keymanapp/web-environment": "^15.0.177",
|
||||
"@keymanapp/web-environment": "^15.0.184",
|
||||
"@sentry/browser": "^5.27.4"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
2
common/core/web/utils/package-lock.json
generated
2
common/core/web/utils/package-lock.json
generated
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@keymanapp/web-utils",
|
||||
"version": "15.0.177",
|
||||
"version": "15.0.184",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@keymanapp/web-utils",
|
||||
"version": "15.0.177",
|
||||
"version": "15.0.184",
|
||||
"description": "Common utility functions used throughout other Keyman packages",
|
||||
"main": "./dist/index.js",
|
||||
"types": "./dist/index.d.ts",
|
||||
|
|
@ -20,8 +20,8 @@
|
|||
},
|
||||
"homepage": "https://github.com/keymanapp/keyman#readme",
|
||||
"devDependencies": {
|
||||
"@keymanapp/resources-gosh": "^15.0.177",
|
||||
"@keymanapp/web-environment": "^15.0.177",
|
||||
"@keymanapp/resources-gosh": "^15.0.184",
|
||||
"@keymanapp/web-environment": "^15.0.184",
|
||||
"@types/node": "^14.0.5",
|
||||
"typescript": "^3.8.3"
|
||||
}
|
||||
|
|
|
|||
2
common/models/templates/package-lock.json
generated
2
common/models/templates/package-lock.json
generated
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@keymanapp/models-templates",
|
||||
"version": "15.0.177",
|
||||
"version": "15.0.184",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@keymanapp/models-templates",
|
||||
"version": "15.0.177",
|
||||
"version": "15.0.184",
|
||||
"description": "Backing model implementations (templates) for Keyman's modelling layer",
|
||||
"keywords": [
|
||||
"lm",
|
||||
|
|
@ -42,8 +42,8 @@
|
|||
"url": "https://github.com/keymanapp/keyman/issues"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@keymanapp/models-types": "^15.0.177",
|
||||
"@keymanapp/web-utils": "^15.0.177",
|
||||
"@keymanapp/models-types": "^15.0.184",
|
||||
"@keymanapp/web-utils": "^15.0.184",
|
||||
"@types/chai": "^4.2.11",
|
||||
"@types/mocha": "^7.0.2",
|
||||
"@types/node": "^14.0.4",
|
||||
|
|
@ -52,6 +52,6 @@
|
|||
"typescript": "^3.8.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"@keymanapp/models-wordbreakers": "^15.0.177"
|
||||
"@keymanapp/models-wordbreakers": "^15.0.184"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
2
common/models/types/package-lock.json
generated
2
common/models/types/package-lock.json
generated
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@keymanapp/models-types",
|
||||
"version": "15.0.177",
|
||||
"version": "15.0.184",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@keymanapp/models-types",
|
||||
"version": "15.0.177",
|
||||
"version": "15.0.184",
|
||||
"description": "Type definitions in used in the modeling (lexical model/predictive text) component of Keyman.",
|
||||
"types": "./index.d.ts",
|
||||
"scripts": {
|
||||
|
|
|
|||
2
common/models/wordbreakers/package-lock.json
generated
2
common/models/wordbreakers/package-lock.json
generated
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@keymanapp/models-wordbreakers",
|
||||
"version": "15.0.177",
|
||||
"version": "15.0.184",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@keymanapp/models-wordbreakers",
|
||||
"version": "15.0.177",
|
||||
"version": "15.0.184",
|
||||
"description": "Word breakers bundled in the modeling layer",
|
||||
"keywords": [
|
||||
"lexical model",
|
||||
|
|
@ -40,7 +40,7 @@
|
|||
"url": "https://github.com/keymanapp/keyman/issues"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@keymanapp/models-types": "^15.0.177",
|
||||
"@keymanapp/models-types": "^15.0.184",
|
||||
"@types/chai": "^4.2.11",
|
||||
"@types/mocha": "^7.0.2",
|
||||
"chai": "^4.3.4",
|
||||
|
|
|
|||
2
common/predictive-text/package-lock.json
generated
2
common/predictive-text/package-lock.json
generated
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@keymanapp/lexical-model-layer",
|
||||
"version": "15.0.177",
|
||||
"version": "15.0.184",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@keymanapp/lexical-model-layer",
|
||||
"version": "15.0.177",
|
||||
"version": "15.0.184",
|
||||
"description": "Keyman/Predictive Text integration layer",
|
||||
"main": "build/index.js",
|
||||
"scripts": {
|
||||
|
|
@ -21,8 +21,8 @@
|
|||
},
|
||||
"homepage": "https://github.com/keymanapp/keyman#readme",
|
||||
"devDependencies": {
|
||||
"@keymanapp/models-types": "^15.0.177",
|
||||
"@keymanapp/resources-gosh": "^15.0.177",
|
||||
"@keymanapp/models-types": "^15.0.184",
|
||||
"@keymanapp/resources-gosh": "^15.0.184",
|
||||
"@types/node": "^10.17.21",
|
||||
"chai": "^4.3.4",
|
||||
"karma": "^6.3.4",
|
||||
|
|
@ -46,10 +46,10 @@
|
|||
"typescript": "^3.8.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"@keymanapp/models-templates": "^15.0.177",
|
||||
"@keymanapp/models-wordbreakers": "^15.0.177",
|
||||
"@keymanapp/web-environment": "^15.0.177",
|
||||
"@keymanapp/web-utils": "^15.0.177",
|
||||
"@keymanapp/models-templates": "^15.0.184",
|
||||
"@keymanapp/models-wordbreakers": "^15.0.184",
|
||||
"@keymanapp/web-environment": "^15.0.184",
|
||||
"@keymanapp/web-utils": "^15.0.184",
|
||||
"es6-shim": "^0.35.5",
|
||||
"string.prototype.codepointat": "^0.2.1",
|
||||
"string.prototype.startswith": "^0.2.0"
|
||||
|
|
|
|||
6
common/test/keyboards/caps_lock_layer_3620/HISTORY.md
Normal file
6
common/test/keyboards/caps_lock_layer_3620/HISTORY.md
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
Caps Lock Layer 3620 Change History
|
||||
====================
|
||||
|
||||
1.0 (2021-11-30)
|
||||
----------------
|
||||
* Created by
|
||||
21
common/test/keyboards/caps_lock_layer_3620/LICENSE.md
Normal file
21
common/test/keyboards/caps_lock_layer_3620/LICENSE.md
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
© 2021
|
||||
|
||||
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.
|
||||
30
common/test/keyboards/caps_lock_layer_3620/README.md
Normal file
30
common/test/keyboards/caps_lock_layer_3620/README.md
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
Caps Lock Layer 3620 keyboard
|
||||
==============
|
||||
|
||||
Version 1.0
|
||||
|
||||
Description
|
||||
-----------
|
||||
Caps Lock Layer 3620 generated from template
|
||||
|
||||
Links
|
||||
-----
|
||||
|
||||
Copyright
|
||||
---------
|
||||
See [LICENSE.md](LICENSE.md)
|
||||
|
||||
Supported Platforms
|
||||
-------------------
|
||||
* Windows
|
||||
* macOS
|
||||
* Linux
|
||||
* Web
|
||||
* iPhone
|
||||
* iPad
|
||||
* Android phone
|
||||
* Android tablet
|
||||
* Mobile devices
|
||||
* Desktop devices
|
||||
* Tablet devices
|
||||
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"license": "mit",
|
||||
"languages": [
|
||||
"en"
|
||||
],
|
||||
"description": "Caps Lock Layer 3620 generated from template"
|
||||
}
|
||||
|
|
@ -0,0 +1,102 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<KeymanDeveloperProject>
|
||||
<Options>
|
||||
<BuildPath>$PROJECTPATH\build</BuildPath>
|
||||
<CompilerWarningsAsErrors>True</CompilerWarningsAsErrors>
|
||||
<WarnDeprecatedCode>True</WarnDeprecatedCode>
|
||||
<CheckFilenameConventions>True</CheckFilenameConventions>
|
||||
<ProjectType>keyboard</ProjectType>
|
||||
</Options>
|
||||
<Files>
|
||||
<File>
|
||||
<ID>id_ae750e073bdf1a73f961466813e93a67</ID>
|
||||
<Filename>caps_lock_layer_3620.kmn</Filename>
|
||||
<Filepath>source\caps_lock_layer_3620.kmn</Filepath>
|
||||
<FileVersion>1.0</FileVersion>
|
||||
<FileType>.kmn</FileType>
|
||||
<Details>
|
||||
<Name>Caps Lock Layer 3620</Name>
|
||||
<Copyright>©</Copyright>
|
||||
</Details>
|
||||
</File>
|
||||
<File>
|
||||
<ID>id_8572983c5fa67dc8f3e31da0333521b5</ID>
|
||||
<Filename>caps_lock_layer_3620.kps</Filename>
|
||||
<Filepath>source\caps_lock_layer_3620.kps</Filepath>
|
||||
<FileVersion></FileVersion>
|
||||
<FileType>.kps</FileType>
|
||||
<Details>
|
||||
<Name>Caps Lock Layer 3620</Name>
|
||||
<Copyright>©</Copyright>
|
||||
</Details>
|
||||
</File>
|
||||
<File>
|
||||
<ID>id_ede98e4633e239f933cbfd1f4e1b766c</ID>
|
||||
<Filename>HISTORY.md</Filename>
|
||||
<Filepath>HISTORY.md</Filepath>
|
||||
<FileVersion></FileVersion>
|
||||
<FileType>.md</FileType>
|
||||
</File>
|
||||
<File>
|
||||
<ID>id_53e892b8b41cc4caece1cfd5ef21d6e7</ID>
|
||||
<Filename>LICENSE.md</Filename>
|
||||
<Filepath>LICENSE.md</Filepath>
|
||||
<FileVersion></FileVersion>
|
||||
<FileType>.md</FileType>
|
||||
</File>
|
||||
<File>
|
||||
<ID>id_0730bb7c2e8f9ea2438b52e419dd86c9</ID>
|
||||
<Filename>README.md</Filename>
|
||||
<Filepath>README.md</Filepath>
|
||||
<FileVersion></FileVersion>
|
||||
<FileType>.md</FileType>
|
||||
</File>
|
||||
<File>
|
||||
<ID>id_fff8738ee01fad8282ccd871d1b1d7ec</ID>
|
||||
<Filename>caps_lock_layer_3620.keyboard_info</Filename>
|
||||
<Filepath>caps_lock_layer_3620.keyboard_info</Filepath>
|
||||
<FileVersion></FileVersion>
|
||||
<FileType>.keyboard_info</FileType>
|
||||
</File>
|
||||
<File>
|
||||
<ID>id_6beb4ed096b4f0d03913a0cf0dc1c10b</ID>
|
||||
<Filename>caps_lock_layer_3620.kmx</Filename>
|
||||
<Filepath>source\..\build\caps_lock_layer_3620.kmx</Filepath>
|
||||
<FileVersion></FileVersion>
|
||||
<FileType>.kmx</FileType>
|
||||
<ParentFileID>id_8572983c5fa67dc8f3e31da0333521b5</ParentFileID>
|
||||
</File>
|
||||
<File>
|
||||
<ID>id_85da30900c1f778b42f47770aa7d67ae</ID>
|
||||
<Filename>caps_lock_layer_3620.js</Filename>
|
||||
<Filepath>source\..\build\caps_lock_layer_3620.js</Filepath>
|
||||
<FileVersion></FileVersion>
|
||||
<FileType>.js</FileType>
|
||||
<ParentFileID>id_8572983c5fa67dc8f3e31da0333521b5</ParentFileID>
|
||||
</File>
|
||||
<File>
|
||||
<ID>id_456ab3d34c321e614773101797d2a54f</ID>
|
||||
<Filename>caps_lock_layer_3620.kvk</Filename>
|
||||
<Filepath>source\..\build\caps_lock_layer_3620.kvk</Filepath>
|
||||
<FileVersion></FileVersion>
|
||||
<FileType>.kvk</FileType>
|
||||
<ParentFileID>id_8572983c5fa67dc8f3e31da0333521b5</ParentFileID>
|
||||
</File>
|
||||
<File>
|
||||
<ID>id_356e5d149c1e539356d72698c1e401a6</ID>
|
||||
<Filename>welcome.htm</Filename>
|
||||
<Filepath>source\welcome.htm</Filepath>
|
||||
<FileVersion></FileVersion>
|
||||
<FileType>.htm</FileType>
|
||||
<ParentFileID>id_8572983c5fa67dc8f3e31da0333521b5</ParentFileID>
|
||||
</File>
|
||||
<File>
|
||||
<ID>id_8da344c4cea6f467013357fe099006f5</ID>
|
||||
<Filename>readme.htm</Filename>
|
||||
<Filepath>source\readme.htm</Filepath>
|
||||
<FileVersion></FileVersion>
|
||||
<FileType>.htm</FileType>
|
||||
<ParentFileID>id_8572983c5fa67dc8f3e31da0333521b5</ParentFileID>
|
||||
</File>
|
||||
</Files>
|
||||
</KeymanDeveloperProject>
|
||||
|
|
@ -0,0 +1,891 @@
|
|||
{
|
||||
"tablet": {
|
||||
"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": 70
|
||||
},
|
||||
{
|
||||
"id": "K_S",
|
||||
"text": "s"
|
||||
},
|
||||
{
|
||||
"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_54",
|
||||
"text": "",
|
||||
"width": "10",
|
||||
"sp": "10"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"key": [
|
||||
{
|
||||
"id": "K_SHIFT",
|
||||
"text": "*Shift*",
|
||||
"width": "110",
|
||||
"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": "K_QUOTE"
|
||||
},
|
||||
{
|
||||
"text": "\"",
|
||||
"id": "K_QUOTE",
|
||||
"layer": "shift"
|
||||
},
|
||||
{
|
||||
"text": "\\",
|
||||
"id": "K_BKSLASH"
|
||||
},
|
||||
{
|
||||
"text": ":",
|
||||
"id": "K_COLON",
|
||||
"layer": "shift"
|
||||
},
|
||||
{
|
||||
"text": ";",
|
||||
"id": "K_COLON"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "K_BKSP",
|
||||
"text": "*BkSp*",
|
||||
"width": "90",
|
||||
"sp": "1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"key": [
|
||||
{
|
||||
"id": "K_NUMLOCK",
|
||||
"text": "*123*",
|
||||
"width": "140",
|
||||
"sp": "1",
|
||||
"nextlayer": "numeric"
|
||||
},
|
||||
{
|
||||
"id": "K_LOPT",
|
||||
"text": "*Menu*",
|
||||
"width": "120",
|
||||
"sp": "1"
|
||||
},
|
||||
{
|
||||
"id": "K_SPACE",
|
||||
"text": "",
|
||||
"width": "630",
|
||||
"sp": "0"
|
||||
},
|
||||
{
|
||||
"id": "K_ENTER",
|
||||
"text": "*Enter*",
|
||||
"width": "140",
|
||||
"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": 70
|
||||
},
|
||||
{
|
||||
"id": "K_S",
|
||||
"text": "S"
|
||||
},
|
||||
{
|
||||
"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_190",
|
||||
"text": "",
|
||||
"width": "10",
|
||||
"sp": "10"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"key": [
|
||||
{
|
||||
"id": "K_SHIFT",
|
||||
"text": "*Shift*",
|
||||
"width": "110",
|
||||
"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": "K_QUOTE",
|
||||
"layer": "default"
|
||||
},
|
||||
{
|
||||
"text": "\"",
|
||||
"id": "K_QUOTE",
|
||||
"layer": "shift"
|
||||
},
|
||||
{
|
||||
"text": "\\",
|
||||
"id": "K_BKSLASH",
|
||||
"layer": "default"
|
||||
},
|
||||
{
|
||||
"text": ":",
|
||||
"id": "K_COLON",
|
||||
"layer": "shift"
|
||||
},
|
||||
{
|
||||
"text": ";",
|
||||
"id": "K_COLON",
|
||||
"layer": "default"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "K_BKSP",
|
||||
"text": "*BkSp*",
|
||||
"width": "90",
|
||||
"sp": "1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"key": [
|
||||
{
|
||||
"id": "K_NUMLOCK",
|
||||
"text": "*123*",
|
||||
"width": "140",
|
||||
"sp": "1",
|
||||
"nextlayer": "numeric"
|
||||
},
|
||||
{
|
||||
"id": "K_LOPT",
|
||||
"text": "*Menu*",
|
||||
"width": "120",
|
||||
"sp": "1"
|
||||
},
|
||||
{
|
||||
"id": "K_SPACE",
|
||||
"text": "",
|
||||
"width": "630",
|
||||
"sp": "0"
|
||||
},
|
||||
{
|
||||
"id": "K_ENTER",
|
||||
"text": "*Enter*",
|
||||
"width": "140",
|
||||
"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"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"key": [
|
||||
{
|
||||
"id": "K_4",
|
||||
"text": "$",
|
||||
"pad": 70,
|
||||
"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": "_",
|
||||
"layer": "shift"
|
||||
},
|
||||
{
|
||||
"id": "K_EQUAL",
|
||||
"text": "=",
|
||||
"layer": "default"
|
||||
},
|
||||
{
|
||||
"id": "K_BKSLASH",
|
||||
"text": "|",
|
||||
"layer": "shift"
|
||||
},
|
||||
{
|
||||
"id": "K_BKSLASH",
|
||||
"text": "\\",
|
||||
"layer": "default"
|
||||
},
|
||||
{
|
||||
"id": "T_new_536",
|
||||
"text": "",
|
||||
"width": "10",
|
||||
"sp": "10"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"key": [
|
||||
{
|
||||
"id": "K_SHIFT",
|
||||
"text": "*Shift*",
|
||||
"width": "110",
|
||||
"sp": "1",
|
||||
"nextlayer": "shift"
|
||||
},
|
||||
{
|
||||
"id": "K_LBRKT",
|
||||
"text": "[",
|
||||
"sk": [
|
||||
{
|
||||
"id": "U_00AB",
|
||||
"text": "«"
|
||||
},
|
||||
{
|
||||
"id": "K_COMMA",
|
||||
"text": "<",
|
||||
"layer": "shift"
|
||||
},
|
||||
{
|
||||
"id": "K_LBRKT",
|
||||
"text": "{",
|
||||
"layer": "shift"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "K_9",
|
||||
"text": "(",
|
||||
"layer": "shift"
|
||||
},
|
||||
{
|
||||
"id": "K_0",
|
||||
"text": ")",
|
||||
"layer": "shift"
|
||||
},
|
||||
{
|
||||
"id": "K_RBRKT",
|
||||
"text": "]",
|
||||
"sk": [
|
||||
{
|
||||
"id": "U_00BB",
|
||||
"text": "»"
|
||||
},
|
||||
{
|
||||
"id": "K_PERIOD",
|
||||
"text": ">",
|
||||
"layer": "shift"
|
||||
},
|
||||
{
|
||||
"id": "K_RBRKT",
|
||||
"text": "}",
|
||||
"layer": "shift"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "K_EQUAL",
|
||||
"text": "+",
|
||||
"layer": "shift"
|
||||
},
|
||||
{
|
||||
"id": "K_HYPHEN",
|
||||
"text": "-",
|
||||
"layer": "default"
|
||||
},
|
||||
{
|
||||
"id": "K_8",
|
||||
"text": "*",
|
||||
"layer": "shift"
|
||||
},
|
||||
{
|
||||
"id": "K_SLASH",
|
||||
"text": "/",
|
||||
"layer": "default"
|
||||
},
|
||||
{
|
||||
"id": "K_BKSP",
|
||||
"text": "*BkSp*",
|
||||
"width": "90",
|
||||
"sp": "1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"key": [
|
||||
{
|
||||
"id": "K_LOWER",
|
||||
"text": "*abc*",
|
||||
"width": "140",
|
||||
"sp": "1",
|
||||
"nextlayer": "default"
|
||||
},
|
||||
{
|
||||
"id": "K_LOPT",
|
||||
"text": "*Menu*",
|
||||
"width": "120",
|
||||
"sp": "1"
|
||||
},
|
||||
{
|
||||
"id": "K_SPACE",
|
||||
"text": "",
|
||||
"width": "630",
|
||||
"sp": "0"
|
||||
},
|
||||
{
|
||||
"id": "K_ENTER",
|
||||
"text": "*Enter*",
|
||||
"width": "140",
|
||||
"sp": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "caps",
|
||||
"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": 70
|
||||
},
|
||||
{
|
||||
"id": "K_S",
|
||||
"text": "S"
|
||||
},
|
||||
{
|
||||
"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_190",
|
||||
"text": "",
|
||||
"width": "10",
|
||||
"sp": "10"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"key": [
|
||||
{
|
||||
"id": "K_SHIFT",
|
||||
"text": "*ShiftedLock*",
|
||||
"width": "110",
|
||||
"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": "K_QUOTE",
|
||||
"layer": "default"
|
||||
},
|
||||
{
|
||||
"text": "\"",
|
||||
"id": "K_QUOTE",
|
||||
"layer": "shift"
|
||||
},
|
||||
{
|
||||
"text": "\\",
|
||||
"id": "K_BKSLASH",
|
||||
"layer": "default"
|
||||
},
|
||||
{
|
||||
"text": ":",
|
||||
"id": "K_COLON",
|
||||
"layer": "shift"
|
||||
},
|
||||
{
|
||||
"text": ";",
|
||||
"id": "K_COLON",
|
||||
"layer": "default"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "K_BKSP",
|
||||
"text": "*BkSp*",
|
||||
"width": "90",
|
||||
"sp": "1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"key": [
|
||||
{
|
||||
"id": "K_NUMLOCK",
|
||||
"text": "*123*",
|
||||
"width": "140",
|
||||
"sp": "1",
|
||||
"nextlayer": "numeric"
|
||||
},
|
||||
{
|
||||
"id": "K_LOPT",
|
||||
"text": "*Menu*",
|
||||
"width": "120",
|
||||
"sp": "1"
|
||||
},
|
||||
{
|
||||
"id": "K_SPACE",
|
||||
"text": "",
|
||||
"width": "630",
|
||||
"sp": "0"
|
||||
},
|
||||
{
|
||||
"id": "K_ENTER",
|
||||
"text": "*Enter*",
|
||||
"width": "140",
|
||||
"sp": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"displayUnderlying": false
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
c caps_lock_layer_3620 generated from template at 2021-11-30 14:58:52
|
||||
c with name "Caps Lock Layer 3620"
|
||||
store(&VERSION) '10.0'
|
||||
store(&NAME) 'Caps Lock Layer 3620'
|
||||
store(©RIGHT) '©'
|
||||
store(&KEYBOARDVERSION) '1.0'
|
||||
store(&TARGETS) 'any'
|
||||
store(&VISUALKEYBOARD) 'caps_lock_layer_3620.kvks'
|
||||
store(&LAYOUTFILE) 'caps_lock_layer_3620.keyman-touch-layout'
|
||||
|
||||
begin Unicode > use(main)
|
||||
|
||||
store(key) [K_A] .. [K_Z] [SHIFT K_A] .. [SHIFT K_Z]
|
||||
store(out) 'a' .. 'z' 'A' .. 'Z'
|
||||
store(&CasedKeys) [K_A] .. [K_Z]
|
||||
|
||||
group(main) using keys
|
||||
|
||||
+ any(key) > index(out, 1)
|
||||
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Package>
|
||||
<System>
|
||||
<KeymanDeveloperVersion>15.0.114.0</KeymanDeveloperVersion>
|
||||
<FileVersion>7.0</FileVersion>
|
||||
</System>
|
||||
<Options>
|
||||
<ExecuteProgram></ExecuteProgram>
|
||||
<ReadMeFile>readme.htm</ReadMeFile>
|
||||
<MSIFileName></MSIFileName>
|
||||
<MSIOptions></MSIOptions>
|
||||
<FollowKeyboardVersion/>
|
||||
</Options>
|
||||
<StartMenu>
|
||||
<Folder></Folder>
|
||||
<Items/>
|
||||
</StartMenu>
|
||||
<Info>
|
||||
<Name URL="">Caps Lock Layer 3620</Name>
|
||||
<Copyright URL="">©</Copyright>
|
||||
<Author URL=""></Author>
|
||||
<Version URL=""></Version>
|
||||
</Info>
|
||||
<Files>
|
||||
<File>
|
||||
<Name>..\build\caps_lock_layer_3620.kmx</Name>
|
||||
<Description></Description>
|
||||
<CopyLocation>0</CopyLocation>
|
||||
<FileType>.kmx</FileType>
|
||||
</File>
|
||||
<File>
|
||||
<Name>..\build\caps_lock_layer_3620.js</Name>
|
||||
<Description></Description>
|
||||
<CopyLocation>0</CopyLocation>
|
||||
<FileType>.js</FileType>
|
||||
</File>
|
||||
<File>
|
||||
<Name>..\build\caps_lock_layer_3620.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>
|
||||
</Files>
|
||||
<Keyboards>
|
||||
<Keyboard>
|
||||
<Name>Caps Lock Layer 3620</Name>
|
||||
<ID>caps_lock_layer_3620</ID>
|
||||
<Version>1.0</Version>
|
||||
<Languages>
|
||||
<Language ID="en">English</Language>
|
||||
</Languages>
|
||||
</Keyboard>
|
||||
</Keyboards>
|
||||
<Strings/>
|
||||
</Package>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<visualkeyboard>
|
||||
<header>
|
||||
<version>10.0</version>
|
||||
<kbdname>caps_lock_layer_3620</kbdname>
|
||||
<flags/>
|
||||
</header>
|
||||
</visualkeyboard>
|
||||
24
common/test/keyboards/caps_lock_layer_3620/source/readme.htm
Normal file
24
common/test/keyboards/caps_lock_layer_3620/source/readme.htm
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Caps Lock Layer 3620</title>
|
||||
<style type="text/css">
|
||||
p { font: 10pt Tahoma; }
|
||||
h1 { font: bold 16pt Tahoma; color: #4444cc; margin-bottom: 2px }
|
||||
h2 { font: bold 12pt Tahoma; color: #4444cc; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>Caps Lock Layer 3620</h1>
|
||||
|
||||
<p>
|
||||
Caps Lock Layer 3620 1.0 generated from template.
|
||||
</p>
|
||||
|
||||
<p>©</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Start Using Caps Lock Layer 3620</title>
|
||||
<style type="text/css">
|
||||
p { font: 10pt Tahoma; }
|
||||
h1 { font: bold 16pt Tahoma; color: #4444cc; margin-bottom: 2px }
|
||||
h2 { font: bold 12pt Tahoma; color: #4444cc; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>Start Using Caps Lock Layer 3620</h1>
|
||||
|
||||
<p>
|
||||
Caps Lock Layer 3620 1.0 generated from template.
|
||||
</p>
|
||||
|
||||
<h1>Keyboard Layout</h1>
|
||||
|
||||
<!-- Insert Keyboard Layout Images or HTML here -->
|
||||
|
||||
</body>
|
||||
</html>
|
||||
6
common/test/keyboards/full_caps_3620_3621/HISTORY.md
Normal file
6
common/test/keyboards/full_caps_3620_3621/HISTORY.md
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
full_caps_3620_3621 Change History
|
||||
====================
|
||||
|
||||
1.0 (2021-12-01)
|
||||
----------------
|
||||
* Created by
|
||||
21
common/test/keyboards/full_caps_3620_3621/LICENSE.md
Normal file
21
common/test/keyboards/full_caps_3620_3621/LICENSE.md
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
© 2021
|
||||
|
||||
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.
|
||||
30
common/test/keyboards/full_caps_3620_3621/README.md
Normal file
30
common/test/keyboards/full_caps_3620_3621/README.md
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
full_caps_3620_3621 keyboard
|
||||
==============
|
||||
|
||||
Version 1.0
|
||||
|
||||
Description
|
||||
-----------
|
||||
full_caps_3620_3621 generated from template
|
||||
|
||||
Links
|
||||
-----
|
||||
|
||||
Copyright
|
||||
---------
|
||||
See [LICENSE.md](LICENSE.md)
|
||||
|
||||
Supported Platforms
|
||||
-------------------
|
||||
* Windows
|
||||
* macOS
|
||||
* Linux
|
||||
* Web
|
||||
* iPhone
|
||||
* iPad
|
||||
* Android phone
|
||||
* Android tablet
|
||||
* Mobile devices
|
||||
* Desktop devices
|
||||
* Tablet devices
|
||||
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"license": "mit",
|
||||
"languages": [
|
||||
"en"
|
||||
],
|
||||
"description": "full_caps_3620_3621 generated from template"
|
||||
}
|
||||
|
|
@ -0,0 +1,102 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<KeymanDeveloperProject>
|
||||
<Options>
|
||||
<BuildPath>$PROJECTPATH\build</BuildPath>
|
||||
<CompilerWarningsAsErrors>True</CompilerWarningsAsErrors>
|
||||
<WarnDeprecatedCode>True</WarnDeprecatedCode>
|
||||
<CheckFilenameConventions>True</CheckFilenameConventions>
|
||||
<ProjectType>keyboard</ProjectType>
|
||||
</Options>
|
||||
<Files>
|
||||
<File>
|
||||
<ID>id_48789b910029398efc8e93b3cf8ead67</ID>
|
||||
<Filename>full_caps_3620_3621.kmn</Filename>
|
||||
<Filepath>source\full_caps_3620_3621.kmn</Filepath>
|
||||
<FileVersion>1.0</FileVersion>
|
||||
<FileType>.kmn</FileType>
|
||||
<Details>
|
||||
<Name>full_caps_3620_3621</Name>
|
||||
<Copyright>©</Copyright>
|
||||
</Details>
|
||||
</File>
|
||||
<File>
|
||||
<ID>id_0a20f9a938ef015f88d1e10294793d49</ID>
|
||||
<Filename>full_caps_3620_3621.kps</Filename>
|
||||
<Filepath>source\full_caps_3620_3621.kps</Filepath>
|
||||
<FileVersion></FileVersion>
|
||||
<FileType>.kps</FileType>
|
||||
<Details>
|
||||
<Name>full_caps_3620_3621</Name>
|
||||
<Copyright>©</Copyright>
|
||||
</Details>
|
||||
</File>
|
||||
<File>
|
||||
<ID>id_ede98e4633e239f933cbfd1f4e1b766c</ID>
|
||||
<Filename>HISTORY.md</Filename>
|
||||
<Filepath>HISTORY.md</Filepath>
|
||||
<FileVersion></FileVersion>
|
||||
<FileType>.md</FileType>
|
||||
</File>
|
||||
<File>
|
||||
<ID>id_53e892b8b41cc4caece1cfd5ef21d6e7</ID>
|
||||
<Filename>LICENSE.md</Filename>
|
||||
<Filepath>LICENSE.md</Filepath>
|
||||
<FileVersion></FileVersion>
|
||||
<FileType>.md</FileType>
|
||||
</File>
|
||||
<File>
|
||||
<ID>id_0730bb7c2e8f9ea2438b52e419dd86c9</ID>
|
||||
<Filename>README.md</Filename>
|
||||
<Filepath>README.md</Filepath>
|
||||
<FileVersion></FileVersion>
|
||||
<FileType>.md</FileType>
|
||||
</File>
|
||||
<File>
|
||||
<ID>id_da795226173614238dd92754311e5f15</ID>
|
||||
<Filename>full_caps_3620_3621.keyboard_info</Filename>
|
||||
<Filepath>full_caps_3620_3621.keyboard_info</Filepath>
|
||||
<FileVersion></FileVersion>
|
||||
<FileType>.keyboard_info</FileType>
|
||||
</File>
|
||||
<File>
|
||||
<ID>id_3087832d59de33f9903fc21ba620b576</ID>
|
||||
<Filename>full_caps_3620_3621.kmx</Filename>
|
||||
<Filepath>source\..\build\full_caps_3620_3621.kmx</Filepath>
|
||||
<FileVersion></FileVersion>
|
||||
<FileType>.kmx</FileType>
|
||||
<ParentFileID>id_0a20f9a938ef015f88d1e10294793d49</ParentFileID>
|
||||
</File>
|
||||
<File>
|
||||
<ID>id_5ac2d34b9f02b291dd03055796f14de3</ID>
|
||||
<Filename>full_caps_3620_3621.js</Filename>
|
||||
<Filepath>source\..\build\full_caps_3620_3621.js</Filepath>
|
||||
<FileVersion></FileVersion>
|
||||
<FileType>.js</FileType>
|
||||
<ParentFileID>id_0a20f9a938ef015f88d1e10294793d49</ParentFileID>
|
||||
</File>
|
||||
<File>
|
||||
<ID>id_74e4dcbb99594bddbe39b1fcac0ea24f</ID>
|
||||
<Filename>full_caps_3620_3621.kvk</Filename>
|
||||
<Filepath>source\..\build\full_caps_3620_3621.kvk</Filepath>
|
||||
<FileVersion></FileVersion>
|
||||
<FileType>.kvk</FileType>
|
||||
<ParentFileID>id_0a20f9a938ef015f88d1e10294793d49</ParentFileID>
|
||||
</File>
|
||||
<File>
|
||||
<ID>id_356e5d149c1e539356d72698c1e401a6</ID>
|
||||
<Filename>welcome.htm</Filename>
|
||||
<Filepath>source\welcome.htm</Filepath>
|
||||
<FileVersion></FileVersion>
|
||||
<FileType>.htm</FileType>
|
||||
<ParentFileID>id_0a20f9a938ef015f88d1e10294793d49</ParentFileID>
|
||||
</File>
|
||||
<File>
|
||||
<ID>id_8da344c4cea6f467013357fe099006f5</ID>
|
||||
<Filename>readme.htm</Filename>
|
||||
<Filepath>source\readme.htm</Filepath>
|
||||
<FileVersion></FileVersion>
|
||||
<FileType>.htm</FileType>
|
||||
<ParentFileID>id_0a20f9a938ef015f88d1e10294793d49</ParentFileID>
|
||||
</File>
|
||||
</Files>
|
||||
</KeymanDeveloperProject>
|
||||
|
|
@ -0,0 +1,889 @@
|
|||
{
|
||||
"tablet": {
|
||||
"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": 70
|
||||
},
|
||||
{
|
||||
"id": "K_S",
|
||||
"text": "s"
|
||||
},
|
||||
{
|
||||
"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_54",
|
||||
"text": "",
|
||||
"width": "10",
|
||||
"sp": "10"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"key": [
|
||||
{
|
||||
"id": "K_SHIFT",
|
||||
"text": "*Shift*",
|
||||
"width": "110",
|
||||
"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": "K_QUOTE"
|
||||
},
|
||||
{
|
||||
"text": "\"",
|
||||
"id": "K_QUOTE",
|
||||
"layer": "shift"
|
||||
},
|
||||
{
|
||||
"text": "\\",
|
||||
"id": "K_BKSLASH"
|
||||
},
|
||||
{
|
||||
"text": ":",
|
||||
"id": "K_COLON",
|
||||
"layer": "shift"
|
||||
},
|
||||
{
|
||||
"text": ";",
|
||||
"id": "K_COLON"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "K_BKSP",
|
||||
"text": "*BkSp*",
|
||||
"width": "90",
|
||||
"sp": "1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"key": [
|
||||
{
|
||||
"id": "K_NUMLOCK",
|
||||
"text": "*123*",
|
||||
"width": "140",
|
||||
"sp": "1",
|
||||
"nextlayer": "numeric"
|
||||
},
|
||||
{
|
||||
"id": "K_LOPT",
|
||||
"text": "*Menu*",
|
||||
"width": "120",
|
||||
"sp": "1"
|
||||
},
|
||||
{
|
||||
"id": "K_SPACE",
|
||||
"text": "",
|
||||
"width": "630",
|
||||
"sp": "0"
|
||||
},
|
||||
{
|
||||
"id": "K_ENTER",
|
||||
"text": "*Enter*",
|
||||
"width": "140",
|
||||
"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": 70
|
||||
},
|
||||
{
|
||||
"id": "K_S",
|
||||
"text": "S"
|
||||
},
|
||||
{
|
||||
"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*",
|
||||
"width": "110",
|
||||
"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": "K_QUOTE",
|
||||
"layer": "default"
|
||||
},
|
||||
{
|
||||
"text": "\"",
|
||||
"id": "K_QUOTE",
|
||||
"layer": "shift"
|
||||
},
|
||||
{
|
||||
"text": "\\",
|
||||
"id": "K_BKSLASH",
|
||||
"layer": "default"
|
||||
},
|
||||
{
|
||||
"text": ":",
|
||||
"id": "K_COLON",
|
||||
"layer": "shift"
|
||||
},
|
||||
{
|
||||
"text": ";",
|
||||
"id": "K_COLON",
|
||||
"layer": "default"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "K_BKSP",
|
||||
"text": "*BkSp*",
|
||||
"width": "90",
|
||||
"sp": "1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"key": [
|
||||
{
|
||||
"id": "K_NUMLOCK",
|
||||
"text": "*123*",
|
||||
"width": "140",
|
||||
"sp": "1",
|
||||
"nextlayer": "numeric"
|
||||
},
|
||||
{
|
||||
"id": "K_LOPT",
|
||||
"text": "*Menu*",
|
||||
"width": "120",
|
||||
"sp": "1"
|
||||
},
|
||||
{
|
||||
"id": "K_SPACE",
|
||||
"text": "",
|
||||
"width": "630",
|
||||
"sp": "0"
|
||||
},
|
||||
{
|
||||
"id": "K_ENTER",
|
||||
"text": "*Enter*",
|
||||
"width": "140",
|
||||
"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"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"key": [
|
||||
{
|
||||
"id": "K_4",
|
||||
"text": "$",
|
||||
"layer": "shift",
|
||||
"pad": 70
|
||||
},
|
||||
{
|
||||
"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": "_",
|
||||
"layer": "shift"
|
||||
},
|
||||
{
|
||||
"id": "K_EQUAL",
|
||||
"text": "=",
|
||||
"layer": "default"
|
||||
},
|
||||
{
|
||||
"id": "K_BKSLASH",
|
||||
"text": "|",
|
||||
"layer": "shift"
|
||||
},
|
||||
{
|
||||
"id": "K_BKSLASH",
|
||||
"text": "\\",
|
||||
"layer": "default"
|
||||
},
|
||||
{
|
||||
"text": "",
|
||||
"width": "10",
|
||||
"sp": "10"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"key": [
|
||||
{
|
||||
"id": "K_SHIFT",
|
||||
"text": "*Shift*",
|
||||
"width": "110",
|
||||
"sp": "1"
|
||||
},
|
||||
{
|
||||
"id": "K_LBRKT",
|
||||
"text": "[",
|
||||
"sk": [
|
||||
{
|
||||
"id": "U_00AB",
|
||||
"text": "«"
|
||||
},
|
||||
{
|
||||
"id": "K_COMMA",
|
||||
"text": "<",
|
||||
"layer": "shift"
|
||||
},
|
||||
{
|
||||
"id": "K_LBRKT",
|
||||
"text": "{",
|
||||
"layer": "shift"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "K_9",
|
||||
"text": "(",
|
||||
"layer": "shift"
|
||||
},
|
||||
{
|
||||
"id": "K_0",
|
||||
"text": ")",
|
||||
"layer": "shift"
|
||||
},
|
||||
{
|
||||
"id": "K_RBRKT",
|
||||
"text": "]",
|
||||
"sk": [
|
||||
{
|
||||
"id": "U_00BB",
|
||||
"text": "»"
|
||||
},
|
||||
{
|
||||
"id": "K_PERIOD",
|
||||
"text": ">",
|
||||
"layer": "shift"
|
||||
},
|
||||
{
|
||||
"id": "K_RBRKT",
|
||||
"text": "}",
|
||||
"layer": "shift"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "K_EQUAL",
|
||||
"text": "+",
|
||||
"layer": "shift"
|
||||
},
|
||||
{
|
||||
"id": "K_HYPHEN",
|
||||
"text": "-",
|
||||
"layer": "default"
|
||||
},
|
||||
{
|
||||
"id": "K_8",
|
||||
"text": "*",
|
||||
"layer": "shift"
|
||||
},
|
||||
{
|
||||
"id": "K_SLASH",
|
||||
"text": "/",
|
||||
"layer": "default"
|
||||
},
|
||||
{
|
||||
"id": "K_BKSP",
|
||||
"text": "*BkSp*",
|
||||
"width": "90",
|
||||
"sp": "1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"key": [
|
||||
{
|
||||
"id": "K_LOWER",
|
||||
"text": "*abc*",
|
||||
"width": "140",
|
||||
"sp": "1",
|
||||
"nextlayer": "default"
|
||||
},
|
||||
{
|
||||
"id": "K_LOPT",
|
||||
"text": "*Menu*",
|
||||
"width": "120",
|
||||
"sp": "1"
|
||||
},
|
||||
{
|
||||
"id": "K_SPACE",
|
||||
"text": "",
|
||||
"width": "630",
|
||||
"sp": "0"
|
||||
},
|
||||
{
|
||||
"id": "K_ENTER",
|
||||
"text": "*Enter*",
|
||||
"width": "140",
|
||||
"sp": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "caps",
|
||||
"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": 70
|
||||
},
|
||||
{
|
||||
"id": "K_S",
|
||||
"text": "S"
|
||||
},
|
||||
{
|
||||
"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": "*ShiftedLock*",
|
||||
"width": "110",
|
||||
"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": "K_QUOTE",
|
||||
"layer": "default"
|
||||
},
|
||||
{
|
||||
"text": "\"",
|
||||
"id": "K_QUOTE",
|
||||
"layer": "shift"
|
||||
},
|
||||
{
|
||||
"text": "\\",
|
||||
"id": "K_BKSLASH",
|
||||
"layer": "default"
|
||||
},
|
||||
{
|
||||
"text": ":",
|
||||
"id": "K_COLON",
|
||||
"layer": "shift"
|
||||
},
|
||||
{
|
||||
"text": ";",
|
||||
"id": "K_COLON",
|
||||
"layer": "default"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "K_BKSP",
|
||||
"text": "*BkSp*",
|
||||
"width": "90",
|
||||
"sp": "1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"key": [
|
||||
{
|
||||
"id": "K_NUMLOCK",
|
||||
"text": "*123*",
|
||||
"width": "140",
|
||||
"sp": "1",
|
||||
"nextlayer": "numeric"
|
||||
},
|
||||
{
|
||||
"id": "K_LOPT",
|
||||
"text": "*Menu*",
|
||||
"width": "120",
|
||||
"sp": "1"
|
||||
},
|
||||
{
|
||||
"id": "K_SPACE",
|
||||
"text": "",
|
||||
"width": "630",
|
||||
"sp": "0"
|
||||
},
|
||||
{
|
||||
"id": "K_ENTER",
|
||||
"text": "*Enter*",
|
||||
"width": "140",
|
||||
"sp": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"displayUnderlying": false
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
c full_caps_3620_3621 generated from template at 2021-12-01 08:45:15
|
||||
c with name "full_caps_3620_3621"
|
||||
store(&VERSION) '10.0'
|
||||
store(&NAME) 'full_caps_3620_3621'
|
||||
store(©RIGHT) '©'
|
||||
store(&KEYBOARDVERSION) '1.0'
|
||||
store(&TARGETS) 'any'
|
||||
store(&VISUALKEYBOARD) 'full_caps_3620_3621.kvks'
|
||||
store(&LAYOUTFILE) 'full_caps_3620_3621.keyman-touch-layout'
|
||||
|
||||
begin Unicode > use(main)
|
||||
begin NewContext > use(NewContext)
|
||||
begin PostKeystroke > use(PostKeystroke)
|
||||
|
||||
store(key) [K_A] .. [K_Z] [SHIFT K_A] .. [SHIFT K_Z]
|
||||
store(out) 'a' .. 'z' 'A' .. 'Z'
|
||||
store(&CasedKeys) [K_A] .. [K_Z]
|
||||
store(caps) 'A'..'Z'
|
||||
store(digit) '0'..'9'
|
||||
|
||||
group(NewContext) readonly
|
||||
c Any time we get a new context, by mouse click, tap,
|
||||
c cursor movement, new document, etc, we'll try and
|
||||
c determine the best layer to use
|
||||
nomatch > use(nextLayer)
|
||||
|
||||
group(PostKeystroke) readonly
|
||||
c this is a heuristic: if we find two+ characters in capitals, leave
|
||||
c us in shift layer, assuming the user hasn't just switched layer
|
||||
c themselves. Not sure if this is a good idea!
|
||||
c if(&layerChanged = "0") if(&layer = 'shift') any(caps) any(caps) > layer('caps') c ??? is this a good idea?
|
||||
|
||||
c stay on the numeric layer if we are there already
|
||||
if(&layerChanged = "0") if(&layer = 'numeric') any(digit) > context
|
||||
|
||||
c don't cancel caps lock layer
|
||||
if(&layer = 'caps') > context
|
||||
|
||||
c no other changes, so detect sentence or layer change, as long
|
||||
c as the user hasn't attempted to change layer themselves
|
||||
if(&layerChanged = "0") > use(nextLayer)
|
||||
|
||||
group(nextLayer) readonly
|
||||
store(sentencePunctuation) '.?!'
|
||||
nul > layer('shift')
|
||||
c note that 'readonly' layers do not need to use 'context' unless there is
|
||||
c no other content on output of rule (empty output is illegal)
|
||||
any(sentencePunctuation) ' ' > layer('shift')
|
||||
any(sentencePunctuation) ' ' > layer('shift')
|
||||
nomatch > layer('default')
|
||||
|
||||
group(main) using keys
|
||||
|
||||
+ any(key) > index(out, 1)
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Package>
|
||||
<System>
|
||||
<KeymanDeveloperVersion>15.0.114.0</KeymanDeveloperVersion>
|
||||
<FileVersion>7.0</FileVersion>
|
||||
</System>
|
||||
<Options>
|
||||
<ExecuteProgram></ExecuteProgram>
|
||||
<ReadMeFile>readme.htm</ReadMeFile>
|
||||
<MSIFileName></MSIFileName>
|
||||
<MSIOptions></MSIOptions>
|
||||
<FollowKeyboardVersion/>
|
||||
</Options>
|
||||
<StartMenu>
|
||||
<Folder></Folder>
|
||||
<Items/>
|
||||
</StartMenu>
|
||||
<Info>
|
||||
<Name URL="">full_caps_3620_3621</Name>
|
||||
<Copyright URL="">©</Copyright>
|
||||
<Author URL=""></Author>
|
||||
<Version URL=""></Version>
|
||||
</Info>
|
||||
<Files>
|
||||
<File>
|
||||
<Name>..\build\full_caps_3620_3621.kmx</Name>
|
||||
<Description></Description>
|
||||
<CopyLocation>0</CopyLocation>
|
||||
<FileType>.kmx</FileType>
|
||||
</File>
|
||||
<File>
|
||||
<Name>..\build\full_caps_3620_3621.js</Name>
|
||||
<Description></Description>
|
||||
<CopyLocation>0</CopyLocation>
|
||||
<FileType>.js</FileType>
|
||||
</File>
|
||||
<File>
|
||||
<Name>..\build\full_caps_3620_3621.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>
|
||||
</Files>
|
||||
<Keyboards>
|
||||
<Keyboard>
|
||||
<Name>full_caps_3620_3621</Name>
|
||||
<ID>full_caps_3620_3621</ID>
|
||||
<Version>1.0</Version>
|
||||
<Languages>
|
||||
<Language ID="en">English</Language>
|
||||
</Languages>
|
||||
</Keyboard>
|
||||
</Keyboards>
|
||||
<Strings/>
|
||||
</Package>
|
||||
|
|
@ -0,0 +1,110 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<visualkeyboard>
|
||||
<header>
|
||||
<version>10.0</version>
|
||||
<kbdname>full_caps_3620_3621</kbdname>
|
||||
<flags/>
|
||||
</header>
|
||||
<encoding name="unicode" fontname="Arial" fontsize="-12">
|
||||
<layer shift="">
|
||||
<key vkey="K_BKQUOTE">`</key>
|
||||
<key vkey="K_1">1</key>
|
||||
<key vkey="K_2">2</key>
|
||||
<key vkey="K_3">3</key>
|
||||
<key vkey="K_4">4</key>
|
||||
<key vkey="K_5">5</key>
|
||||
<key vkey="K_6">6</key>
|
||||
<key vkey="K_7">7</key>
|
||||
<key vkey="K_8">8</key>
|
||||
<key vkey="K_9">9</key>
|
||||
<key vkey="K_0">0</key>
|
||||
<key vkey="K_HYPHEN">-</key>
|
||||
<key vkey="K_EQUAL">=</key>
|
||||
<key vkey="K_Q">q</key>
|
||||
<key vkey="K_W">w</key>
|
||||
<key vkey="K_E">e</key>
|
||||
<key vkey="K_R">r</key>
|
||||
<key vkey="K_T">t</key>
|
||||
<key vkey="K_Y">y</key>
|
||||
<key vkey="K_U">u</key>
|
||||
<key vkey="K_I">i</key>
|
||||
<key vkey="K_O">o</key>
|
||||
<key vkey="K_P">p</key>
|
||||
<key vkey="K_LBRKT">[</key>
|
||||
<key vkey="K_RBRKT">]</key>
|
||||
<key vkey="K_BKSLASH">\</key>
|
||||
<key vkey="K_A">a</key>
|
||||
<key vkey="K_S">s</key>
|
||||
<key vkey="K_D">d</key>
|
||||
<key vkey="K_F">f</key>
|
||||
<key vkey="K_G">g</key>
|
||||
<key vkey="K_H">h</key>
|
||||
<key vkey="K_J">j</key>
|
||||
<key vkey="K_K">k</key>
|
||||
<key vkey="K_L">l</key>
|
||||
<key vkey="K_COLON">;</key>
|
||||
<key vkey="K_QUOTE">'</key>
|
||||
<key vkey="K_oE2">\</key>
|
||||
<key vkey="K_Z">z</key>
|
||||
<key vkey="K_X">x</key>
|
||||
<key vkey="K_C">c</key>
|
||||
<key vkey="K_V">v</key>
|
||||
<key vkey="K_B">b</key>
|
||||
<key vkey="K_N">n</key>
|
||||
<key vkey="K_M">m</key>
|
||||
<key vkey="K_COMMA">,</key>
|
||||
<key vkey="K_PERIOD">.</key>
|
||||
<key vkey="K_SLASH">/</key>
|
||||
</layer>
|
||||
<layer shift="S">
|
||||
<key vkey="K_BKQUOTE">~</key>
|
||||
<key vkey="K_1">!</key>
|
||||
<key vkey="K_2">@</key>
|
||||
<key vkey="K_3">#</key>
|
||||
<key vkey="K_4">$</key>
|
||||
<key vkey="K_5">%</key>
|
||||
<key vkey="K_6">^</key>
|
||||
<key vkey="K_7">&</key>
|
||||
<key vkey="K_8">*</key>
|
||||
<key vkey="K_9">(</key>
|
||||
<key vkey="K_0">)</key>
|
||||
<key vkey="K_HYPHEN">_</key>
|
||||
<key vkey="K_EQUAL">+</key>
|
||||
<key vkey="K_Q">Q</key>
|
||||
<key vkey="K_W">W</key>
|
||||
<key vkey="K_E">E</key>
|
||||
<key vkey="K_R">R</key>
|
||||
<key vkey="K_T">T</key>
|
||||
<key vkey="K_Y">Y</key>
|
||||
<key vkey="K_U">U</key>
|
||||
<key vkey="K_I">I</key>
|
||||
<key vkey="K_O">O</key>
|
||||
<key vkey="K_P">P</key>
|
||||
<key vkey="K_LBRKT">{</key>
|
||||
<key vkey="K_RBRKT">}</key>
|
||||
<key vkey="K_BKSLASH">|</key>
|
||||
<key vkey="K_A">A</key>
|
||||
<key vkey="K_S">S</key>
|
||||
<key vkey="K_D">D</key>
|
||||
<key vkey="K_F">F</key>
|
||||
<key vkey="K_G">G</key>
|
||||
<key vkey="K_H">H</key>
|
||||
<key vkey="K_J">J</key>
|
||||
<key vkey="K_K">K</key>
|
||||
<key vkey="K_L">L</key>
|
||||
<key vkey="K_COLON">:</key>
|
||||
<key vkey="K_QUOTE">"</key>
|
||||
<key vkey="K_oE2">|</key>
|
||||
<key vkey="K_Z">Z</key>
|
||||
<key vkey="K_X">X</key>
|
||||
<key vkey="K_C">C</key>
|
||||
<key vkey="K_V">V</key>
|
||||
<key vkey="K_B">B</key>
|
||||
<key vkey="K_N">N</key>
|
||||
<key vkey="K_M">M</key>
|
||||
<key vkey="K_COMMA"><</key>
|
||||
<key vkey="K_PERIOD">></key>
|
||||
<key vkey="K_SLASH">?</key>
|
||||
</layer>
|
||||
</encoding>
|
||||
</visualkeyboard>
|
||||
24
common/test/keyboards/full_caps_3620_3621/source/readme.htm
Normal file
24
common/test/keyboards/full_caps_3620_3621/source/readme.htm
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>full_caps_3620_3621</title>
|
||||
<style type="text/css">
|
||||
p { font: 10pt Tahoma; }
|
||||
h1 { font: bold 16pt Tahoma; color: #4444cc; margin-bottom: 2px }
|
||||
h2 { font: bold 12pt Tahoma; color: #4444cc; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>full_caps_3620_3621</h1>
|
||||
|
||||
<p>
|
||||
full_caps_3620_3621 1.0 generated from template.
|
||||
</p>
|
||||
|
||||
<p>©</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
26
common/test/keyboards/full_caps_3620_3621/source/welcome.htm
Normal file
26
common/test/keyboards/full_caps_3620_3621/source/welcome.htm
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Start Using full_caps_3620_3621</title>
|
||||
<style type="text/css">
|
||||
p { font: 10pt Tahoma; }
|
||||
h1 { font: bold 16pt Tahoma; color: #4444cc; margin-bottom: 2px }
|
||||
h2 { font: bold 12pt Tahoma; color: #4444cc; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>Start Using full_caps_3620_3621</h1>
|
||||
|
||||
<p>
|
||||
full_caps_3620_3621 1.0 generated from template.
|
||||
</p>
|
||||
|
||||
<h1>Keyboard Layout</h1>
|
||||
|
||||
<!-- Insert Keyboard Layout Images or HTML here -->
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
common/test/keyboards/start_of_sentence_3621/.gitignore
vendored
Normal file
1
common/test/keyboards/start_of_sentence_3621/.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
build/
|
||||
6
common/test/keyboards/start_of_sentence_3621/HISTORY.md
Normal file
6
common/test/keyboards/start_of_sentence_3621/HISTORY.md
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
start_of_sentence_3621 Change History
|
||||
====================
|
||||
|
||||
1.0 (2021-11-22)
|
||||
----------------
|
||||
* Created by
|
||||
21
common/test/keyboards/start_of_sentence_3621/LICENSE.md
Normal file
21
common/test/keyboards/start_of_sentence_3621/LICENSE.md
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
© 2021
|
||||
|
||||
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.
|
||||
30
common/test/keyboards/start_of_sentence_3621/README.md
Normal file
30
common/test/keyboards/start_of_sentence_3621/README.md
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
start_of_sentence_3621 keyboard
|
||||
==============
|
||||
|
||||
Version 1.0
|
||||
|
||||
Description
|
||||
-----------
|
||||
start_of_sentence_3621 generated from template
|
||||
|
||||
Links
|
||||
-----
|
||||
|
||||
Copyright
|
||||
---------
|
||||
See [LICENSE.md](LICENSE.md)
|
||||
|
||||
Supported Platforms
|
||||
-------------------
|
||||
* Windows
|
||||
* macOS
|
||||
* Linux
|
||||
* Web
|
||||
* iPhone
|
||||
* iPad
|
||||
* Android phone
|
||||
* Android tablet
|
||||
* Mobile devices
|
||||
* Desktop devices
|
||||
* Tablet devices
|
||||
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>start_of_sentence_3621</title>
|
||||
<style type="text/css">
|
||||
p { font: 10pt Tahoma; }
|
||||
h1 { font: bold 16pt Tahoma; color: #4444cc; margin-bottom: 2px }
|
||||
h2 { font: bold 12pt Tahoma; color: #4444cc; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>start_of_sentence_3621</h1>
|
||||
|
||||
<p>
|
||||
start_of_sentence_3621 1.0 generated from template.
|
||||
</p>
|
||||
|
||||
<p>©</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1,50 @@
|
|||
c This keyboard provides a reasonably complete example of
|
||||
c start-of-sentence detection, for use in testing #3621.
|
||||
store(&VERSION) '10.0'
|
||||
store(&NAME) 'start_of_sentence_3621'
|
||||
store(©RIGHT) '©'
|
||||
store(&KEYBOARDVERSION) '1.0'
|
||||
store(&TARGETS) 'any'
|
||||
store(&VISUALKEYBOARD) 'start_of_sentence_3621.kvks'
|
||||
store(&LAYOUTFILE) 'start_of_sentence_3621.keyman-touch-layout'
|
||||
|
||||
begin Unicode > use(main)
|
||||
begin NewContext > use(NewContext)
|
||||
begin PostKeystroke > use(PostKeystroke)
|
||||
|
||||
group(NewContext) readonly
|
||||
c Any time we get a new context, by mouse click, tap,
|
||||
c cursor movement, new document, etc, we'll try and
|
||||
c determine the best layer to use
|
||||
nomatch > use(nextLayer)
|
||||
|
||||
group(PostKeystroke) readonly
|
||||
|
||||
store(caps) 'A'..'Z'
|
||||
store(digit) '0'..'9'
|
||||
|
||||
c this is a heuristic that we can use until we support a CAPS layer (#3620):
|
||||
c if we find two+ characters in capitals, leave us in shift layer,
|
||||
c assuming the user hasn't just switched layer themselves. Once we have a
|
||||
c proper CAPS layer, we'll get rid of this.
|
||||
if(&layerChanged = "0") any(caps) any(caps) > context
|
||||
|
||||
c stay on the numeric layer if we are there already
|
||||
if(&layerChanged = "0") if(&layer = 'numeric') any(digit) > context
|
||||
|
||||
c no other changes, so detect sentence or layer change, as long
|
||||
c as the user hasn't attempted to change layer themselves
|
||||
if(&layerChanged = "0") > use(nextLayer)
|
||||
|
||||
group(nextLayer) readonly
|
||||
|
||||
store(sentencePunctuation) '.?!'
|
||||
nul > layer('shift')
|
||||
c note that 'readonly' layers do not need to use 'context' unless there is
|
||||
c no other content on output of rule (empty output is illegal)
|
||||
any(sentencePunctuation) ' ' > layer('shift')
|
||||
any(sentencePunctuation) ' ' > layer('shift')
|
||||
nomatch > layer('default')
|
||||
|
||||
group(main) using keys
|
||||
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Package>
|
||||
<System>
|
||||
<KeymanDeveloperVersion>15.0.114.0</KeymanDeveloperVersion>
|
||||
<FileVersion>7.0</FileVersion>
|
||||
</System>
|
||||
<Options>
|
||||
<ExecuteProgram></ExecuteProgram>
|
||||
<ReadMeFile>readme.htm</ReadMeFile>
|
||||
<MSIFileName></MSIFileName>
|
||||
<MSIOptions></MSIOptions>
|
||||
<FollowKeyboardVersion/>
|
||||
</Options>
|
||||
<StartMenu>
|
||||
<Folder></Folder>
|
||||
<Items/>
|
||||
</StartMenu>
|
||||
<Info>
|
||||
<Name URL="">start_of_sentence_3621</Name>
|
||||
<Copyright URL="">©</Copyright>
|
||||
<Author URL=""></Author>
|
||||
<Version URL=""></Version>
|
||||
</Info>
|
||||
<Files>
|
||||
<File>
|
||||
<Name>..\build\start_of_sentence_3621.kmx</Name>
|
||||
<Description></Description>
|
||||
<CopyLocation>0</CopyLocation>
|
||||
<FileType>.kmx</FileType>
|
||||
</File>
|
||||
<File>
|
||||
<Name>..\build\start_of_sentence_3621.js</Name>
|
||||
<Description></Description>
|
||||
<CopyLocation>0</CopyLocation>
|
||||
<FileType>.js</FileType>
|
||||
</File>
|
||||
<File>
|
||||
<Name>..\build\start_of_sentence_3621.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>
|
||||
</Files>
|
||||
<Keyboards>
|
||||
<Keyboard>
|
||||
<Name>start_of_sentence_3621</Name>
|
||||
<ID>start_of_sentence_3621</ID>
|
||||
<Version>1.0</Version>
|
||||
<Languages>
|
||||
<Language ID="en">English</Language>
|
||||
</Languages>
|
||||
</Keyboard>
|
||||
</Keyboards>
|
||||
<Strings/>
|
||||
</Package>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<visualkeyboard>
|
||||
<header>
|
||||
<version>10.0</version>
|
||||
<kbdname>start_of_sentence_3621</kbdname>
|
||||
<flags/>
|
||||
</header>
|
||||
</visualkeyboard>
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Start Using start_of_sentence_3621</title>
|
||||
<style type="text/css">
|
||||
p { font: 10pt Tahoma; }
|
||||
h1 { font: bold 16pt Tahoma; color: #4444cc; margin-bottom: 2px }
|
||||
h2 { font: bold 12pt Tahoma; color: #4444cc; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>Start Using start_of_sentence_3621</h1>
|
||||
|
||||
<p>
|
||||
start_of_sentence_3621 1.0 generated from template.
|
||||
</p>
|
||||
|
||||
<h1>Keyboard Layout</h1>
|
||||
|
||||
<!-- Insert Keyboard Layout Images or HTML here -->
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"license": "mit",
|
||||
"languages": [
|
||||
"en"
|
||||
],
|
||||
"description": "start_of_sentence_3621 generated from template"
|
||||
}
|
||||
|
|
@ -0,0 +1,102 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<KeymanDeveloperProject>
|
||||
<Options>
|
||||
<BuildPath>$PROJECTPATH\build</BuildPath>
|
||||
<CompilerWarningsAsErrors>True</CompilerWarningsAsErrors>
|
||||
<WarnDeprecatedCode>True</WarnDeprecatedCode>
|
||||
<CheckFilenameConventions>True</CheckFilenameConventions>
|
||||
<ProjectType>keyboard</ProjectType>
|
||||
</Options>
|
||||
<Files>
|
||||
<File>
|
||||
<ID>id_51d2ccbdcbeeb798d532100b86252a19</ID>
|
||||
<Filename>start_of_sentence_3621.kmn</Filename>
|
||||
<Filepath>source\start_of_sentence_3621.kmn</Filepath>
|
||||
<FileVersion>1.0</FileVersion>
|
||||
<FileType>.kmn</FileType>
|
||||
<Details>
|
||||
<Name>start_of_sentence_3621</Name>
|
||||
<Copyright>©</Copyright>
|
||||
</Details>
|
||||
</File>
|
||||
<File>
|
||||
<ID>id_feb278f5f21f5a2c56418aef3d610100</ID>
|
||||
<Filename>start_of_sentence_3621.kps</Filename>
|
||||
<Filepath>source\start_of_sentence_3621.kps</Filepath>
|
||||
<FileVersion></FileVersion>
|
||||
<FileType>.kps</FileType>
|
||||
<Details>
|
||||
<Name>start_of_sentence_3621</Name>
|
||||
<Copyright>©</Copyright>
|
||||
</Details>
|
||||
</File>
|
||||
<File>
|
||||
<ID>id_ede98e4633e239f933cbfd1f4e1b766c</ID>
|
||||
<Filename>HISTORY.md</Filename>
|
||||
<Filepath>HISTORY.md</Filepath>
|
||||
<FileVersion></FileVersion>
|
||||
<FileType>.md</FileType>
|
||||
</File>
|
||||
<File>
|
||||
<ID>id_53e892b8b41cc4caece1cfd5ef21d6e7</ID>
|
||||
<Filename>LICENSE.md</Filename>
|
||||
<Filepath>LICENSE.md</Filepath>
|
||||
<FileVersion></FileVersion>
|
||||
<FileType>.md</FileType>
|
||||
</File>
|
||||
<File>
|
||||
<ID>id_0730bb7c2e8f9ea2438b52e419dd86c9</ID>
|
||||
<Filename>README.md</Filename>
|
||||
<Filepath>README.md</Filepath>
|
||||
<FileVersion></FileVersion>
|
||||
<FileType>.md</FileType>
|
||||
</File>
|
||||
<File>
|
||||
<ID>id_31c9e544d5ff29ebb5ee3006e39f5624</ID>
|
||||
<Filename>start_of_sentence_3621.keyboard_info</Filename>
|
||||
<Filepath>start_of_sentence_3621.keyboard_info</Filepath>
|
||||
<FileVersion></FileVersion>
|
||||
<FileType>.keyboard_info</FileType>
|
||||
</File>
|
||||
<File>
|
||||
<ID>id_8b42366ff2333c0b6d85e2d23cf930d7</ID>
|
||||
<Filename>start_of_sentence_3621.kmx</Filename>
|
||||
<Filepath>source\..\build\start_of_sentence_3621.kmx</Filepath>
|
||||
<FileVersion></FileVersion>
|
||||
<FileType>.kmx</FileType>
|
||||
<ParentFileID>id_feb278f5f21f5a2c56418aef3d610100</ParentFileID>
|
||||
</File>
|
||||
<File>
|
||||
<ID>id_b0e85ab76446356d09d86b4187efbdad</ID>
|
||||
<Filename>start_of_sentence_3621.js</Filename>
|
||||
<Filepath>source\..\build\start_of_sentence_3621.js</Filepath>
|
||||
<FileVersion></FileVersion>
|
||||
<FileType>.js</FileType>
|
||||
<ParentFileID>id_feb278f5f21f5a2c56418aef3d610100</ParentFileID>
|
||||
</File>
|
||||
<File>
|
||||
<ID>id_3659e166ed1a8f97952e727f3a571a88</ID>
|
||||
<Filename>start_of_sentence_3621.kvk</Filename>
|
||||
<Filepath>source\..\build\start_of_sentence_3621.kvk</Filepath>
|
||||
<FileVersion></FileVersion>
|
||||
<FileType>.kvk</FileType>
|
||||
<ParentFileID>id_feb278f5f21f5a2c56418aef3d610100</ParentFileID>
|
||||
</File>
|
||||
<File>
|
||||
<ID>id_356e5d149c1e539356d72698c1e401a6</ID>
|
||||
<Filename>welcome.htm</Filename>
|
||||
<Filepath>source\welcome.htm</Filepath>
|
||||
<FileVersion></FileVersion>
|
||||
<FileType>.htm</FileType>
|
||||
<ParentFileID>id_feb278f5f21f5a2c56418aef3d610100</ParentFileID>
|
||||
</File>
|
||||
<File>
|
||||
<ID>id_8da344c4cea6f467013357fe099006f5</ID>
|
||||
<Filename>readme.htm</Filename>
|
||||
<Filepath>source\readme.htm</Filepath>
|
||||
<FileVersion></FileVersion>
|
||||
<FileType>.htm</FileType>
|
||||
<ParentFileID>id_feb278f5f21f5a2c56418aef3d610100</ParentFileID>
|
||||
</File>
|
||||
</Files>
|
||||
</KeymanDeveloperProject>
|
||||
|
|
@ -91,7 +91,8 @@ cp "$KEYMAN_MODELCOMPILER_ROOT/package-lock.json" "$KEYMAN_WIX_TEMP_MODELCOMPILE
|
|||
# Yuck! ref: https://github.com/npm/cli/issues/3975#issuecomment-985305678
|
||||
# ref: https://github.com/npm/cli/issues/2921
|
||||
# can't use npm uninstall because it depends on @keymanapp/models-types being present!
|
||||
cat package.json | grep -v "@keymanapp/models-templates" | grep -v "@keymanapp/models-wordbreakers" > package.json || true
|
||||
|
||||
cat "$KEYMAN_MODELCOMPILER_ROOT/package.json" | grep -v "@keymanapp/models-templates" | grep -v "@keymanapp/models-wordbreakers" > package.json || true
|
||||
|
||||
npm install kmtypes.tgz --production --no-optional
|
||||
npm install --production --no-optional
|
||||
|
|
|
|||
2
developer/js/package-lock.json
generated
2
developer/js/package-lock.json
generated
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@keymanapp/lexical-model-compiler",
|
||||
"version": "15.0.177",
|
||||
"version": "15.0.184",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@keymanapp/lexical-model-compiler",
|
||||
"version": "15.0.177",
|
||||
"version": "15.0.184",
|
||||
"description": "Keyman Developer lexical model compiler",
|
||||
"keywords": [
|
||||
"keyboard",
|
||||
|
|
@ -37,14 +37,14 @@
|
|||
"node": ">=12.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@keymanapp/models-types": "^15.0.177",
|
||||
"@keymanapp/models-types": "^15.0.184",
|
||||
"commander": "^3.0.0",
|
||||
"typescript": "^3.8.3",
|
||||
"xml2js": "^0.4.19"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@keymanapp/models-templates": "^15.0.177",
|
||||
"@keymanapp/models-wordbreakers": "^15.0.177",
|
||||
"@keymanapp/models-templates": "^15.0.184",
|
||||
"@keymanapp/models-wordbreakers": "^15.0.184",
|
||||
"@types/chai": "^4.1.7",
|
||||
"@types/mocha": "^5.2.7",
|
||||
"@types/node": "^10.14.6",
|
||||
|
|
|
|||
9
docs/build/linux-ubuntu.md
vendored
9
docs/build/linux-ubuntu.md
vendored
|
|
@ -6,15 +6,14 @@ On Linux, you can build the following projects:
|
|||
|
||||
* [Keyman for Linux](#keyman-for-linux)
|
||||
* [Keyman Core](#keyman-core) (Linux only) (aka common/core/desktop)
|
||||
|
||||
The following projects **cannot** be built on Linux because of outdated dependencies:
|
||||
|
||||
<!-- TODO: can we build Android, Web, Core-Wasm and Common/Web on Linux? -->
|
||||
<!-- TODO: document how to build for Android, Web, Core-Wasm and Common/Web on Linux. See TC build agent for details. -->
|
||||
* Keyman for Android
|
||||
* Keyman Core (wasm targets)
|
||||
* Common/Web (aka common/core/web)
|
||||
* KeymanWeb
|
||||
|
||||
The following projects **cannot** be built on Linux:
|
||||
|
||||
* Keyman for Windows
|
||||
* Keyman Developer
|
||||
* Keyman for macOS
|
||||
|
|
@ -46,7 +45,7 @@ They are most easily installed with the `mk-build-deps` tool:
|
|||
|
||||
```bash
|
||||
sudo apt update
|
||||
sudo apt install devscripts
|
||||
sudo apt install devscripts equivs
|
||||
sudo mk-build-deps --install linux/debian/control
|
||||
```
|
||||
|
||||
|
|
|
|||
6
docs/build/macos.md
vendored
6
docs/build/macos.md
vendored
|
|
@ -55,6 +55,12 @@ These dependencies are also listed below if you'd prefer to install manually.
|
|||
brew install bash jq python3 meson ninja rustup-init coreutils pandoc rustup-init
|
||||
```
|
||||
|
||||
On M1 only (as greadlink is not on the path otherwise in XCode):
|
||||
|
||||
```shell
|
||||
sudo ln -s /opt/homebrew/bin/greadlink /usr/local/bin/greadlink
|
||||
```
|
||||
|
||||
* Web: node.js, emscripten, wasm-pack, openjdk 8
|
||||
|
||||
```shell
|
||||
|
|
|
|||
|
|
@ -1058,8 +1058,8 @@
|
|||
C06D37271F81F4E100F61AE0 /* Frameworks */,
|
||||
C06D37281F81F4E100F61AE0 /* Headers */,
|
||||
C06D37291F81F4E100F61AE0 /* Resources */,
|
||||
CEC0C66F2410B005003E1BCD /* ShellScript */,
|
||||
CE880430247F6EB6009BCA1A /* ShellScript */,
|
||||
CEC0C66F2410B005003E1BCD /* Run Script - upload dsyms to Sentry */,
|
||||
CE880430247F6EB6009BCA1A /* Run Script - set bundle versions */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
|
|
@ -1306,7 +1306,7 @@
|
|||
shellPath = /bin/sh;
|
||||
shellScript = "#if which swiftlint >/dev/null; then\n# swiftlint --config ../../.swiftlint.yml\n#else\n# echo \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\n#fi\n";
|
||||
};
|
||||
CE880430247F6EB6009BCA1A /* ShellScript */ = {
|
||||
CE880430247F6EB6009BCA1A /* Run Script - set bundle versions */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
|
|
@ -1315,16 +1315,17 @@
|
|||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "Run Script - set bundle versions";
|
||||
outputFileListPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellPath = "/usr/bin/env bash";
|
||||
shellScript = "# Type a script or drag a script file from your workspace to insert its path.\n. \"$KEYMAN_ROOT/resources/build/xcode-utils.sh\"\n\nphaseSetBundleVersions true\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
CEC0C66F2410B005003E1BCD /* ShellScript */ = {
|
||||
CEC0C66F2410B005003E1BCD /* Run Script - upload dsyms to Sentry */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
|
|
@ -1334,12 +1335,13 @@
|
|||
inputPaths = (
|
||||
"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}",
|
||||
);
|
||||
name = "Run Script - upload dsyms to Sentry";
|
||||
outputFileListPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellPath = "/usr/bin/env bash";
|
||||
shellScript = "# Type a script or drag a script file from your workspace to insert its path.\n. \"$KEYMAN_ROOT/resources/build/xcode-utils.sh\"\n\nif [ ${UPLOAD_SENTRY:-false} = true ]; then\n # Calls resource script to perform the dSYM upload\n phaseSentryDsymUpload \"keyman-ios\"\nfi\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
/* Class = "UILabel"; text = "Scan this code to load this keyboard on another device"; ObjectID = "z2O-MT-IoV"; */
|
||||
"z2O-MT-IoV.text" = "Ka gǝ skan kod ǝni akuya ka gǝ vu kibod akwa devais damwa";
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
/* Class = "UILabel"; text = "Scan this code to load this keyboard on another device"; ObjectID = "z2O-MT-IoV"; */
|
||||
"z2O-MT-IoV.text" = "Afklat t fota nana code na guka klaft tana keyboard taghan unda sakwiɗi";
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
/* Class = "UILabel"; text = "Scan this code to load this keyboard on another device"; ObjectID = "z2O-MT-IoV"; */
|
||||
"z2O-MT-IoV.text" = "Kuga iu scan nur code ga fia keyboard arkra su nagum";
|
||||
254
ios/engine/KMEI/KeymanEngine/ckl.lproj/Localizable.strings
Normal file
254
ios/engine/KMEI/KeymanEngine/ckl.lproj/Localizable.strings
Normal file
|
|
@ -0,0 +1,254 @@
|
|||
/* A descriptive message used for errors when the app is already busy downloading */
|
||||
"alert-download-error-busy" = "Tsu ata kǝra downloading.";
|
||||
|
||||
/* A descriptive message used when a download fails */
|
||||
"alert-download-error-detail" = "Su kura kal kal ʻya sakatu ata kǝra download ko vu su alukwa.";
|
||||
|
||||
/* Title for a "download failed" alert */
|
||||
"alert-download-error-title" = "Su ʻya sakar download kura kal kal";
|
||||
|
||||
/* Title for a general alert about errors */
|
||||
"alert-error-title" = "Su adai kura kal kal";
|
||||
|
||||
/* A descriptive message used when no internet connection is detected */
|
||||
"alert-no-connection-detail" = "Adi ɓui ka tsǝbti Keyman server wɛ. Usɛ dzakti nkǝrti kadawm aɦǝla saka nkiɗu laka.";
|
||||
|
||||
/* Title for a "no connection" alert */
|
||||
"alert-no-connection-title" = "Su kura kal kal ʻya akwa sakar connection";
|
||||
|
||||
/* Short text for a 'back' navigational command. Used to return to the previous screen */
|
||||
"command-back" = "Mwari tubwa hi";
|
||||
|
||||
/* Short text for a 'cancel' command. Used to back out of a menu or install process without making changes */
|
||||
"command-cancel" = "Kansǝl";
|
||||
|
||||
/* Short text for a 'done' command. Used to back out of settings menus after changes have been made */
|
||||
"command-done" = "Kurai ʻyati";
|
||||
|
||||
/* Short text for an 'install' command. Used to confirm installation of a package. */
|
||||
"command-install" = "Vu ko hau";
|
||||
|
||||
/* Short text for a 'next' navigational command. Used to advance to the next screen */
|
||||
"command-next" = "Lǝkǝma";
|
||||
|
||||
/* Short text for an 'OK' command. Used for some error alerts */
|
||||
"command-ok" = "Kal kal";
|
||||
|
||||
/* Short text for confirmining 'uninstall' commands. */
|
||||
"command-uninstall" = "Faba ka kǝlba";
|
||||
|
||||
/* Text for the command to uninstall a keyboard */
|
||||
"command-uninstall-keyboard" = "Kǝlba ka ɗalba kibod";
|
||||
|
||||
/* Confirmation text to display before uninstalling a keyboard */
|
||||
"command-uninstall-keyboard-confirm" = "Gada bara ka kǝlba ka ɗalba kibod ǝni ya?";
|
||||
|
||||
/* Text for the command to uninstall a lexical model */
|
||||
"command-uninstall-lexical-model" = "Kǝlba ka ɗalba dictionary";
|
||||
|
||||
/* Confirmation text to display before uninstalling a lexical model */
|
||||
"command-uninstall-lexical-model-confirm" = "Gada bara ka kǝlba ka ɗalba dictionary ǝni ya?";
|
||||
|
||||
/* Text for error when a keyboard cannot load properly */
|
||||
"error-loading-keyboard" = "Ta mǝzi ka vu ko hau kibod namtǝ gǝ yuwɛ wɛ";
|
||||
|
||||
/* Text for error when a lexical model cannot load properly */
|
||||
"error-loading-lexical-model" = "Ta mǝzi ka vu ko hau dictionary namtǝ gǝ yuwɛ wɛ";
|
||||
|
||||
/* Text for error when an installed file is unexpectedly missing */
|
||||
"error-missing-file" = "Fail namtǝ ndada bara adi ɓuidzi wɛ.";
|
||||
|
||||
/* Text for error when an installed file is unexpectedly missing */
|
||||
"error-missing-file-critical" = "Fal laka nǝr ampani adi ɓuidzi wɛ ko ndǝ bara ka shang. Usɛ ɓǝla nkǝrti vu appari.";
|
||||
|
||||
/* Text for errors in data received from search queries */
|
||||
"error-query-decoding" = "Serveri aka damicinidzi lakayere tubwar naurayere kulini";
|
||||
|
||||
/* A descriptive message used when a download fails */
|
||||
"error-query-general" = "Su kura kal kal ata kǝra ʻya akwa kwa kwaliyir ndǝrɛ aka server";
|
||||
|
||||
/* Text for error when a search query is unexpectedly empty */
|
||||
"error-query-no-data" = "Server adi ɓui ka na ndɛ amsa wɛ";
|
||||
|
||||
/* Text for general errors where not much information is known */
|
||||
"error-unknown" = "Laifi laka kura ndǝta tǝmacini ku ʻya ko wakacini";
|
||||
|
||||
/* Text for error when updating a resource: cannot download because no source is available */
|
||||
"error-update-no-link" = "Sǝr tsanti nǝr updateyere adiwɛ kadǝbar package ǝni";
|
||||
|
||||
/* Text for error when updating a resource: Keyman does not know how to update the resource */
|
||||
"error-update-not-managed" = "Adiyata mǝzi update kariyere namtǝ engine nǝr Keyman adiyada manage wɛ";
|
||||
|
||||
/* Text for the command to open the help page of a keyboard, as shown on resource information views */
|
||||
"info-command-help-keyboard" = "Dlarɛ nǝr kibod";
|
||||
|
||||
/* Text for the command to open the help page of a lexical model, as shown on resource information views */
|
||||
"info-command-help-lexical-model" = "Dlarɛ nǝr dictionary";
|
||||
|
||||
/* Text label for displaying a keyboard's version, as shown on resource information views */
|
||||
"info-label-version-keyboard" = "Vershon nǝr kibod";
|
||||
|
||||
/* Text label for displaying a lexical model's version, as shown on resource information views */
|
||||
"info-label-version-lexical-model" = "Jiliyir dictionary";
|
||||
|
||||
/* Label used for the "package info" / readme tab with the package installation prompt on phones. */
|
||||
"installer-label-package-info" = "Sǝr zǝndi ata kǝra package";
|
||||
|
||||
/* Label used for the language-selection tab with the package installation prompt on phones. */
|
||||
"installer-label-select-languages" = "Tsarba Nya(yere)";
|
||||
|
||||
/* Label used with a package's version, as seen within the package installation prompt. Example: "Version: 14.0.0" */
|
||||
"installer-label-version" = "Jili: %@";
|
||||
|
||||
/* Section header for languages supported by a package, as seen within the package installation prompt */
|
||||
"installer-section-available-languages" = "Nyayere Nam Adai";
|
||||
|
||||
/* Text for the help popup for changing keyboards with the globe key */
|
||||
"keyboard-help-change" = "Ntsani vi ǝni akuya ka gǝ pali kibod";
|
||||
|
||||
/* Text for the command to exit the Keyman keyboard in favor of other keyboards installed on the system */
|
||||
"keyboard-menu-exit" = "Harti %@";
|
||||
|
||||
/* Error installing a Keyman package - could not allocate a location to install it */
|
||||
"kmp-error-file-system" = "Su kura kal kal ʻya sakar vu package - su kura kal kal akwa file-system";
|
||||
|
||||
/* Error installing a Keyman package - could not copy package files */
|
||||
"kmp-error-file-copying" = "Ada tsanti su kura kal kal sakar vu su - adi ɓui ka kopuba failyere nam kal kal wɛ";
|
||||
|
||||
/* Error opening a Keyman package - package is not valid */
|
||||
"kmp-error-invalid" = "Package nǝr failari suwatǝdzi.";
|
||||
|
||||
/* Error opening a Keyman package - it does not exist / the specified location is wrong */
|
||||
"kmp-error-missing" = "Pakeji ǝni musaman adi saga buidzi wɛ.";
|
||||
|
||||
/* Error installing a Keyman package - expected resource (keyboard or dictionary) is missing */
|
||||
"kmp-error-missing-resource" = "Package ǝni adiyaka kibod ko dictionary namtǝ gǝ yuwɛ wɛ.";
|
||||
|
||||
/* Error opening a Keyman package - cannot parse contents */
|
||||
"kmp-error-no-metadata" = "Package ǝni ndadi tsati tǝni kal kal wɛ - suyere nam akwa ndadi zǝndi wɛ.";
|
||||
|
||||
/* Error opening a Keyman package - package's contents are for desktop platforms only */
|
||||
"kmp-error-unsupported" = "Jili pakeji ǝni adi aka sǝr dlarɛ ala divaisǝr ngɛ wɛ.";
|
||||
|
||||
/* Error opening a Keyman package - package contains unexpected resource (keyboard or dictionary) type */
|
||||
"kmp-error-wrong-type" = "Package ǝni adiyaka jili su namtǝ ndǝ tǝmacini wɛ.";
|
||||
|
||||
/* Title for the Installed Languages menu */
|
||||
"menu-installed-languages-title" = "Nyayere Namtǝ Ndǝ Vu ko hau";
|
||||
|
||||
/* Section header for lexical models within a language-specific settings menu */
|
||||
"menu-langsettings-label-lexical-models" = "Dictionariyere";
|
||||
|
||||
/* Section header for keyboards within a language-specific settings menu */
|
||||
"menu-langsettings-section-keyboards" = "Kibodyere";
|
||||
|
||||
/* Section header for the settings toggles within a language-specific settings menu */
|
||||
"menu-langsettings-section-settings" = "Settingyere nǝr Nyayere";
|
||||
|
||||
/* Title for the language-specific settings menus */
|
||||
"menu-langsettings-title" = "%@ Settingyere";
|
||||
|
||||
/* Label for the toggle that enables corrections that is displayed within a language-specific settings menu */
|
||||
"menu-langsettings-toggle-correct" = "Enable corrections";
|
||||
|
||||
/* Label for the toggle that enables predictions that is displayed within a language-specific settings menu */
|
||||
"menu-langsettings-toggle-predict" = "Enable predictions";
|
||||
|
||||
/* Help message for a prompt that appears for confirming a lexical model download: language (1): lexical model (dictionary) name (2) */
|
||||
"menu-lexical-model-install-message" = "Gada bara ka vu ko hau dictionary ǝni ya?";
|
||||
|
||||
/* Title for a prompt that appears for confirming a lexical model download: language (1): lexical model (dictionary) name (2) */
|
||||
"menu-lexical-model-install-title" = "%1$@: %2$@";
|
||||
|
||||
/* Text for an info alert indicating that no lexical models are available */
|
||||
"menu-lexical-model-none-message" = "Dictionariyere adiyakwani wɛ";
|
||||
|
||||
/* Title for the lexical model menu, a submenu of the language-specific settings menus */
|
||||
"menu-lexical-model-title" = "%@ Dictionariyere";
|
||||
|
||||
/* Title for the keyboard picker */
|
||||
"menu-picker-title" = "Kibodyere";
|
||||
|
||||
/* Primary text for the Settings menu option to report keyboard crashes */
|
||||
"menu-settings-error-report" = "Gyar ka dzǝ rupotu kura kal kalǝr su";
|
||||
|
||||
/* Secondary text for the Settings menu option to report keyboard crashes */
|
||||
"menu-settings-error-report-description" = "Ata bara \"ɓuidzǝr lukwar su shang shang\"";
|
||||
|
||||
/* Primary text for the Settings menu local-file package installation option */
|
||||
"menu-settings-install-from-file" = "Vu ko Hau Tubwar File";
|
||||
|
||||
/* Secondary text for the Settings menu local-file package installation option */
|
||||
"menu-settings-install-from-file-description" = "Braus ala .kmp files";
|
||||
|
||||
/* Primary text for the Settings menu option that displays the iOS system menu options for the app's keyboard */
|
||||
"menu-settings-system-keyboard-menu" = "Settingyere nǝr System Kibod";
|
||||
|
||||
/* Label for the "Show Banner" toggle on the main settings screen */
|
||||
"menu-settings-show-banner" = "Tsanti Banner";
|
||||
|
||||
/* Label for the "Get Started" automatic display toggle seen in the Settings menu */
|
||||
"menu-settings-startup-get-started" = "Tsanti 'Badicini Kǝthlǝr' ata mburntar kǝthlǝr";
|
||||
|
||||
/* Title for the main Settings menu */
|
||||
"menu-settings-title" = "Settingyere nǝr Keyman";
|
||||
|
||||
/* Secondary text showing current setting for spacebar caption - blank */
|
||||
"menu-settings-spacebar-hint-blank" = "Ta gǝta tsanti kapshion ko spesba";
|
||||
|
||||
/* Secondary text showing current setting for spacebar caption - keyboard */
|
||||
"menu-settings-spacebar-hint-keyboard" = "Tsanti thlǝma kibod ata spesba";
|
||||
|
||||
/* Secondary text showing current setting for spacebar caption - language */
|
||||
"menu-settings-spacebar-hint-language" = "Tsanti thlǝma nya ata spesba";
|
||||
|
||||
/* Secondary text showing current setting for spacebar caption - language + keyboard */
|
||||
"menu-settings-spacebar-hint-languageKeyboard" = "Tsanti nya ba kibod ata spesba";
|
||||
|
||||
/* Label for the "Spacebar Caption" item on the main settings screen */
|
||||
"menu-settings-spacebar-text" = "Kapshion nǝr spesba";
|
||||
|
||||
/* Title for the "Spacebar Caption" settings screen */
|
||||
"menu-settings-spacebar-title" = "Kapshion nǝr spesba";
|
||||
|
||||
/* Text showing name of spacebar caption - blank */
|
||||
"menu-settings-spacebar-item-blank" = "Kuraka rubwa akwa";
|
||||
|
||||
/* Text showing name of spacebar caption - keyboard */
|
||||
"menu-settings-spacebar-item-keyboard" = "Kibod";
|
||||
|
||||
/* Text showing name of spacebar caption - language */
|
||||
"menu-settings-spacebar-item-language" = "Nya";
|
||||
|
||||
/* Text showing name of spacebar caption - language + keyboard */
|
||||
"menu-settings-spacebar-item-languageKeyboard" = "Nya ba kibod";
|
||||
|
||||
/* Short text for notification: download failure for keyboard */
|
||||
"notification-download-failure-keyboard" = "Download nǝr Keyman ta ʻya wɛ";
|
||||
|
||||
/* Short text for notification: download failure for lexical model */
|
||||
"notification-download-failure-lexical-model" = "Dictionary download ta ʻya wɛ";
|
||||
|
||||
/* Short text for notification: download success for keyboard */
|
||||
"notification-download-success-keyboard" = "Ndǝ sǝgǝl aka kibod kura bwanai";
|
||||
|
||||
/* Short text for notification: download success for lexical model */
|
||||
"notification-download-success-lexical-model" = "Ndǝ sǝgǝl aka lexical model kuraka bwanai";
|
||||
|
||||
/* Short text for notification: downloading a keyboard */
|
||||
"notification-downloading-keyboard" = "Ata kǝra download kibod\U2026";
|
||||
|
||||
/* Short text for notification: downloading a lexical model */
|
||||
"notification-downloading-lexical-model" = "Ata kǝra download dictionary\U2026";
|
||||
|
||||
/* Short text for notification: an update is available */
|
||||
"notification-update-available" = "Update Adai";
|
||||
|
||||
/* Short text for notification: currently updating */
|
||||
"notification-update-processing" = "Ata kǝra ʻya updating\U2026";
|
||||
|
||||
/* Text indicating success at installing new keyboards or dictionaries */
|
||||
"success-install" = "Vudzi kuraka bwanai.";
|
||||
|
||||
/* A title to use in alerts indicating 'success' at whatever task the user requested */
|
||||
"success-title" = "ʻYatǝdzi";
|
||||
118
ios/engine/KMEI/KeymanEngine/ckl.lproj/Localizable.stringsdict
Normal file
118
ios/engine/KMEI/KeymanEngine/ckl.lproj/Localizable.stringsdict
Normal file
|
|
@ -0,0 +1,118 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>menu-langsettings-lexical-model-count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@count@</string>
|
||||
<key>count</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>u</string>
|
||||
<key>one</key>
|
||||
<string>%u ndǝ vu ko hau dictionary</string>
|
||||
<key>other</key>
|
||||
<string>%u ndǝ vu ko hau dictionariyere</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>notification-update-failed</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@count@</string>
|
||||
<key>count</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>u</string>
|
||||
<key>one</key>
|
||||
<string>%u update adi ʻya wɛ</string>
|
||||
<key>other</key>
|
||||
<string>%u updateyere ada ʻya wɛ</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>notification-update-success</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@count@</string>
|
||||
<key>count</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>u</string>
|
||||
<key>one</key>
|
||||
<string>%u update ku ʻya</string>
|
||||
<key>other</key>
|
||||
<string>%u updateyere ku ʻyatǝdzi</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>settings-keyboards-installed-count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@count@</string>
|
||||
<key>count</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>u</string>
|
||||
<key>one</key>
|
||||
<string>%u ndǝ vu ko hau kibod</string>
|
||||
<key>other</key>
|
||||
<string>%u ndǝ vu ko hau kibodyere</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>settings-languages-installed-count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@count@</string>
|
||||
<key>count</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>u</string>
|
||||
<key>one</key>
|
||||
<string>%u ndǝ vu nya akwa</string>
|
||||
<key>other</key>
|
||||
<string>%u ndǝ vu nyayere akwa</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>package-default-found-keyboards</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@count@</string>
|
||||
<key>count</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>u</string>
|
||||
<key>one</key>
|
||||
<string>Bui %u kibod akwa package:</string>
|
||||
<key>other</key>
|
||||
<string>Ɓui %u kibodyere akwa package:</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>package-default-found-lexical-models</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@count@</string>
|
||||
<key>count</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>u</string>
|
||||
<key>one</key>
|
||||
<string>Ɓui %u dictionary akwa package:</string>
|
||||
<key>other</key>
|
||||
<string>Ɓui %u dictionariyere akwa package:</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
254
ios/engine/KMEI/KeymanEngine/hia.lproj/Localizable.strings
Normal file
254
ios/engine/KMEI/KeymanEngine/hia.lproj/Localizable.strings
Normal file
|
|
@ -0,0 +1,254 @@
|
|||
/* A descriptive message used for errors when the app is already busy downloading */
|
||||
"alert-download-error-busy" = "Tun daga ghalaya t kal sukweɗe.";
|
||||
|
||||
/* A descriptive message used when a download fails */
|
||||
"alert-download-error-detail" = "Haha ina magavata sirta kal sikweɗe ko fanta.";
|
||||
|
||||
/* Title for a "download failed" alert */
|
||||
"alert-download-error-title" = "Kuskure magalo sarta kal sukweɗe";
|
||||
|
||||
/* Title for a general alert about errors */
|
||||
"alert-error-title" = "Kuskure";
|
||||
|
||||
/* A descriptive message used when no internet connection is detected */
|
||||
"alert-no-connection-detail" = "Da kusataka t Keyman server. Gamsa antika guleng t kima.";
|
||||
|
||||
/* Title for a "no connection" alert */
|
||||
"alert-no-connection-title" = "Haha kuskura njagwata";
|
||||
|
||||
/* Short text for a 'back' navigational command. Used to return to the previous screen */
|
||||
"command-back" = "Uhili";
|
||||
|
||||
/* Short text for a 'cancel' command. Used to back out of a menu or install process without making changes */
|
||||
"command-cancel" = "Jata";
|
||||
|
||||
/* Short text for a 'done' command. Used to back out of settings menus after changes have been made */
|
||||
"command-done" = "Kukuɗa";
|
||||
|
||||
/* Short text for an 'install' command. Used to confirm installation of a package. */
|
||||
"command-install" = "Fanta";
|
||||
|
||||
/* Short text for a 'next' navigational command. Used to advance to the next screen */
|
||||
"command-next" = "Unda siɗi";
|
||||
|
||||
/* Short text for an 'OK' command. Used for some error alerts */
|
||||
"command-ok" = "Toh";
|
||||
|
||||
/* Short text for confirmining 'uninstall' commands. */
|
||||
"command-uninstall" = "Fan bolwo";
|
||||
|
||||
/* Text for the command to uninstall a keyboard */
|
||||
"command-uninstall-keyboard" = "Fan bol t keyboard nganawo";
|
||||
|
||||
/* Confirmation text to display before uninstalling a keyboard */
|
||||
"command-uninstall-keyboard-confirm" = "Haka ɗow ka fan tana keyboard nure?";
|
||||
|
||||
/* Text for the command to uninstall a lexical model */
|
||||
"command-uninstall-lexical-model" = "Fan bol t dictionary wo";
|
||||
|
||||
/* Confirmation text to display before uninstalling a lexical model */
|
||||
"command-uninstall-lexical-model-confirm" = "Haka ɗow fan tana dictionary nure?";
|
||||
|
||||
/* Text for error when a keyboard cannot load properly */
|
||||
"error-loading-keyboard" = "Ha da wawata klaft keyboard unda ɗowal wo";
|
||||
|
||||
/* Text for error when a lexical model cannot load properly */
|
||||
"error-loading-lexical-model" = "Ha da wawata klaft dictionary unda ɗowal wo";
|
||||
|
||||
/* Text for error when an installed file is unexpectedly missing */
|
||||
"error-missing-file" = "File unda ɗowal na javabolwo.";
|
||||
|
||||
/* Text for error when an installed file is unexpectedly missing */
|
||||
"error-missing-file-critical" = "File unda bla na java bolwo. Gamsa avira tikan tina fanta ngana.";
|
||||
|
||||
/* Text for errors in data received from search queries */
|
||||
"error-query-decoding" = "Server ngana ɗakanana haha ina kol ɗughwana amndiya]";
|
||||
|
||||
/* A descriptive message used when a download fails */
|
||||
"error-query-general" = "Haha kuskura kor gwaɗa nda server";
|
||||
|
||||
/* Text for error when a search query is unexpectedly empty */
|
||||
"error-query-no-data" = "Server ngana na ha mog thlina wo";
|
||||
|
||||
/* Text for general errors where not much information is known */
|
||||
"error-unknown" = "Kuskure kol sinantal faravata";
|
||||
|
||||
/* Text for error when updating a resource: cannot download because no source is available */
|
||||
"error-update-no-link" = "Ha inunda nighangal da maran tinunda sa magawo anga nana package nawo";
|
||||
|
||||
/* Text for error when updating a resource: Keyman does not know how to update the resource */
|
||||
"error-update-not-managed" = "Ha da javat tinahunda sa magal ghalayawo kol magatal nda keyman engine wo";
|
||||
|
||||
/* Text for the command to open the help page of a keyboard, as shown on resource information views */
|
||||
"info-command-help-keyboard" = "Keyboard unda t tamoko";
|
||||
|
||||
/* Text for the command to open the help page of a lexical model, as shown on resource information views */
|
||||
"info-command-help-lexical-model" = "Dictionary tamoko";
|
||||
|
||||
/* Text label for displaying a keyboard's version, as shown on resource information views */
|
||||
"info-label-version-keyboard" = "Sangabt keyboard";
|
||||
|
||||
/* Text label for displaying a lexical model's version, as shown on resource information views */
|
||||
"info-label-version-lexical-model" = "Sangabt dictionary";
|
||||
|
||||
/* Label used for the "package info" / readme tab with the package installation prompt on phones. */
|
||||
"installer-label-package-info" = "Package Info";
|
||||
|
||||
/* Label used for the language-selection tab with the package installation prompt on phones. */
|
||||
"installer-label-select-languages" = "Klabt gwaɗa luwaha";
|
||||
|
||||
/* Label used with a package's version, as seen within the package installation prompt. Example: "Version: 14.0.0" */
|
||||
"installer-label-version" = "Sangabt: %@";
|
||||
|
||||
/* Section header for languages supported by a package, as seen within the package installation prompt */
|
||||
"installer-section-available-languages" = "Gwaɗaha luwunda hahaɗe";
|
||||
|
||||
/* Text for the help popup for changing keyboards with the globe key */
|
||||
"keyboard-help-change" = "Aff fa jiv ahdina ka mbiɗat keyboard";
|
||||
|
||||
/* Text for the command to exit the Keyman keyboard in favor of other keyboards installed on the system */
|
||||
"keyboard-menu-exit" = "Funta %@";
|
||||
|
||||
/* Error installing a Keyman package - could not allocate a location to install it */
|
||||
"kmp-error-file-system" = "Kuskura fant package - file - system kuskure";
|
||||
|
||||
/* Error installing a Keyman package - could not copy package files */
|
||||
"kmp-error-file-copying" = "Kuskura fant package - klafba t files unda ɗowal wo";
|
||||
|
||||
/* Error opening a Keyman package - package is not valid */
|
||||
"kmp-error-invalid" = "Package's file na ɗughwan buwo.";
|
||||
|
||||
/* Error opening a Keyman package - it does not exist / the specified location is wrong */
|
||||
"kmp-error-missing" = "Inunda sinaglo package haɗuwo ha mog thlinawo.";
|
||||
|
||||
/* Error installing a Keyman package - expected resource (keyboard or dictionary) is missing */
|
||||
"kmp-error-missing-resource" = "Nana package nana haɗ nda keyboard unda ɗowal wo ko dictionary.";
|
||||
|
||||
/* Error opening a Keyman package - cannot parse contents */
|
||||
"kmp-error-no-metadata" = "Nana package nana babol ɗughwanawo - contents sinanbolwo.";
|
||||
|
||||
/* Error opening a Keyman package - package's contents are for desktop platforms only */
|
||||
"kmp-error-unsupported" = "Nana package nana haɗ ta fanast jiv t device ghahaghuwo.";
|
||||
|
||||
/* Error opening a Keyman package - package contains unexpected resource (keyboard or dictionary) type */
|
||||
"kmp-error-wrong-type" = "Nana package nana haɗ nda inahunda ɗowal wo.";
|
||||
|
||||
/* Title for the Installed Languages menu */
|
||||
"menu-installed-languages-title" = "Gwaɗaha luwunda fanlo";
|
||||
|
||||
/* Section header for lexical models within a language-specific settings menu */
|
||||
"menu-langsettings-label-lexical-models" = "Dictionaries";
|
||||
|
||||
/* Section header for keyboards within a language-specific settings menu */
|
||||
"menu-langsettings-section-keyboards" = "Keyboards";
|
||||
|
||||
/* Section header for the settings toggles within a language-specific settings menu */
|
||||
"menu-langsettings-section-settings" = "Language Settings";
|
||||
|
||||
/* Title for the language-specific settings menus */
|
||||
"menu-langsettings-title" = "%@ Settings";
|
||||
|
||||
/* Label for the toggle that enables corrections that is displayed within a language-specific settings menu */
|
||||
"menu-langsettings-toggle-correct" = "Magaghva kuskure";
|
||||
|
||||
/* Label for the toggle that enables predictions that is displayed within a language-specific settings menu */
|
||||
"menu-langsettings-toggle-predict" = "Magaghva predictions";
|
||||
|
||||
/* Help message for a prompt that appears for confirming a lexical model download: language (1): lexical model (dictionary) name (2) */
|
||||
"menu-lexical-model-install-message" = "Ɗowka ka fant tana dictionary na re?";
|
||||
|
||||
/* Title for a prompt that appears for confirming a lexical model download: language (1): lexical model (dictionary) name (2) */
|
||||
"menu-lexical-model-install-title" = "%1$@: %2$@";
|
||||
|
||||
/* Text for an info alert indicating that no lexical models are available */
|
||||
"menu-lexical-model-none-message" = "Haɗ dictionaries wo";
|
||||
|
||||
/* Title for the lexical model menu, a submenu of the language-specific settings menus */
|
||||
"menu-lexical-model-title" = "%@ Dictionaries";
|
||||
|
||||
/* Title for the keyboard picker */
|
||||
"menu-picker-title" = "Keyboards";
|
||||
|
||||
/* Primary text for the Settings menu option to report keyboard crashes */
|
||||
"menu-settings-error-report" = "Avathla kor t kuskure";
|
||||
|
||||
/* Secondary text for the Settings menu option to report keyboard crashes */
|
||||
"menu-settings-error-report-description" = "Ma da ɗowt \"wativ sosaya\"";
|
||||
|
||||
/* Primary text for the Settings menu local-file package installation option */
|
||||
"menu-settings-install-from-file" = "Fanta avla File";
|
||||
|
||||
/* Secondary text for the Settings menu local-file package installation option */
|
||||
"menu-settings-install-from-file-description" = "Browse anga .kmp files";
|
||||
|
||||
/* Primary text for the Settings menu option that displays the iOS system menu options for the app's keyboard */
|
||||
"menu-settings-system-keyboard-menu" = "System Keyboard Settings";
|
||||
|
||||
/* Label for the "Show Banner" toggle on the main settings screen */
|
||||
"menu-settings-show-banner" = "Marant Banner";
|
||||
|
||||
/* Label for the "Get Started" automatic display toggle seen in the Settings menu */
|
||||
"menu-settings-startup-get-started" = "Marant 'A fuɗa' t startup";
|
||||
|
||||
/* Title for the main Settings menu */
|
||||
"menu-settings-title" = "Keyman Settings";
|
||||
|
||||
/* Secondary text showing current setting for spacebar caption - blank */
|
||||
"menu-settings-spacebar-hint-blank" = "Eh marantaka t caption taghan spacebar";
|
||||
|
||||
/* Secondary text showing current setting for spacebar caption - keyboard */
|
||||
"menu-settings-spacebar-hint-keyboard" = "Marant keyboard zirin taghan spacebar";
|
||||
|
||||
/* Secondary text showing current setting for spacebar caption - language */
|
||||
"menu-settings-spacebar-hint-language" = "Marant gwaɗa luwa taghan spacebar";
|
||||
|
||||
/* Secondary text showing current setting for spacebar caption - language + keyboard */
|
||||
"menu-settings-spacebar-hint-languageKeyboard" = "Marant gwaɗa luwa nda keyboard zirini taghan spacebar";
|
||||
|
||||
/* Label for the "Spacebar Caption" item on the main settings screen */
|
||||
"menu-settings-spacebar-text" = "Spacebar Caption";
|
||||
|
||||
/* Title for the "Spacebar Caption" settings screen */
|
||||
"menu-settings-spacebar-title" = "Spacebar Caption";
|
||||
|
||||
/* Text showing name of spacebar caption - blank */
|
||||
"menu-settings-spacebar-item-blank" = "Ha konuwo";
|
||||
|
||||
/* Text showing name of spacebar caption - keyboard */
|
||||
"menu-settings-spacebar-item-keyboard" = "Keyboard";
|
||||
|
||||
/* Text showing name of spacebar caption - language */
|
||||
"menu-settings-spacebar-item-language" = "Gwaɗa luwa";
|
||||
|
||||
/* Text showing name of spacebar caption - language + keyboard */
|
||||
"menu-settings-spacebar-item-languageKeyboard" = "Gwaɗa luwa nda keyboard";
|
||||
|
||||
/* Short text for notification: download failure for keyboard */
|
||||
"notification-download-failure-keyboard" = "Keyboard sangatana kalavukala";
|
||||
|
||||
/* Short text for notification: download failure for lexical model */
|
||||
"notification-download-failure-lexical-model" = "Kalavukala k sangat dictionary";
|
||||
|
||||
/* Short text for notification: download success for keyboard */
|
||||
"notification-download-success-keyboard" = "Keyboard na sangasal ɗughwana";
|
||||
|
||||
/* Short text for notification: download success for lexical model */
|
||||
"notification-download-success-lexical-model" = "Lexical model sangasal ɗughwana";
|
||||
|
||||
/* Short text for notification: downloading a keyboard */
|
||||
"notification-downloading-keyboard" = "Sangat keyboard\U2026";
|
||||
|
||||
/* Short text for notification: downloading a lexical model */
|
||||
"notification-downloading-lexical-model" = "Sangat dictionary\U2026";
|
||||
|
||||
/* Short text for notification: an update is available */
|
||||
"notification-update-available" = "Update hahaɗe";
|
||||
|
||||
/* Short text for notification: currently updating */
|
||||
"notification-update-processing" = "Updating\U2026";
|
||||
|
||||
/* Text indicating success at installing new keyboards or dictionaries */
|
||||
"success-install" = "Fanfal ɗughwana.";
|
||||
|
||||
/* A title to use in alerts indicating 'success' at whatever task the user requested */
|
||||
"success-title" = "Magat saʻa";
|
||||
132
ios/engine/KMEI/KeymanEngine/hia.lproj/Localizable.stringsdict
Normal file
132
ios/engine/KMEI/KeymanEngine/hia.lproj/Localizable.stringsdict
Normal file
|
|
@ -0,0 +1,132 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>menu-langsettings-lexical-model-count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@count@</string>
|
||||
<key>count</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>u</string>
|
||||
<key>zero</key>
|
||||
<string>%uDictionary fan falo</string>
|
||||
<key>one</key>
|
||||
<string>%u dictionary fan falo</string>
|
||||
<key>other</key>
|
||||
<string>%u dictionary fan lo</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>notification-update-failed</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@count@</string>
|
||||
<key>count</key>
|
||||
<dict>
|
||||
<key>zero</key>
|
||||
<string>%u update kalavukala</string>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>u</string>
|
||||
<key>one</key>
|
||||
<string>%u update kalavukala</string>
|
||||
<key>other</key>
|
||||
<string>%u update kalavukala</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>notification-update-success</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@count@</string>
|
||||
<key>count</key>
|
||||
<dict>
|
||||
<key>zero</key>
|
||||
<string>%u update kalavukala</string>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>u</string>
|
||||
<key>one</key>
|
||||
<string>%u update kalavukala</string>
|
||||
<key>other</key>
|
||||
<string>%u update kalavukala</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>settings-keyboards-installed-count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@count@</string>
|
||||
<key>count</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>u</string>
|
||||
<key>zero</key>
|
||||
<string>%u keyboard fanfalo</string>
|
||||
<key>one</key>
|
||||
<string>%u keyboard fanfalo</string>
|
||||
<key>other</key>
|
||||
<string>%u keyboard fan falo</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>settings-languages-installed-count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@count@</string>
|
||||
<key>count</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>u</string>
|
||||
<key>zero</key>
|
||||
<string>%u gwaɗa luwa falo</string>
|
||||
<key>one</key>
|
||||
<string>%u gwaɗa luwa fanfalo</string>
|
||||
<key>other</key>
|
||||
<string>%u gwaɗa luwa fanfalo</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>package-default-found-keyboards</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@count@</string>
|
||||
<key>count</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>u</string>
|
||||
<key>zero</key>
|
||||
<string>Javat %u keyboard an package:</string>
|
||||
<key>one</key>
|
||||
<string>Javat %u keyboard an package:</string>
|
||||
<key>other</key>
|
||||
<string>Javat %u keyboard an package:</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>package-default-found-lexical-models</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@count@</string>
|
||||
<key>count</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>u</string>
|
||||
<key>zero</key>
|
||||
<string>Javat %u dictionary in package:</string>
|
||||
<key>one</key>
|
||||
<string>Javat %u dictionary an package:</string>
|
||||
<key>other</key>
|
||||
<string>Javat %u dictionary an package:</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
254
ios/engine/KMEI/KeymanEngine/mrt.lproj/Localizable.strings
Normal file
254
ios/engine/KMEI/KeymanEngine/mrt.lproj/Localizable.strings
Normal file
|
|
@ -0,0 +1,254 @@
|
|||
/* A descriptive message used for errors when the app is already busy downloading */
|
||||
"alert-download-error-busy" = "Mji vur iu downloading.";
|
||||
|
||||
/* A descriptive message used when a download fails */
|
||||
"alert-download-error-detail" = "Error a irkir latur download akiya mai installation.";
|
||||
|
||||
/* Title for a "download failed" alert */
|
||||
"alert-download-error-title" = "Download error";
|
||||
|
||||
/* Title for a general alert about errors */
|
||||
"alert-error-title" = "Error";
|
||||
|
||||
/* A descriptive message used when no internet connection is detected */
|
||||
"alert-no-connection-detail" = "Acittu thlana Keyman server mai. Manki ngilaba sikari.";
|
||||
|
||||
/* Title for a "no connection" alert */
|
||||
"alert-no-connection-title" = "Connection Error";
|
||||
|
||||
/* Short text for a 'back' navigational command. Used to return to the previous screen */
|
||||
"command-back" = "Yikuɗu";
|
||||
|
||||
/* Short text for a 'cancel' command. Used to back out of a menu or install process without making changes */
|
||||
"command-cancel" = "Kukulna";
|
||||
|
||||
/* Short text for a 'done' command. Used to back out of settings menus after changes have been made */
|
||||
"command-done" = "Akuɗiri";
|
||||
|
||||
/* Short text for an 'install' command. Used to confirm installation of a package. */
|
||||
"command-install" = "Install";
|
||||
|
||||
/* Short text for a 'next' navigational command. Used to advance to the next screen */
|
||||
"command-next" = "Nagum";
|
||||
|
||||
/* Short text for an 'OK' command. Used for some error alerts */
|
||||
"command-ok" = "OK";
|
||||
|
||||
/* Short text for confirmining 'uninstall' commands. */
|
||||
"command-uninstall" = "Uninstall";
|
||||
|
||||
/* Text for the command to uninstall a keyboard */
|
||||
"command-uninstall-keyboard" = "Uninstall keyboard";
|
||||
|
||||
/* Confirmation text to display before uninstalling a keyboard */
|
||||
"command-uninstall-keyboard-confirm" = "Nagu ayu ga uninstall nur keyboard ya?";
|
||||
|
||||
/* Text for the command to uninstall a lexical model */
|
||||
"command-uninstall-lexical-model" = "Uninstall dictionary";
|
||||
|
||||
/* Confirmation text to display before uninstalling a lexical model */
|
||||
"command-uninstall-lexical-model-confirm" = "Nagu ayu ga uninstall nur dictionary ya?";
|
||||
|
||||
/* Text for error when a keyboard cannot load properly */
|
||||
"error-loading-keyboard" = "Acitu iu lodi nur keyboard dun mji vur ngu mai";
|
||||
|
||||
/* Text for error when a lexical model cannot load properly */
|
||||
"error-loading-lexical-model" = "Acitu iu lodi nur dictionary mji vur ngu";
|
||||
|
||||
/* Text for error when an installed file is unexpectedly missing */
|
||||
"error-missing-file" = "Mji acittu thlia file nagum mai.";
|
||||
|
||||
/* Text for error when an installed file is unexpectedly missing */
|
||||
"error-missing-file-critical" = "Critical file mji a lari mai. Manki bura fia app.";
|
||||
|
||||
/* Text for errors in data received from search queries */
|
||||
"error-query-decoding" = "Server ari naja vur thlia bone nur iu thlir duri";
|
||||
|
||||
/* A descriptive message used when a download fails */
|
||||
"error-query-general" = "Error nur ndir aga server";
|
||||
|
||||
/* Text for error when a search query is unexpectedly empty */
|
||||
"error-query-no-data" = "Server ari naja vur ndir mai";
|
||||
|
||||
/* Text for general errors where not much information is known */
|
||||
"error-unknown" = "Error nagum a irkir";
|
||||
|
||||
/* Text for error when updating a resource: cannot download because no source is available */
|
||||
"error-update-no-link" = "Lagu a'i mai nur su bilin anu package ku";
|
||||
|
||||
/* Text for error when updating a resource: Keyman does not know how to update the resource */
|
||||
"error-update-not-managed" = "Acittu fia su bilin kuku Keyman vur iu thlir arkra";
|
||||
|
||||
/* Text for the command to open the help page of a keyboard, as shown on resource information views */
|
||||
"info-command-help-keyboard" = "Ɓa nur Keyboard";
|
||||
|
||||
/* Text for the command to open the help page of a lexical model, as shown on resource information views */
|
||||
"info-command-help-lexical-model" = "Ɓa nur Dictionary";
|
||||
|
||||
/* Text label for displaying a keyboard's version, as shown on resource information views */
|
||||
"info-label-version-keyboard" = "Version nur Keyboard";
|
||||
|
||||
/* Text label for displaying a lexical model's version, as shown on resource information views */
|
||||
"info-label-version-lexical-model" = "Version nur Dictionary";
|
||||
|
||||
/* Label used for the "package info" / readme tab with the package installation prompt on phones. */
|
||||
"installer-label-package-info" = "Labar nur Package";
|
||||
|
||||
/* Label used for the language-selection tab with the package installation prompt on phones. */
|
||||
"installer-label-select-languages" = "Caɗu Ŋya ari (yer)";
|
||||
|
||||
/* Label used with a package's version, as seen within the package installation prompt. Example: "Version: 14.0.0" */
|
||||
"installer-label-version" = "Version: %@";
|
||||
|
||||
/* Section header for languages supported by a package, as seen within the package installation prompt */
|
||||
"installer-section-available-languages" = "Ŋya kuku aʻi";
|
||||
|
||||
/* Text for the help popup for changing keyboards with the globe key */
|
||||
"keyboard-help-change" = "Ncina uvun ga pubila keyboard";
|
||||
|
||||
/* Text for the command to exit the Keyman keyboard in favor of other keyboards installed on the system */
|
||||
"keyboard-menu-exit" = "Ghaɗu %@";
|
||||
|
||||
/* Error installing a Keyman package - could not allocate a location to install it */
|
||||
"kmp-error-file-system" = "Error nur fia package - error nur file-system";
|
||||
|
||||
/* Error installing a Keyman package - could not copy package files */
|
||||
"kmp-error-file-copying" = "Errror nur fu package - acittu huri jili file mai";
|
||||
|
||||
/* Error opening a Keyman package - package is not valid */
|
||||
"kmp-error-invalid" = "Package file a mdzu.";
|
||||
|
||||
/* Error opening a Keyman package - it does not exist / the specified location is wrong */
|
||||
"kmp-error-missing" = "Jili package ku a'i mai.";
|
||||
|
||||
/* Error installing a Keyman package - expected resource (keyboard or dictionary) is missing */
|
||||
"kmp-error-missing-resource" = "Package ku naja aga jili keyboard akiya mai dictionary du mji a jauba.";
|
||||
|
||||
/* Error opening a Keyman package - cannot parse contents */
|
||||
"kmp-error-no-metadata" = "Mji a pa package ku munagu mai - suku akwa mji kra sini mai.";
|
||||
|
||||
/* Error opening a Keyman package - package's contents are for desktop platforms only */
|
||||
"kmp-error-unsupported" = "Package ku naja nda mchaku ɓar udzu anu kwahir nasara ginyi mai.";
|
||||
|
||||
/* Error opening a Keyman package - package contains unexpected resource (keyboard or dictionary) type */
|
||||
"kmp-error-wrong-type" = "This package does not contain the expected resource type.";
|
||||
|
||||
/* Title for the Installed Languages menu */
|
||||
"menu-installed-languages-title" = "Fia Ŋya yer";
|
||||
|
||||
/* Section header for lexical models within a language-specific settings menu */
|
||||
"menu-langsettings-label-lexical-models" = "Dictionaries";
|
||||
|
||||
/* Section header for keyboards within a language-specific settings menu */
|
||||
"menu-langsettings-section-keyboards" = "Keyboards";
|
||||
|
||||
/* Section header for the settings toggles within a language-specific settings menu */
|
||||
"menu-langsettings-section-settings" = "Language Settings";
|
||||
|
||||
/* Title for the language-specific settings menus */
|
||||
"menu-langsettings-title" = "%@ Settings";
|
||||
|
||||
/* Label for the toggle that enables corrections that is displayed within a language-specific settings menu */
|
||||
"menu-langsettings-toggle-correct" = "Enable corrections";
|
||||
|
||||
/* Label for the toggle that enables predictions that is displayed within a language-specific settings menu */
|
||||
"menu-langsettings-toggle-predict" = "Enable predictions";
|
||||
|
||||
/* Help message for a prompt that appears for confirming a lexical model download: language (1): lexical model (dictionary) name (2) */
|
||||
"menu-lexical-model-install-message" = "Nagu ayu ga fia dictionary ya?";
|
||||
|
||||
/* Title for a prompt that appears for confirming a lexical model download: language (1): lexical model (dictionary) name (2) */
|
||||
"menu-lexical-model-install-title" = "%1$@: %2$@";
|
||||
|
||||
/* Text for an info alert indicating that no lexical models are available */
|
||||
"menu-lexical-model-none-message" = "Dictionaries aʻi mai";
|
||||
|
||||
/* Title for the lexical model menu, a submenu of the language-specific settings menus */
|
||||
"menu-lexical-model-title" = "%@ Dictionaries";
|
||||
|
||||
/* Title for the keyboard picker */
|
||||
"menu-picker-title" = "Keyboards";
|
||||
|
||||
/* Primary text for the Settings menu option to report keyboard crashes */
|
||||
"menu-settings-error-report" = "Ngeri Wula su kra kalkal";
|
||||
|
||||
/* Secondary text for the Settings menu option to report keyboard crashes */
|
||||
"menu-settings-error-report-description" = "May require \"full access\"";
|
||||
|
||||
/* Primary text for the Settings menu local-file package installation option */
|
||||
"menu-settings-install-from-file" = "Install File yer";
|
||||
|
||||
/* Secondary text for the Settings menu local-file package installation option */
|
||||
"menu-settings-install-from-file-description" = "Browse for .kmp files";
|
||||
|
||||
/* Primary text for the Settings menu option that displays the iOS system menu options for the app's keyboard */
|
||||
"menu-settings-system-keyboard-menu" = "System Keyboard Settings";
|
||||
|
||||
/* Label for the "Show Banner" toggle on the main settings screen */
|
||||
"menu-settings-show-banner" = "Ncha Banner";
|
||||
|
||||
/* Label for the "Get Started" automatic display toggle seen in the Settings menu */
|
||||
"menu-settings-startup-get-started" = "Ncha ʻBaditsiniʻ u startup";
|
||||
|
||||
/* Title for the main Settings menu */
|
||||
"menu-settings-title" = "Keyman Settings";
|
||||
|
||||
/* Secondary text showing current setting for spacebar caption - blank */
|
||||
"menu-settings-spacebar-hint-blank" = "Asuka ga ncha ruɓutsini ar spaceba mai";
|
||||
|
||||
/* Secondary text showing current setting for spacebar caption - keyboard */
|
||||
"menu-settings-spacebar-hint-keyboard" = "Ncha thlimur keyboard arkra spaceba";
|
||||
|
||||
/* Secondary text showing current setting for spacebar caption - language */
|
||||
"menu-settings-spacebar-hint-language" = "Ncha thlimur ŋya ar spaceba";
|
||||
|
||||
/* Secondary text showing current setting for spacebar caption - language + keyboard */
|
||||
"menu-settings-spacebar-hint-languageKeyboard" = "Ŋcha thlimu ŋya baɗa keyboard ar spaceba";
|
||||
|
||||
/* Label for the "Spacebar Caption" item on the main settings screen */
|
||||
"menu-settings-spacebar-text" = "Ruɓutsini ar spaceba";
|
||||
|
||||
/* Title for the "Spacebar Caption" settings screen */
|
||||
"menu-settings-spacebar-title" = "Ruɓutsini ar spaceba";
|
||||
|
||||
/* Text showing name of spacebar caption - blank */
|
||||
"menu-settings-spacebar-item-blank" = "Kra ga ruɓutsini";
|
||||
|
||||
/* Text showing name of spacebar caption - keyboard */
|
||||
"menu-settings-spacebar-item-keyboard" = "Keyboard";
|
||||
|
||||
/* Text showing name of spacebar caption - language */
|
||||
"menu-settings-spacebar-item-language" = "Ŋya";
|
||||
|
||||
/* Text showing name of spacebar caption - language + keyboard */
|
||||
"menu-settings-spacebar-item-languageKeyboard" = "Ŋya baɗa keyboard";
|
||||
|
||||
/* Short text for notification: download failure for keyboard */
|
||||
"notification-download-failure-keyboard" = "Keyboard download aŋgiliri";
|
||||
|
||||
/* Short text for notification: download failure for lexical model */
|
||||
"notification-download-failure-lexical-model" = "Dictionary download a ngiliri";
|
||||
|
||||
/* Short text for notification: download success for keyboard */
|
||||
"notification-download-success-keyboard" = "Keyboard successfully downloaded";
|
||||
|
||||
/* Short text for notification: download success for lexical model */
|
||||
"notification-download-success-lexical-model" = "Lexical model successfully downloaded";
|
||||
|
||||
/* Short text for notification: downloading a keyboard */
|
||||
"notification-downloading-keyboard" = "Downloading keyboard\U2026";
|
||||
|
||||
/* Short text for notification: downloading a lexical model */
|
||||
"notification-downloading-lexical-model" = "Downloading dictionary\U2026";
|
||||
|
||||
/* Short text for notification: an update is available */
|
||||
"notification-update-available" = "Update aʻi";
|
||||
|
||||
/* Short text for notification: currently updating */
|
||||
"notification-update-processing" = "Updating\U2026";
|
||||
|
||||
/* Text indicating success at installing new keyboards or dictionaries */
|
||||
"success-install" = "Installed successfully.";
|
||||
|
||||
/* A title to use in alerts indicating 'success' at whatever task the user requested */
|
||||
"success-title" = "Success";
|
||||
118
ios/engine/KMEI/KeymanEngine/mrt.lproj/Localizable.stringsdict
Normal file
118
ios/engine/KMEI/KeymanEngine/mrt.lproj/Localizable.stringsdict
Normal file
|
|
@ -0,0 +1,118 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>menu-langsettings-lexical-model-count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@count@</string>
|
||||
<key>count</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>u</string>
|
||||
<key>one</key>
|
||||
<string>%u dictionary installed</string>
|
||||
<key>other</key>
|
||||
<string>%u dictionaries installed</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>notification-update-failed</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@count@</string>
|
||||
<key>count</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>u</string>
|
||||
<key>one</key>
|
||||
<string>%u update a ngiliri</string>
|
||||
<key>other</key>
|
||||
<string>%u updates a ngiliri</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>notification-update-success</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@count@</string>
|
||||
<key>count</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>u</string>
|
||||
<key>one</key>
|
||||
<string>%u update a iu munagu</string>
|
||||
<key>other</key>
|
||||
<string>%u update successful</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>settings-keyboards-installed-count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@count@</string>
|
||||
<key>count</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>u</string>
|
||||
<key>one</key>
|
||||
<string>%u keyboard installed</string>
|
||||
<key>other</key>
|
||||
<string>%u keyboard installed</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>settings-languages-installed-count</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@count@</string>
|
||||
<key>count</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>u</string>
|
||||
<key>one</key>
|
||||
<string>%u Installed nur ŋya</string>
|
||||
<key>other</key>
|
||||
<string>%u language nur ŋya</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>package-default-found-keyboards</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@count@</string>
|
||||
<key>count</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>u</string>
|
||||
<key>one</key>
|
||||
<string>Thlia mji %u keyboard akwa package:</string>
|
||||
<key>other</key>
|
||||
<string>Athlia mji %u keyboard akwa package:</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>package-default-found-lexical-models</key>
|
||||
<dict>
|
||||
<key>NSStringLocalizedFormatKey</key>
|
||||
<string>%#@count@</string>
|
||||
<key>count</key>
|
||||
<dict>
|
||||
<key>NSStringFormatSpecTypeKey</key>
|
||||
<string>NSStringPluralRuleType</string>
|
||||
<key>NSStringFormatValueTypeKey</key>
|
||||
<string>u</string>
|
||||
<key>one</key>
|
||||
<string>Athlia mji %u dictionary akwa package:</string>
|
||||
<key>other</key>
|
||||
<string>Athlia mji %u dictionary akwa package:</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
@ -709,9 +709,9 @@
|
|||
981AFADC19EF44DE006706BF /* Embed App Extensions */,
|
||||
37BC8FF91DE83B40006AEBFF /* Headers */,
|
||||
C01AB5981F8343F7009B37D3 /* Embed Frameworks */,
|
||||
CE7E13D8240E285800252C00 /* ShellScript */,
|
||||
989E4DB91B1EB5C200A345FB /* Run Script */,
|
||||
CE002CB32408B372002026CE /* ShellScript */,
|
||||
CE7E13D8240E285800252C00 /* Run Script - set versions */,
|
||||
989E4DB91B1EB5C200A345FB /* Run Script - update plists and lint */,
|
||||
CE002CB32408B372002026CE /* Run Script - upload dsyms to sentry */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
|
|
@ -931,22 +931,22 @@
|
|||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXShellScriptBuildPhase section */
|
||||
989E4DB91B1EB5C200A345FB /* Run Script */ = {
|
||||
989E4DB91B1EB5C200A345FB /* Run Script - update plists and lint */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "Run Script";
|
||||
name = "Run Script - update plists and lint";
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellPath = "/usr/bin/env bash";
|
||||
shellScript = "verstr1=$(/usr/libexec/PlistBuddy -c \"Print CFBundleShortVersionString\" \"$SRCROOT/Keyman-Info.plist\")\nverstr2=$(/usr/libexec/PlistBuddy -c \"Print CFBundleVersion\" \"$SRCROOT/Keyman-Info.plist\")\n/usr/libexec/PlistBuddy \"$SRCROOT/Settings.bundle/Root.plist\" -c \"set PreferenceSpecifiers:0:DefaultValue $verstr1 (build $verstr2)\"\n\nif which swiftlint >/dev/null; then\n swiftlint --config ../../.swiftlint.yml\nelse\n echo \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
CE002CB32408B372002026CE /* ShellScript */ = {
|
||||
CE002CB32408B372002026CE /* Run Script - upload dsyms to sentry */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
|
|
@ -956,12 +956,13 @@
|
|||
inputPaths = (
|
||||
"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}",
|
||||
);
|
||||
name = "Run Script - upload dsyms to sentry";
|
||||
outputFileListPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/bash;
|
||||
shellPath = "/usr/bin/env bash";
|
||||
shellScript = ". \"$KEYMAN_ROOT/resources/build/xcode-utils.sh\"\n\nif [ ${UPLOAD_SENTRY:-false} = true ]; then\n # Calls resource script to perform the dSYM upload\n phaseSentryDsymUpload \"keyman-ios\"\nfi\n";
|
||||
};
|
||||
CE06AA671F161422006D91C3 /* Run Script */ = {
|
||||
|
|
@ -978,7 +979,7 @@
|
|||
shellPath = /bin/sh;
|
||||
shellScript = "if which swiftlint >/dev/null; then\n swiftlint --config ../../.swiftlint.yml\nelse\n echo \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi\n";
|
||||
};
|
||||
CE7E13D8240E285800252C00 /* ShellScript */ = {
|
||||
CE7E13D8240E285800252C00 /* Run Script - set versions */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
|
|
@ -987,12 +988,13 @@
|
|||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "Run Script - set versions";
|
||||
outputFileListPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellPath = "/usr/bin/env bash";
|
||||
shellScript = ". \"$KEYMAN_ROOT/resources/build/xcode-utils.sh\"\n\n# Calls resource script to update build products' versioning.\n# true: applies VERSION_WITH_TAG to custom KeymanVersionWithTag plist member used for in-app display\nphaseSetBundleVersions true\n\n# Also updates the version string for Settings\nsetSettingsBundleVersion\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
|
|
|
|||
81
ios/keyman/Keyman/Keyman/ckl.lproj/Localizable.strings
Normal file
81
ios/keyman/Keyman/Keyman/ckl.lproj/Localizable.strings
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
/* Title for the bookmarks menu within the embedded browser */
|
||||
"browser-bookmarks-add-title" = "Dzakti Bookmark";
|
||||
|
||||
/* Title for the bookmarks menu within the embedded browser */
|
||||
"browser-bookmarks-none" = "Bookmarkyere adiwɛ";
|
||||
|
||||
/* Title for the bookmarks menu within the embedded browser */
|
||||
"browser-bookmarks-title" = "Bookmarkyere";
|
||||
|
||||
/* Used to confirm a user's desire to install a package */
|
||||
"confirm-install" = "Vu akwa";
|
||||
|
||||
/* The label for the toggle to stop automatically showing the "Get Started" tutorial popup. */
|
||||
"disable-get-started" = "Ta gǝta tsanti kadwam";
|
||||
|
||||
/* Indicates an error opening a web page requested by a user */
|
||||
"error-opening-page" = "Gadiyata Mǝzi Mburnta Peji Wɛ";
|
||||
|
||||
/* Long-form used when installing a font in order to display a language properly. */
|
||||
"font-install-description" = "Tsukwar Vu Akwa akuya ka %@ su tsantidzi kal kal akwa shanga appyere nǝngɛ";
|
||||
|
||||
/* The name of the iOS Settings menu option for keyboards */
|
||||
"ios-settings-keyboards" = "Kibodyere";
|
||||
|
||||
/* The name of the iOS Settings menu option for giving the keyboard full access. (The menu entry
|
||||
underneath the app's name within the app-specific keyboard menu.) */
|
||||
"ios-settings-allow-full-access" = "Ada Gyar Ka Ndɛ Lukwa";
|
||||
|
||||
/* Short-form used when installing a font in order to display a language properly. */
|
||||
"language-for-font" = "%@ Font";
|
||||
|
||||
/* Used for 'add' options within menus */
|
||||
"menu-add" = "Dzakti";
|
||||
|
||||
/* Used to indicate a sequence of menu options that a user needs to copy. May be chained. Example: "Keyboards (1) > Enable Keyman (2)" */
|
||||
"menu-breadcrumbing" = "%1$@ > %2$@";
|
||||
|
||||
/* Used to exit a menu without choosing an option */
|
||||
"menu-cancel" = "Kansǝl";
|
||||
|
||||
/* Menu option that erases all previously-typed text. */
|
||||
"menu-clear-text" = "Kǝkǝrnta Text";
|
||||
|
||||
/* Menu option that displays a list designed to help users start using the app */
|
||||
"menu-get-started" = "Badicini";
|
||||
|
||||
/* Menu option that displays help for the app */
|
||||
"menu-help" = "Sǝr Zǝndi";
|
||||
|
||||
/* Menu option that displays the main screen's drop-down menu */
|
||||
"menu-more" = "Dzaktǝdzǝr su";
|
||||
|
||||
/* Menu option used to edit keyboard and dictionary settings */
|
||||
"menu-settings" = "Settings";
|
||||
|
||||
/* Menu option that displays the iOS Share menu */
|
||||
"menu-share" = "Ndǝɦǝnta";
|
||||
|
||||
/* Menu option that displays an embedded web browser. */
|
||||
"menu-show-browser" = "Brauza";
|
||||
|
||||
/* Menu option used to control in-app font size. */
|
||||
"menu-text-size" = "Ngakurǝr Text";
|
||||
|
||||
/* Used to describe the current font size */
|
||||
"text-size-label" = "Ngakurǝr Text: %i";
|
||||
|
||||
/* Text to indicate that a user should set a toggle within iOS Settings to 'active'. */
|
||||
"toggle-to-enable" = "ʻYati ka ʻya %@";
|
||||
|
||||
/* First option on the Get Started tutorial - Add a keyboard for your language */
|
||||
"tutorial-add-keyboard" = "Dzakǝkǝr kibod ata kǝra nyar ngɛ";
|
||||
|
||||
/* Third option on the Get Started tutorial - Displays app help. */
|
||||
"tutorial-show-help" = "Dzaktǝr sǝr zǝndi";
|
||||
|
||||
/* Second option on the Get Started tutorial - Set up Keyman as system-wide keyboard */
|
||||
"tutorial-system-keyboard" = "Set up Keyman as system-wide keyboard";
|
||||
|
||||
/* Used to display app version (as in \"Version: 1.0.2\" */
|
||||
"version-label" = "Jili: %@";
|
||||
81
ios/keyman/Keyman/Keyman/hia.lproj/Localizable.strings
Normal file
81
ios/keyman/Keyman/Keyman/hia.lproj/Localizable.strings
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
/* Title for the bookmarks menu within the embedded browser */
|
||||
"browser-bookmarks-add-title" = "Mbakat Bookmark";
|
||||
|
||||
/* Title for the bookmarks menu within the embedded browser */
|
||||
"browser-bookmarks-none" = "Haɗ bookmarks wo";
|
||||
|
||||
/* Title for the bookmarks menu within the embedded browser */
|
||||
"browser-bookmarks-title" = "Bookmarks";
|
||||
|
||||
/* Used to confirm a user's desire to install a package */
|
||||
"confirm-install" = "Fanta";
|
||||
|
||||
/* The label for the toggle to stop automatically showing the "Get Started" tutorial popup. */
|
||||
"disable-get-started" = "Eh virataka maranta";
|
||||
|
||||
/* Indicates an error opening a web page requested by a user */
|
||||
"error-opening-page" = "Ha da gunat Page wo";
|
||||
|
||||
/* Long-form used when installing a font in order to display a language properly. */
|
||||
"font-install-description" = "Tapa fant k magat %@ plunta daideya minahagha";
|
||||
|
||||
/* The name of the iOS Settings menu option for keyboards */
|
||||
"ios-settings-keyboards" = "Keyboards";
|
||||
|
||||
/* The name of the iOS Settings menu option for giving the keyboard full access. (The menu entry
|
||||
underneath the app's name within the app-specific keyboard menu.) */
|
||||
"ios-settings-allow-full-access" = "Javat wativ sosaya";
|
||||
|
||||
/* Short-form used when installing a font in order to display a language properly. */
|
||||
"language-for-font" = "%@ Font";
|
||||
|
||||
/* Used for 'add' options within menus */
|
||||
"menu-add" = "Mbakata";
|
||||
|
||||
/* Used to indicate a sequence of menu options that a user needs to copy. May be chained. Example: "Keyboards (1) > Enable Keyman (2)" */
|
||||
"menu-breadcrumbing" = "%1$@ > %2$@";
|
||||
|
||||
/* Used to exit a menu without choosing an option */
|
||||
"menu-cancel" = "Jata";
|
||||
|
||||
/* Menu option that erases all previously-typed text. */
|
||||
"menu-clear-text" = "Clear Text";
|
||||
|
||||
/* Menu option that displays a list designed to help users start using the app */
|
||||
"menu-get-started" = "Yagha a fuɗa";
|
||||
|
||||
/* Menu option that displays help for the app */
|
||||
"menu-help" = "Info";
|
||||
|
||||
/* Menu option that displays the main screen's drop-down menu */
|
||||
"menu-more" = "Mbakata";
|
||||
|
||||
/* Menu option used to edit keyboard and dictionary settings */
|
||||
"menu-settings" = "Siryata";
|
||||
|
||||
/* Menu option that displays the iOS Share menu */
|
||||
"menu-share" = "Tiganta";
|
||||
|
||||
/* Menu option that displays an embedded web browser. */
|
||||
"menu-show-browser" = "Browser";
|
||||
|
||||
/* Menu option used to control in-app font size. */
|
||||
"menu-text-size" = "Text Size";
|
||||
|
||||
/* Used to describe the current font size */
|
||||
"text-size-label" = "Text size: %i";
|
||||
|
||||
/* Text to indicate that a user should set a toggle within iOS Settings to 'active'. */
|
||||
"toggle-to-enable" = "Javat wative %@";
|
||||
|
||||
/* First option on the Get Started tutorial - Add a keyboard for your language */
|
||||
"tutorial-add-keyboard" = "Ambaka keyboard anga gwaɗa luwagha";
|
||||
|
||||
/* Third option on the Get Started tutorial - Displays app help. */
|
||||
"tutorial-show-help" = "Mbakat info";
|
||||
|
||||
/* Second option on the Get Started tutorial - Set up Keyman as system-wide keyboard */
|
||||
"tutorial-system-keyboard" = "Set up Keyman as system-wide keyboard";
|
||||
|
||||
/* Used to display app version (as in \"Version: 1.0.2\" */
|
||||
"version-label" = "Sangabta: %@";
|
||||
81
ios/keyman/Keyman/Keyman/mrt.lproj/Localizable.strings
Normal file
81
ios/keyman/Keyman/Keyman/mrt.lproj/Localizable.strings
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
/* Title for the bookmarks menu within the embedded browser */
|
||||
"browser-bookmarks-add-title" = "Mchaku Bookmark";
|
||||
|
||||
/* Title for the bookmarks menu within the embedded browser */
|
||||
"browser-bookmarks-none" = "Bookmark aʻi mai";
|
||||
|
||||
/* Title for the bookmarks menu within the embedded browser */
|
||||
"browser-bookmarks-title" = "Bookmarks";
|
||||
|
||||
/* Used to confirm a user's desire to install a package */
|
||||
"confirm-install" = "Install";
|
||||
|
||||
/* The label for the toggle to stop automatically showing the "Get Started" tutorial popup. */
|
||||
"disable-get-started" = "Asuka ga bura ncha mai";
|
||||
|
||||
/* Indicates an error opening a web page requested by a user */
|
||||
"error-opening-page" = "Acittu pahu pagi mai";
|
||||
|
||||
/* Long-form used when installing a font in order to display a language properly. */
|
||||
"font-install-description" = "Tsukwa Install kuga %@ nchaba kalkal akwa ca apps";
|
||||
|
||||
/* The name of the iOS Settings menu option for keyboards */
|
||||
"ios-settings-keyboards" = "Keyboards";
|
||||
|
||||
/* The name of the iOS Settings menu option for giving the keyboard full access. (The menu entry
|
||||
underneath the app's name within the app-specific keyboard menu.) */
|
||||
"ios-settings-allow-full-access" = "Allow Full Access";
|
||||
|
||||
/* Short-form used when installing a font in order to display a language properly. */
|
||||
"language-for-font" = "%@ Font";
|
||||
|
||||
/* Used for 'add' options within menus */
|
||||
"menu-add" = "Mchaku";
|
||||
|
||||
/* Used to indicate a sequence of menu options that a user needs to copy. May be chained. Example: "Keyboards (1) > Enable Keyman (2)" */
|
||||
"menu-breadcrumbing" = "%1$@ > %2$@";
|
||||
|
||||
/* Used to exit a menu without choosing an option */
|
||||
"menu-cancel" = "Kukulna";
|
||||
|
||||
/* Menu option that erases all previously-typed text. */
|
||||
"menu-clear-text" = "Kukulna ndir";
|
||||
|
||||
/* Menu option that displays a list designed to help users start using the app */
|
||||
"menu-get-started" = "Baditsini";
|
||||
|
||||
/* Menu option that displays help for the app */
|
||||
"menu-help" = "Labar";
|
||||
|
||||
/* Menu option that displays the main screen's drop-down menu */
|
||||
"menu-more" = "Odi";
|
||||
|
||||
/* Menu option used to edit keyboard and dictionary settings */
|
||||
"menu-settings" = "Settings";
|
||||
|
||||
/* Menu option that displays the iOS Share menu */
|
||||
"menu-share" = "Ntiku";
|
||||
|
||||
/* Menu option that displays an embedded web browser. */
|
||||
"menu-show-browser" = "Browser";
|
||||
|
||||
/* Menu option used to control in-app font size. */
|
||||
"menu-text-size" = "Nga nur ruɓutsini";
|
||||
|
||||
/* Used to describe the current font size */
|
||||
"text-size-label" = "Nga nur ruɓutsini: %i";
|
||||
|
||||
/* Text to indicate that a user should set a toggle within iOS Settings to 'active'. */
|
||||
"toggle-to-enable" = "Enable %@";
|
||||
|
||||
/* First option on the Get Started tutorial - Add a keyboard for your language */
|
||||
"tutorial-add-keyboard" = "Mchaku keyboard anu ŋya ginyi";
|
||||
|
||||
/* Third option on the Get Started tutorial - Displays app help. */
|
||||
"tutorial-show-help" = "Labar odi";
|
||||
|
||||
/* Second option on the Get Started tutorial - Set up Keyman as system-wide keyboard */
|
||||
"tutorial-system-keyboard" = "Set up Keyman as system-wide keyboard";
|
||||
|
||||
/* Used to display app version (as in \"Version: 1.0.2\" */
|
||||
"version-label" = "Version: %@";
|
||||
|
|
@ -20,5 +20,5 @@
|
|||
"ts-node",
|
||||
"typescript"
|
||||
],
|
||||
"version": "15.0.177"
|
||||
"version": "15.0.184"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -97,7 +97,7 @@ Nightly and release builds upload the most recent new master build to <https://d
|
|||
|
||||
## Building packages
|
||||
|
||||
See [Linux packaging doc](https://github.com/keymanapp/keyman/blob/master/docs/linux-packaging.md)
|
||||
See [Linux packaging doc](../docs/linux-packaging.md)
|
||||
for details on building Linux packages for Keyman.
|
||||
|
||||
## Testing
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue