Language Selection

Built-in language picker keyboards with 65+ locale codes, flag emojis, and custom locale support.

Basic Usage

from pykeyboard import InlineKeyboard

kb = InlineKeyboard(row_width=2)
kb.languages(
    locales=["en", "es", "fr", "de", "ja", "ko"],
    callback_pattern="lang_{}",  # {} β†’ locale code
)

# Produces:
# [πŸ‡¬πŸ‡§ English] [πŸ‡ͺπŸ‡Έ EspaΓ±ol]
# [πŸ‡«πŸ‡· FranΓ§ais] [πŸ‡©πŸ‡ͺ Deutsch]
# [πŸ‡―πŸ‡΅ ζ—₯本θͺž]   [πŸ‡°πŸ‡· ν•œκ΅­μ–΄]

await message.reply("Choose language:", reply_markup=kb)

Custom Locales

Add languages not in the built-in list using custom_locales:

kb = InlineKeyboard(row_width=2)
kb.custom_locales = {
    "pirate": "πŸ΄β€β˜ οΈ Pirate",
    "klingon": "πŸ–– Klingon",
}
kb.languages(
    locales=["en", "pirate", "klingon"],
    callback_pattern="lang_{}",
)

Error Handling

A LocaleError is raised if you pass an unrecognized locale code that isn't in the built-in list or your custom_locales.