Interface Languages

Yukkai speaks your language — switch the entire interface between supported languages.

Overview

Yukkai's interface language system lets you switch the entire app UI between multiple supported languages — instantly, without restarting the app. Every button, label, menu, and settings page re-renders in your chosen language the moment you select it.

This is entirely separate from the language the AI responds in. You can have the interface in French while chatting with the AI in English, or any other combination.

Supported Languages

Yukkai currently supports the following interface languages:

Language Code
English en
French fr
Simplified Chinese zh
Spanish es
German de
Portuguese pt
System (auto) system

The System option automatically detects your operating system's locale and matches it to the closest supported language. If no match is found, it falls back to English.


How it works

Custom Localization Engine (L10n)

Yukkai uses a custom CSV-based localization engine called L10n rather than Apple's native .xcstrings runtime system. This was a deliberate design choice: Apple's native system cannot switch languages live without restarting the app, and Yukkai needs instant, on-the-fly language switching.

All translated strings live in a single translations.csv file. Each row maps a translation key (like settings.cat.ai) to its translated value in every supported language. This flat, single-file approach makes it easy to audit, update, and extend translations.

Live Switching Mechanism

When you change the interface language:

  1. The new language code is saved immediately via @AppStorage (persisted across launches).
  2. A .yukkaiLanguageChanged notification is posted after a short delay — just enough time for the UI to settle.
  3. Every screen that displays translated text observes this notification and forces a full re-render.
  4. The root view accomplishes this by changing a UUID token on each notification. SwiftUI treats this as "the entire subtree's identity changed" and redraws everything from scratch.
The result: every visible string updates in place, seamlessly, with no flicker and no app restart.

Fallback Chain

If a particular string hasn't been translated into your chosen language yet, Yukkai follows a deterministic fallback chain:

  1. Your chosen language — the ideal case.
  2. English — the default base language with the most complete coverage.
  3. French — the secondary reference language.
  4. The raw key itself — e.g., settings.cat.ai appears as literal text.
This means a missing translation never crashes the app or shows a blank space. Instead, you see the translation key, which makes it easy to spot and fix gaps.


How to use it

Changing the Interface Language

  1. Open Settings from the Yukkai menu or toolbar.
  2. Navigate to General.
  3. Locate the Language picker.
  4. Select your desired language from the dropdown.
  5. The interface updates instantly — no restart required.
Your choice is saved automatically and persists across app launches.

Using System (Auto) Mode

If you select System, Yukkai reads your macOS locale configuration:

  • It extracts the language prefix (e.g., fr-FRfr).
  • It matches the prefix against supported languages.
  • If a match is found, that language is used.
  • If nothing matches, it defaults to English.
This is ideal if you prefer the app to follow your operating system language settings rather than maintaining a separate preference.

Interface Language vs. AI Response Language

It's important to understand the distinction:

  • Interface language controls what language the buttons, menus, and settings appear in.
  • AI response language controls what language Yukkai writes and speaks when conversing with you.
These are independent settings. For example:

  • You can set the interface to French and have the AI respond in English.
  • You can set the interface to English and chat with the AI in Spanish.
This flexibility lets multilingual users work in whatever combination feels most natural.


Examples

Scenario 1: Full French Experience

You want everything in French — both the UI and the AI.

  1. Set Interface LanguageFrench
  2. Set AI Response LanguageFrench (or simply tell Yukkai "Réponds en français")
The entire app — menus, settings, labels, buttons — now displays in French, and the AI converses with you in French.

Scenario 2: English UI, Multilingual Chat

You're comfortable with an English interface but want to chat in multiple languages throughout the day.

  1. Set Interface LanguageEnglish (or System)
  2. Don't lock the AI to any specific language — just speak naturally
The UI stays in English, while the AI adapts to whatever language you type in.

Scenario 3: System Auto-Detect

You travel between countries and change your macOS locale frequently. You want Yukkai to follow along.

  1. Set Interface LanguageSystem
Now, whenever you change your macOS system language, Yukkai automatically matches it on next launch — no manual switching needed.


Tips

Check for missing translations

If you ever see a raw key like settings.cat.ai displayed as literal text in the interface, that string hasn't been translated into your current language yet. It will fall back to English or French automatically. These are easy to spot and fix — just report them and they'll be added to the translation file.

The System option is great for multilingual setups

If your macOS is configured with multiple preferred languages, the System option will pick the first one Yukkai supports. This is more convenient than manually switching every time you change your OS language.

Language switching is instant and safe

You can switch languages as often as you like. There's no loading screen, no restart, and no risk of losing your place in the app. Every screen re-renders in place with the new language applied.

Translations are stored in a single file

All interface translations live in one translations.csv file. This means the entire localization surface area is auditable in one place. When new features are added, new rows are appended to this file and translated into all supported languages.

Five fully-translated languages

As of the latest update, Yukkai's interface has been fully translated into five languages with over 1,900 translated entries. The translation sprint covered 45 files across all major UI surfaces — AI pages, General settings, Credits, Vault, and more. Every visible string in the app has been localized.

Keep interface and AI language separate when it makes sense

Many multilingual users prefer an English interface (since technical terms are familiar) while chatting with the AI in their native language. Don't feel obligated to match both settings — Yukkai is designed to handle any combination gracefully.