Skip to content

Translation

Translate text between African languages and English using translate() or atranslate().

Basic usage

from khaya import KhayaClient

with KhayaClient(api_key) as khaya:
    result = khaya.translate("Hello, how are you?", "en-tw")
    print(result.text)  # "Ɛte sɛn?"

The second argument is the language pair: "<source>-<target>".

Supported language pairs

Pair Direction
en-tw English → Twi
tw-en Twi → English
en-ee English → Ewe
ee-en Ewe → English
en-gaa English → Ga
gaa-en Ga → English
en-fat English → Fante
fat-en Fante → English
en-yo English → Yoruba
yo-en Yoruba → English
en-dag English → Dagbani
dag-en Dagbani → English
en-ki English → Kikuyu
ki-en Kikuyu → English
en-gur English → Gurune
gur-en Gurune → English
en-luo English → Luo
luo-en Luo → English
en-mer English → Kimeru
mer-en Kimeru → English
en-kus English → Kusaal
kus-en Kusaal → English

Note

Passing an unknown language pair raises a UserWarning but still sends the request. This allows you to use new pairs the API supports before the SDK is updated.

Translating multiple strings

texts = ["Good morning", "How are you?", "Thank you"]

with KhayaClient(api_key) as khaya:
    results = [khaya.translate(t, "en-tw").text for t in texts]

Checking the response

translate() returns a TranslationResult with three attributes:

Attribute Type Description
text str The translated string
source_language str Source language code (e.g. "en")
target_language str Target language code (e.g. "tw")
print(result.text)            # "Mema wo akye"
print(result.source_language) # "en"
print(result.target_language) # "tw"

Error handling

from khaya.exceptions import TranslationError, AuthenticationError, APIError

try:
    result = khaya.translate("Hello", "en-tw")
except TranslationError as e:
    print(f"Bad input: {e.message}")
except AuthenticationError:
    print("Check your API key.")
except APIError as e:
    print(f"API error {e.status_code}: {e.message}")

See Error Handling for the full exception reference.