Localization

KeyboardKit supports 60+ locales and languages.

๐ŸŒ

Overview

Flexible localization support is an important part of a software keyboard. A keyboard should be able to easily change the locale without major code changes.

KeyboardKit has a KeyboardLocale enum that defines all supported locales (languages), where each has localized strings and assets. KeyboardKit also extends the native Locale with more capabilities.

KeyboardKit Pro unlocks localized input sets, layouts, callout actions & services for all locales.

Core Features

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.

You can use the KeyboardContext to get and set the current locale and all available locales. If it has multiple locales, you can use selectNextLocale() or the .nextLocale action to quickly change 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.

KeyboardKit supports LTR (Left-To-Right) and RTL locales. You donโ€™t need to do anything to support RTL. Just change the 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, without any additional code needed. Just change the locale and the system keyboard adapts.

Documentation

The information on this page is 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

๐Ÿค–

AI Support

KeyboardKit has features that are needed for AI.

๐Ÿ“ฑ

App

KeyboardKit has app-specific screens & views.

๐Ÿ’ก

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.

๐ŸŽค

Dictation

KeyboardKit can perform dictation from the keyboard.

๐Ÿ˜€

Emojis

KeyboardKit defines emojis, categories, skin tones, etc.

โŒจ๏ธ

External Keyboards

KeyboardKit Pro can detect if an external keyboard is being used.

๐Ÿ”‰

Feedback

KeyboardKit can trigger audio & haptic feedback.

๐Ÿ‘†

Gestures

KeyboardKit has a customizable keyboard gesture engine.

๐Ÿ 

Host

KeyboardKit can identify the host application.

๐Ÿ–ผ๏ธ

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 extension keyboard 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 Input

KeyboardKit can input text inside the keyboard extension itself.

๐Ÿญ

Themes

KeyboardKit can use themes to style keyboards in flexible ways.