Overview
Flexible localization support is an important part of a software keyboard, and should be able to localize the entire keyboard and change its behavior based on the locale.
In KeyboardKit, a KeyboardLocale
defines keyboard-specific languages, where each has localized strings, assets, etc. KeyboardKit also extends the native Locale with more capabilities.
KeyboardKit Pro can unlock localized keyboards and services for all locales in your license.
Supported locales
KeyboardKit supports 63 locales:
๐ฆ๐ฑ ๐ฆ๐ช ๐ฆ๐ฒ ๐ง๐พ ๐ง๐ฌ ๐ฆ๐ฉ ๐ณ๏ธ ๐ญ๐ท ๐จ๐ฟ ๐ฉ๐ฐ ๐ณ๐ฑ ๐ง๐ช ๐บ๐ธ ๐ฌ๐ง ๐บ๐ธ ๐ช๐ช ๐ซ๐ด ๐ต๐ญ ๐ซ๐ฎ ๐ซ๐ท ๐ง๐ช ๐จ๐ญ ๐ฌ๐ช ๐ฉ๐ช ๐ฆ๐น ๐จ๐ญ ๐ฌ๐ท ๐บ๐ธ ๐ฎ๐ฑ ๐ญ๐บ ๐ฎ๐ธ ๐ณ๏ธ ๐ฎ๐ฉ ๐ฎ๐ช ๐ฎ๐น ๐ฐ๐ฟ ๐น๐ฏ ๐น๐ฏ ๐น๐ฏ ๐ฑ๐ป ๐ฑ๐น ๐ฒ๐ฐ ๐ฒ๐พ ๐ฒ๐น ๐ฒ๐ณ ๐ณ๐ด ๐ณ๏ธ ๐ฎ๐ท ๐ต๐ฑ ๐ต๐น ๐ง๐ท ๐ท๐ด ๐ท๐บ ๐ท๐ธ ๐ท๐ธ ๐ธ๐ฐ ๐ธ๐ฎ ๐ช๐ธ ๐ฐ๐ช ๐ธ๐ช ๐น๐ท ๐บ๐ฆ ๐บ๐ฟ
Each keyboard locale refers to a native Locale
and has additional keyboard-specific information, as well as localized assets and strings that can be translated with the KKL10n
enum.
Locale Functionality
The KeyboardLocale
enum defines all supported locales, like .english
, .swedish
, and .persian
.
KeyboardKit extends the native Locale
type with more capabilities, like providing a .lineDirection
, .isLeftToRight
, .isTopToBottom
, etc. You can also get the .flag
, sort locales in more ways, etc.
You can get the current keyboard locale and all available locales with KeyboardContext
.locale
and .locales
. These are raw Locale
s, since a keyboard extension is not limited to the KeyboardLocale
.
How to change keyboard locale
You can change the keyboard locale for a KeyboardContext
by setting locale
to a new locale, or use the convenience functions that support KeyboardLocale
.
If the context locales
has multiple values, you can switch locale using selectNextLocale()
or using a LocaleContextMenu
that lets the user select a locale.
Setting the locale updates the controllerโs primaryLanguage
, which controls things like spellchecking and text direction. It will also set the display name in the system keyboard switcher.
LTR and RTL locales
KeyboardKit supports LTR (Left-To-Right) and RTL locales. You donโt need to setup your keyboard to support RTL. Just change the keyboard locale and KeyboardKit automatically adjusts the keyboard.
๐ Pro features
KeyboardKit Pro unlocks a localized InputSet
, KeyboardLayoutProvider
and CalloutActionProvider
for every KeyboardLocale
that the license unlocks.
This means that KeyboardKit Pro can create fully localized SystemKeyboard
for all supported locales.
Documentation
The information on this page has been shortened to be easier to overview. For more information about this feature, code samples, etc. please see the online documentation.
Read more
Essentials
KeyboardKit provides essential features, utilities & views.
Actions
KeyboardKit makes it easy to trigger keyboard-related actions
Autocomplete
KeyboardKit can perform autocomplete.
Callouts
KeyboardKit can show input & secondary action callouts.
Colors
KeyboardKit defines keyboard-specific colors.
Device Utilities
KeyboardKit has device-specific utilities.
Emojis
KeyboardKit defines emojis, categories, skin tones, etc.
Feedback
KeyboardKit can trigger audio & haptic feedback.
Gestures
KeyboardKit has a customizable keyboard gesture engine.
Images
KeyboardKit defines keyboard-specific images.
Layout
KeyboardKit has customizable input sets & keyboard layouts.
Localization
KeyboardKit supports 60+ locales and languages.
Navigation
KeyboardKit lets you open urls and apps from the keyboard.
Previews
KeyboardKit has rich SwiftUI preview support.
Proxy Utilities
KeyboardKit makes your text document proxy do a LOT more.
Settings
KeyboardKit has tools for in-app settings & System Settings.
Status
KeyboardKit detects if a keyboard is enabled, has full access, etc.
Styling
KeyboardKit lets you style your keyboards to great extent.
Text Routing
KeyboardKit kan route text to other places.
Pro Features
Essentials
KeyboardKit Pro unlocks system keyboard and theme previews.
Actions
KeyboardKit Pro auto-registers the most recently used emojis.
AI Support
KeyboardKit Pro unlocks features that are needed for AI.
App
KeyboardKit Pro unlocks app-specific screens & views.
Autocomplete
KeyboardKit Pro unlocks on-device & remote autocomplete.
Callouts
KeyboardKit Pro unlocks localized callouts for all locales.
Dictation
KeyboardKit Pro can perform dictation from the keyboard.
Emojis
KeyboardKit Pro unlocks an emoji keyboard with skintone support.
External Keyboards
KeyboardKit Pro can detect if an external keyboard is connected.
Feedback
KeyboardKit Pro unlocks tools for toogling feedback on & off.
Layout
KeyboardKit Pro unlocks localized layouts for all locales.
Localization
KeyboardKit Pro unlocks support for 60+ locales.
Previews
KeyboardKit Pro unlocks system keyboard and theme previews.
Proxy Utilities
KeyboardKit Pro makes the proxy able to read the full document.
Text Input
KeyboardKit Pro unlocks tools to let you type within the keyboard
Themes
KeyboardKit Pro unlocks a theme engine & many standard themes.