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:
- The new language code is saved immediately via
@AppStorage(persisted across launches). - A
.yukkaiLanguageChangednotification is posted after a short delay — just enough time for the UI to settle. - Every screen that displays translated text observes this notification and forces a full re-render.
- The root view accomplishes this by changing a
UUIDtoken on each notification. SwiftUI treats this as "the entire subtree's identity changed" and redraws everything from scratch.
Fallback Chain
If a particular string hasn't been translated into your chosen language yet, Yukkai follows a deterministic fallback chain:
- Your chosen language — the ideal case.
- English — the default base language with the most complete coverage.
- French — the secondary reference language.
- The raw key itself — e.g.,
settings.cat.aiappears as literal text.
How to use it
Changing the Interface Language
- Open Settings from the Yukkai menu or toolbar.
- Navigate to General.
- Locate the Language picker.
- Select your desired language from the dropdown.
- The interface updates instantly — no restart required.
Using System (Auto) Mode
If you select System, Yukkai reads your macOS locale configuration:
- It extracts the language prefix (e.g.,
fr-FR→fr). - It matches the prefix against supported languages.
- If a match is found, that language is used.
- If nothing matches, it defaults to English.
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.
- 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.
Examples
Scenario 1: Full French Experience
You want everything in French — both the UI and the AI.
- Set Interface Language →
French - Set AI Response Language →
French(or simply tell Yukkai "Réponds en français")
Scenario 2: English UI, Multilingual Chat
You're comfortable with an English interface but want to chat in multiple languages throughout the day.
- Set Interface Language →
English(orSystem) - Don't lock the AI to any specific language — just speak naturally
Scenario 3: System Auto-Detect
You travel between countries and change your macOS locale frequently. You want Yukkai to follow along.
- Set Interface Language →
System
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.