OneTwoApps200

BetterLocale Code

KI-gestützte Lokalisierung für Xcode-Projekte

en

Lokalisierung für Xcode, ohne Dateichaos.

BetterLocale Code ist dein macOS-Tool, um Xcode-Lokalisierung endlich sauber in den Griff zu bekommen. Du importierst .xcstrings, .strings und komplette .lproj-Strukturen, bearbeitest alles zentral und schreibst es wieder korrekt ins Projekt zurück. Der Kern dabei ist KI: Die App ist darauf ausgelegt, Übersetzen und Pflege über KI-Funktionen zu erledigen, statt dich mit Copy-Paste, Ordnerchaos und Xcode-UI auszubremsen. Du siehst sofort, was fehlt, was leer ist und wo Sprachen auseinanderlaufen und kannst gezielt nachziehen, bevor es im UI, in der QA oder kurz vorm Release knallt.

Verfügbar im Apple App Store

Ein Klick und du siehst, wie KI deine Xcode-Lokalisierung deutlich schneller macht.

Warum BetterLocale Code?

Weil Lokalisierung in echten Projekten nicht “einmal erledigt” ist: Texte ändern sich ständig, neue Keys kommen dazu, alte bleiben liegen, und am Ende weiß niemand mehr, ob wirklich alles passt. BetterLocale Code macht daraus einen kontrollierbaren Schritt im Workflow, mit KI als Motor: Du übersetzt konsequent, schnell und mit Kontext, prüfst die Konsistenz und hältst deine Sprachdaten stabil, auch bei Migrationen zwischen Strings Catalogs und .strings. Wenn du mehrere Sprachen ernsthaft pflegst, ist das kein Nice-to-have, sondern spart dir Release-Stress, Fehlersuche und unnötige Runden.

Ein Editor für alles

.xcstrings, .strings und .lproj an einem Ort, ohne Dateihopping.

Fehlende Übersetzungen auf einen Blick

Leere Werte, fehlende Sprachen und Inkonsistenzen werden sofort sichtbar.

Konvertierung ohne Frust

XCStrings ↔ .strings zuverlässig konvertieren, ideal für Migrationen und gemischte Projekte.

Schnell neue Keys anlegen

Neue Keys werden automatisch für alle Sprachen angelegt, zunächst leer, damit nichts untergeht.

Änderungen kontrolliert nachziehen

Wenn sich die Standardsprache ändert, kannst du Übersetzungen gezielt löschen oder neu erzeugen.

KI-Übersetzung mit Kontext

Ton, Zielgruppe und Zusatzinfos mitgeben, damit Übersetzungen konsistent bleiben.

Zwei Wege: manuell oder direkt per API

Entweder Vorlage für ChatGPT & Co. oder Übersetzung direkt in der App über Anbieter-APIs.

Nur das übersetzen, was nötig ist

Alles auf einmal oder nur leere, neue oder geänderte Einträge.

Daten bleiben lokal

Projekte und Texte bleiben auf deinem Mac. API-Keys werden im macOS-Schlüsselbund gespeichert.

Passt in deinen Release-Workflow

Lokalisierung prüfen, vervollständigen, exportieren und mit gutem Gefühl in App Store Connect gehen.

BetterLocaleAppsIcon256x256

Kennst du schon die App „BetterLocale Store“?

Better Locale Apps ist ein weiteres Tool für deine Entwicklung. Es unterstützt dich bei der Veröffentlichung über App Store Connect und hilft dir, die Texte deiner App in mehreren Sprachen sauber und schnell zu pflegen.

Die ersten Schritte

Manuelle Lokalisierung in Xcode: Setup-Checkliste

Wenn du deine Lokalisierung bewusst selbst pflegen willst (Keys, Sprachen, Texte), dann richte dein Projekt so ein, dass Xcode dir nicht „dazwischen“ verwaltet.

1) Sprachen im Projekt aktivieren (wichtig)

Gehe in Xcode zu Project → Info → Localizations und füge dort alle Sprachen hinzu, die deine App unterstützen soll (z. B. English, German, French).
Das ist die zentrale Stelle, an der Xcode weiß, welche Sprachvarianten es überhaupt gibt.

2) String Catalog auf „Manually managed“ stellen

Öffne Localizable.xcstrings, markiere alle Einträge (Cmd+A) und stelle im rechten Inspector Managed auf Manually.
So bleibt die Kontrolle bei dir: Xcode versucht dann nicht mehr, Keys automatisch zu pflegen, als „stale“ zu markieren oder aufzuräumen.

3) Eine klare Regel: Im Code stehen nur Keys, keine UI-Text

Wenn du „per Hand“ arbeiten willst, lohnt sich diese Grundregel:
• Im Swift-Code nur stabile Keys verwenden (z. B. L10n.loginTitle)
• Die echten Texte stehen nur in .xcstrings / .strings

So vermeidest du, dass irgendwo echte UI-Texte im Code herumliegen und später unbemerkt doppelt oder inkonsistent werden.

4) Datei muss im richtigen Target sein

Wähle Localizable.xcstrings im Project Navigator aus und prüfe rechts im File Inspector:
• Target Membership ist aktiv (dein App-Target ist angehakt)

Wenn das fehlt, sieht die App zur Laufzeit die Strings nicht.

5) Base Internationalization nur dann, wenn du Storyboards/XIBs nutzt

• SwiftUI / rein programmatic UI: Base Internationalization ist meist nicht nötig.
• Storyboards/XIBs: Base Internationalization aktivieren, dann UI-Texte sauber über Lokalisierungsdateien pflegen.

6) Ressourcen bewusst lokalisieren (falls nötig)

Für Dinge wie Bilder, Plists oder Storyboards gilt:
• Datei auswählen → rechts „Localization“ → Localize… → Sprachen auswählen
Mach das nur, wenn du wirklich sprachabhängige Ressourcen brauchst.

7) Sprachen testen, bevor du release’st

Teste gezielt in Xcode:
• Run/Scheme-Optionen: Application Language und Region umstellen
So siehst du sofort, ob Keys fehlen, falsche Texte geladen werden oder irgendwo noch harte Strings im UI hängen.

Wenn du mit einem leeren Projekt startest, legst du zuerst die Sprachbasis fest: Du wählst aus, welche Sprachen deine App unterstützen soll. Diese Auswahl ist nicht endgültig. Du kannst sie jederzeit anpassen und Sprachen später hinzufügen oder entfernen, je nachdem, wie sich dein Projekt entwickelt.

Danach definierst du die Standardsprache. Das ist deine Ausgangssprache, in der du Inhalte pflegst und von der aus Übersetzungen abgeleitet werden. BetterLocale Code verwendet diese Standardsprache als Referenz, um neue Einträge sauber anzulegen, fehlende Werte zuverlässig zu erkennen und Übersetzungen gezielt zu erzeugen, statt pauschal alles zu überschreiben. Das ist besonders bei laufender Weiterentwicklung hilfreich, weil du damit eine eindeutige Quelle für Formulierungen und Inhalt behältst.

Wenn du nicht bei Null anfängst, kannst du bestehende Sprachdateien importieren. Dabei lassen sich .strings, .xcstrings sowie komplette .lproj-Strukturen einlesen. Vorhandene Keys und Werte werden übernommen, sodass du nicht erneut mit einer leeren Liste startest. Anschließend kannst du Sprachen ergänzen, fehlende Übersetzungen nachziehen und Inkonsistenzen bereinigen, ohne Dateien mühsam in Xcode oder im Texteditor zusammensuchen zu müssen.

So kommst du schnell zu einem sauberen, konsistenten Sprach-Setup, egal ob du neu startest oder ein bestehendes Projekt aufräumen und weiterführen willst.

Als nächstes legst du deine Keys an und verwaltest sie zentral im Projekt. Bestehende Keys kannst du jederzeit bearbeiten, umbenennen oder auch löschen, je nachdem, was gerade ansteht.

Wenn du einen neuen Key erstellst, legt BetterLocale Code ihn automatisch in allen aktuell aktivierten Sprachen an. Die Werte sind zunächst leer, damit du nur dort Übersetzungen einträgst, wo du sie wirklich brauchst. Dadurch bleibt die Struktur über alle Sprachen hinweg von Anfang an sauber und identisch und du läufst später nicht in das Problem, dass ein Key in einer Sprache fehlt.

Du kannst sowohl den Key-Namen als auch die Werte pro Sprache ändern. Die Anpassungen werden direkt in die Projektstruktur übernommen, ohne dass du mehrere Dateien oder Ordner manuell pflegen musst. Wenn du einen Key löschst, wird er konsequent in allen Sprachen entfernt, damit keine veralteten Einträge im Projekt zurückbleiben.

Sobald deine Keys und Texte vollständig in BetterLocale Code stehen, kannst du Übersetzungen direkt über einen KI-Dienst erstellen lassen. Aktuell unterstützt die App OpenAI, DeepL, Gemini, Claude und Perplexity. Du kannst wahlweise alles übersetzen oder nur fehlende bzw. geänderte Einträge, damit du weder Zeit noch Kosten für bereits fertige Texte investierst.

Damit das klappt, brauchst du beim jeweiligen Anbieter ein Konto und einen API-Token. Diesen Token hinterlegst du in BetterLocale Code in den Einstellungen. Er wird ausschließlich lokal auf deinem Mac gespeichert und nicht an uns übertragen. Vor der ersten Nutzung lohnt sich ein Verbindungstest, damit du sofort siehst, ob Token, Modell-Auswahl und Zugriff passen. Scheitert der Test, liegt es in der Praxis meist an einem ungültigen Token, fehlenden Berechtigungen, einem falschen Endpunkt oder daran, dass beim Anbieter noch keine Zahlungsmethode hinterlegt ist.

Die Kosten unterscheiden sich je nach Anbieter und Modell teils stark, sind aber in vielen Fällen deutlich günstiger als klassische Übersetzungsbüros, besonders wenn du häufig Updates übersetzen musst. Manche Anbieter rechnen pro Zeichen oder „Units“ ab, andere über Tokens. Bei ChatGPT wird Text dafür in Token-Einheiten zerlegt, wobei je nach Sprache und Wortlänge schon wenige Wörter mehrere Tokens sein können. Zusätzlich werden Eingabe und Ausgabe getrennt berechnet: Du zahlst also sowohl für deinen Prompt inklusive Kontext als auch für die erzeugte Übersetzung. Praktisch heißt das: Mehr Kontext und längere Antworten erhöhen den Verbrauch.

Wenn du die Kosten klein halten willst, helfen ein paar einfache Punkte: Übersetze nur das, was neu oder leer ist, gib nur den Kontext mit, der wirklich nötig ist, und starte zum Test erst mit wenigen Einträgen, bevor du große Textblöcke durchlaufen lässt.

KI-API-Schlüssel erstellen und in der App eintragen

Damit du in der App automatisch übersetzen und den KI-Chat nutzen kannst, brauchst du einen API-Schlüssel von einem KI-Anbieter.
Du kannst dir das wie einen persönlichen Zugangscode vorstellen: Der Anbieter erkennt damit, dass die Anfrage von dir kommt, und rechnet die Nutzung über dein Konto ab.

Aktuell unterstützt die App: OpenAI, Claude, DeepL, Gemini und PerplexityAI.

Die Einrichtung ist bei allen Anbietern sehr ähnlich.

Was du vorher wissen solltest
• PI-Schlüssel = Zugangscode: Den gibst du in der App ein, damit sie in deinem Namen beim Anbieter anfragen darf.
• Kosten laufen über dich: Die App stellt die Anfragen, aber die Abrechnung passiert direkt bei deinem Anbieter-Konto.
• Billing ist oft Pflicht: Viele Anbieter lassen API-Anfragen erst zu, wenn eine Zahlungsart hinterlegt ist. Ohne Billing kommt sonst schnell eine Fehlermeldung oder du bleibst in sehr kleinen Limits hängen.

Schnellstart: in 5 Schritten zum fertigen Setup

1) Account anlegen oder einloggen

Geh zur Website deines Anbieters und melde dich an.

2) API-Key erstellen

Suche nach einem Bereich wie API, Developer, Dashboard oder API Keys und erstelle dort einen neuen Schlüssel.

3) Key kopieren und sicher speichern

Kopiere den Schlüssel direkt und speichere ihn sicher, am besten im Passwortmanager.
Wichtig: Viele Anbieter zeigen den Key nur einmal vollständig an.

4) Billing/Zahlung aktivieren

Hinterlege eine Zahlungsmethode oder aktiviere Billing. Sonst funktionieren API-Anfragen oft gar nicht oder nur eingeschränkt.

5) Key in der App eintragen

Öffne die App → Einstellungen → KI-Anbieter → Anbieter auswählen → API-Schlüssel einfügen → Speichern

Danach kannst du Übersetzungen starten und den KI-Chat nutzen.

Anbieter-Anleitungen (mit Direktlinks)

OpenAI (ChatGPT / OpenAI API)

1. OpenAI Dashboard öffnen:
https://platform.openai.com/
2. API Key erstellen:
https://platform.openai.com/settings/organization/api-keys
3. Billing/Zahlungsmethode einrichten:
https://platform.openai.com/settings/organization/billing/payment-methods

Tipp: Den Key siehst du oft nur einmal komplett, danach nur noch teilweise.

Claude (Anthropic)

1. Claude Console öffnen:
https://platform.claude.com/
2. In der Console zu Account Settings gehen und dort den API Key erstellen.
3. Billing in der Console aktivieren, damit du die API nutzen kannst.

Hinweis: Früher lief das teils über console.anthropic.com, inzwischen wird auf platform.claude.com umgestellt bzw. weitergeleitet.

Gemini (Google)

1. Google AI Studio öffnen (API Keys):
https://aistudio.google.com/app/apikey
2. Falls du noch kein Projekt hast: AI Studio legt oft automatisch ein Standard-Projekt an. Sonst wählst/importierst du ein Google-Cloud-Projekt.
3. API Key erstellen und kopieren.

Dokumentation zu Gemini API Keys:
https://ai.google.dev/gemini-api/docs/api-key

PerplexityAI

1. Account/Settings öffnen:
https://www.perplexity.ai/account
2. In den Settings den </> API-Tab öffnen und dort einen Key generieren („Generate API Key“).
3. Alternativ (je nach UI) das API Portal nutzen:
https://www.perplexity.ai/account/api

Optional: API Groups sind hilfreich, wenn du Keys getrennt halten willst (z. B. „Dev“ und „Prod“).

DeepL

1. DeepL öffnen und einloggen:
https://www.deepl.com/
2. Account → Tab API Keys & Limits öffnen.
3. Create key klicken, Namen vergeben, bestätigen und Key kopieren.
DeepL Hilfeartikel:
https://support.deepl.com/hc/en-us/articles/360020695820-API-key-for-DeepL-API

Hinweise zu Kosten und Datenschutz
• Die Nutzung der KI-API ist meist kostenpflichtig und wird direkt über dein Konto beim Anbieter abgerechnet. Üblicherweise nach Textmenge (Tokens).
• Die App sendet nur die Inhalte, die du auswählst (z. B. die zu übersetzenden Texte) plus deine Anweisung an den Anbieter.
• Dein API-Key wird nur lokal auf deinem Mac im Schlüsselbund (Keychain) gespeichert und nicht an Dritte weitergegeben.

Sicherheit

Behandle den API-Key wie ein Passwort:
• Nicht teilen und nicht in öffentliche Repos kopieren.
• Wenn du glaubst, der Key ist kompromittiert: im Anbieter-Dashboard deaktivieren und einen neuen erstellen.
• Wenn du mehrere Geräte oder Projekte nutzt: lieber einen eigenen Key pro Gerät/Projekt, damit du gezielt sperren kannst, ohne alles lahmzulegen.

BetterLocale Code bietet dir zwei Wege, um Texte zu übersetzen. In beiden Fällen arbeitest du mit Kontext, damit die Übersetzung nicht „blind“ entsteht, sondern zu Ton, Zielgruppe und dem Stil deiner App passt.

Wenn du ohnehin ein externes KI-Tool nutzt oder die Ergebnisse lieber selbst prüfst, nimmst du die Vorlagen-Variante. BetterLocale Code erzeugt aus den ausgewählten Einträgen eine saubere Übersetzungsanfrage im Format “Key” = “Value”;. Dazu kannst du Hinweise mitgeben, etwa gewünschter Ton (neutral, locker, technisch), Zielgruppe (Entwickler, Endnutzer), Produktname, UI-Stil (kurz, menüartig) sowie Regeln für Platzhalter. Diese Vorlage kopierst du in ein Tool deiner Wahl, zum Beispiel ChatGPT, Gemini oder DeepL. Anschließend fügst du die übersetzten Zeilen wieder in BetterLocale Code ein. Die App erkennt die Keys, ordnet die Werte korrekt zu und aktualisiert die passenden Einträge automatisch. Du musst nichts manuell zuordnen und nicht zwischen Dateien hin und her springen. Das ist ideal, wenn du maximale Kontrolle willst und ohne API-Account arbeiten möchtest.

Wenn du alles im gleichen Workflow halten willst, kannst du direkt in BetterLocale Code per API übersetzen. Auch hier gibst du Kontext wie Ton, Zielgruppe und optionale Zusatzhinweise vor, damit die Übersetzungen konsistent bleiben. Unterstützt werden OpenAI, DeepL, Gemini, Claude und Perplexity. Dafür brauchst du beim jeweiligen Anbieter einen API-Key, über den die Anfrage ausgeführt und abgerechnet wird. Du entscheidest außerdem, ob alle Texte übersetzt werden oder nur neue, geänderte beziehungsweise leere Einträge. Das spart Zeit, reduziert Copy-Paste und die Ergebnisse landen direkt in deinen Projektdaten, sodass du sofort weiterarbeiten kannst.

BetterLocale Code selbst berechnet keine Übersetzungskosten. Kosten entstehen ausschließlich bei deinem KI-Anbieter und hängen vom Tarif und vom übersetzten Textumfang ab. Dadurch bleibt es gut planbar, vor allem wenn du nur Änderungen statt „alles neu“ übersetzen lässt.

Bei der manuellen Übersetzung ist der Ablauf fast identisch zur API-Übersetzung, nur dass der eigentliche Übersetzungsschritt außerhalb der App stattfindet.

Sobald du „Manuell übersetzen“ startest, öffnet sich ein Dialog, in dem du den Rahmen definierst. Du kannst Kontext mitgeben, zum Beispiel gewünschte Tonalität (neutral, locker, formal), Zielgruppe, Produktbezug oder Hinweise wie „UI-Labels kurz halten“ oder „Du/Sie-Ansprache“. Danach legst du fest, welche Einträge übersetzt werden sollen: entweder alles, oder nur Felder, die leer sind bzw. neu oder geändert wirken. Damit steuerst du sehr präzise, wie viel Text wirklich rausgeht.

Nach dem Bestätigen erstellt BetterLocale Code automatisch eine fertige Übersetzungsanweisung inklusive deiner Vorgaben und einer Liste der zu übersetzenden Key-Value-Paare. Diese Anweisung wird direkt in die Zwischenablage kopiert, sodass du sie ohne Nacharbeit in ein beliebiges Tool einfügen kannst.

Anschließend öffnest du ChatGPT, DeepL, Gemini oder ein anderes Übersetzungstool, fügst die Anweisung ein und lässt übersetzen. Wichtig ist, dass das Ergebnis wieder im Format

“Key” = “Value”;

zurückkommt, also pro Zeile genau ein Eintrag. Die Keys dürfen dabei nicht verändert werden, damit BetterLocale Code die Übersetzungen eindeutig zuordnen kann.

Das komplette Ergebnis kopierst du danach in die Zwischenablage und fügst es in BetterLocale Code ein. Die App liest die Zeilen ein, gleicht sie mit deinen vorhandenen Schlüsseln ab und übernimmt die übersetzten Values in die richtigen Sprachen.

Der manuelle Weg dauert meistens etwas länger, ist dafür aber ideal, wenn du keinen kostenpflichtigen Dienst per API anbinden möchtest oder bewusst mit verschiedenen Tools arbeiten willst. Wenn beim Einfügen etwas nicht stimmt, etwa ein falsches Format, fehlende Anführungszeichen, doppelte Keys oder Zeilen, die nicht zugeordnet werden können, markiert BetterLocale Code die betroffenen Stellen als Fehler. So siehst du sofort, was korrigiert werden muss, und vermeidest, dass unbemerkt falsche Daten ins Projekt gelangen.

Bei der automatischen Übersetzung hast du in BetterLocale Code zwei Wege, je nachdem, wie breit du vorgehen möchtest. Wenn du den Übersetzungsbefehl an der Standardsprache startest, wird der Auftrag als Gesamtlauf verstanden und die App übersetzt alle ausgewählten Zielsprachen in einem Durchgang. Wenn du den Befehl dagegen direkt bei einer bestimmten Sprache ausführst, wird nur diese eine Sprache übersetzt, was sich gut eignet, wenn du einzelne Sprachen nachziehen oder gezielt prüfen willst.

Nach dem Start öffnet sich ein Dialog, in dem du der KI optional zusätzlichen Kontext mitgeben kannst, damit die Übersetzungen besser zu deinem Projekt passen. Du kannst dort zum Beispiel festlegen, ob die Formulierungen eher sachlich oder locker sein sollen, welche Zielgruppe du ansprichst und ob bestimmte Begriffe im Produktkontext gleich bleiben sollen. Zusätzlich kannst du steuern, ob nur leere Einträge übersetzt werden sollen, damit bereits vorhandene Übersetzungen nicht überschrieben werden. Sobald du den Dialog bestätigst, startet BetterLocale Code den Übersetzungsprozess und arbeitet die Einträge der Reihe nach ab, wobei die Zuordnung über die Keys erfolgt und der Fortschritt pro Sprache fortlaufend aktualisiert wird.

Wenn während der Übersetzung etwas schiefgeht, etwa durch fehlende API-Berechtigungen, eine ungültige Konfiguration, Netzwerkprobleme oder ein unerwartetes Antwortformat, bricht die App nicht einfach kommentarlos ab, sondern sammelt die Fehlermeldungen und zeigt sie dir am Ende gebündelt an. So kannst du gezielt erkennen, welche Einträge betroffen waren und was die Ursache ist, ohne den gesamten Lauf manuell nachvollziehen zu müssen.

Ob eine Sprache vollständig übersetzt ist, erkennst du daran, dass der Prozentwert der Zielsprache mit dem Prozentwert der Standardsprache übereinstimmt, weil beide dann die gleiche Abdeckung an gefüllten Werten haben. Zusätzlich siehst du links oben in der Tabelle die Anzahl der noch leeren Felder, wodurch du auf einen Blick einschätzen kannst, ob noch Lücken vorhanden sind. Du kannst den Vorgang jederzeit erneut ausführen, zum Beispiel um nach Änderungen nur die neu hinzugekommenen oder noch fehlenden Übersetzungen zu ergänzen, ohne den gesamten Bestand erneut übersetzen zu lassen.

Wenn du fertig bist, kannst du deine Lokalisierungen direkt aus BetterLocale Code zurück in dein Xcode-Projekt exportieren. So bringst du die bearbeiteten Texte wieder dorthin, wo Xcode sie erwartet, inklusive aller Sprachen, Keys und Werte.

Export als XCStrings (Strings Catalog)

Wenn du mit .xcstrings arbeitest, legst du zuerst die Standardsprache fest. Das ist die Basissprache, von der Xcode ausgeht, und sie dient als Referenz für die übrigen Übersetzungen. Anschließend exportierst du die Datei am besten genau an den ursprünglichen Speicherort in deinem Projekt. So wird die bestehende Datei ersetzt bzw. aktualisiert, und Xcode erkennt die Änderungen sofort. Das ist besonders praktisch, wenn du nur Werte ergänzt oder konsistenter gemacht hast und die Datei als zentrale Quelle im Projekt behalten willst.

Export als .strings

Wenn du lieber mit klassischen .strings-Dateien arbeitest oder ein Legacy-Projekt pflegst, kannst du deine Daten aus XCStrings in das .strings-Format konvertieren. Dabei werden die Einträge je Sprache in die bekannte Schlüssel-Wert-Struktur übertragen, die viele bestehende Build-Setups und Tools erwarten. Das ist auch hilfreich, wenn du bestimmte Workflows hast, die auf .strings basieren, oder wenn du Strings Catalogs nicht nutzen möchtest.

Export als .lproj-Ordnerstruktur

Alternativ kannst du die Lokalisierungen als separate Sprachordner exportieren, also als Struktur mit .lproj-Verzeichnissen. In jedem dieser Ordner liegen dann die passenden Sprachdateien (z. B. Localizable.strings). Diese Variante entspricht dem klassischen Xcode-Standardaufbau und eignet sich gut, wenn du dein Projekt bewusst in einer klaren Ordnerstruktur pro Sprache organisieren willst oder wenn du mehrere Dateien pro Sprache verwaltest.

Ergebnis im Projekt

Egal, welchen Exportweg du wählst: Am Ende liegen die Lokalisierungsdateien in deinem Projekt in einer Form, die Xcode direkt versteht. Damit ist die Lokalisierung technisch abgeschlossen und du kannst sie sofort testen, indem du in Simulator oder Gerät die Sprache umstellst und prüfst, ob alle Texte korrekt erscheinen.

Weitere Funktionen

In BetterLocale Code ist ein Tutorial direkt in die App eingebaut, das dich strukturiert durch die wichtigsten Funktionen führt, ohne dass du erst Doku lesen oder lange herumprobieren musst. Es ist so aufgebaut, dass du den typischen Ablauf einmal komplett durchgehst und dabei genau die Stellen kennenlernst, an denen im Alltag die meiste Zeit verloren geht.

Du wirst Schritt für Schritt durch den Workflow geführt: vom Anlegen eines Projekts über den Import deiner vorhandenen Lokalisierungen (z. B. Localizable.xcstrings, klassische .strings oder komplette .lproj-Ordner) bis hin zur sauberen Rückgabe in dein Xcode-Projekt. Dabei zeigt das Tutorial auch, wie du Sprachen hinzufügst, bestehende Sprachstände importierst und deine Keys und Values effizient pflegst, inklusive Bearbeitung, Suche und Konsistenz-Checks.

Ein Schwerpunkt liegt auf Qualität und Vollständigkeit: Das Tutorial erklärt, wie du fehlende Übersetzungen, leere Werte und Inkonsistenzen schnell erkennst, Sprachen miteinander vergleichst und deine Texte so organisierst, dass sie über alle Targets hinweg konsistent bleiben. Du bekommst außerdem Hinweise, wie du typische Fehlerquellen vermeidest, etwa doppelte Keys, uneinheitliche Platzhalter oder versehentlich veränderte Format-Strings.

Auch das Thema KI-Übersetzung wird praxisnah erklärt. Du lernst beide Wege: die manuelle Variante über eine Vorlage (Copy in ein KI-Tool wie ChatGPT, danach wieder zurück in die App) und die direkte Übersetzung per API aus der App heraus. Dabei geht es nicht nur um den Klick auf „Übersetzen“, sondern auch um sinnvollen Kontext, Tonalität, Zielgruppe und die Kontrolle darüber, ob alles oder nur neue bzw. geänderte Einträge übersetzt werden sollen.

Praktisch im Alltag: Du kannst das Tutorial jederzeit erneut starten, Schritte überspringen und gezielt als „Auffrischung“ nutzen, zum Beispiel nach Updates oder wenn du eine Funktion länger nicht verwendet hast. So bleibt das Onboarding nicht einmalig, sondern hilft dir auch später, neue oder selten genutzte Bereiche sicher zu bedienen.

In BetterLocale Code kannst du Feedback direkt aus der App heraus senden, ohne erst nach einer Kontaktadresse suchen oder Informationen zusammensammeln zu müssen.

Wenn du den Feedback-Befehl auswählst, öffnet BetterLocale Code deinen Standard-E-Mail-Client und erstellt eine neue Nachricht mit einer passenden Betreffzeile. So ist die Anfrage direkt korrekt zugeordnet und du kannst sofort losschreiben.

Das ist besonders praktisch, wenn du eine Frage zu einer Funktion oder einem empfohlenen Workflow hast, wenn du einen Feature-Wunsch einreichen möchtest oder wenn du einen Fehler melden willst. Gerade bei Problemen hilft es uns, wenn du kurz beschreibst, was du vorhattest, was tatsächlich passiert ist und welches Verhalten du erwartet hättest. Wenn möglich, füge einen Screenshot hinzu oder nenne, mit welchem Dateityp du gearbeitet hast (.xcstrings, .strings oder .lproj).

Wenn du einen Text in der Standardsprache änderst, ist das oft mehr als ein Tippfehler. Häufig ändert sich Bedeutung, Ton oder Kontext. Damit sind bestehende Übersetzungen in anderen Sprachen im Zweifel nicht mehr passend oder schlicht veraltet. Genau dafür gibt es in BetterLocale Code zwei saubere Wege: Du kannst Übersetzungen nach einer Änderung bewusst zurücksetzen und neu erstellen, oder du kannst denselben Standardwert gezielt in allen Sprachen übernehmen.

Änderst du einen Wert in der Standardsprache, kann es sinnvoll sein, die Übersetzungen der anderen Sprachen zu leeren, damit später nichts unbemerkt falsch bleibt. BetterLocale Code unterstützt dich dabei auf zwei Arten: Bei relevanten Änderungen erscheint ein Hinweis, der dich fragt, ob die bestehenden Übersetzungen entfernt werden sollen. Und du kannst das jederzeit auch manuell auslösen, wenn du bewusst aufräumen willst: Wechsle in der Sprachliste zur Standardsprache, markiere den betroffenen Eintrag und nutze den Befehl „Übersetzungen aller Sprachen löschen“. Dabei bleiben die Keys natürlich erhalten, nur die Werte in den anderen Sprachen werden geleert. Das ist praktisch, weil du anschließend sofort siehst, was neu übersetzt werden muss und weil alte Übersetzungen nicht stillschweigend im Projekt weiterleben.

Typische Fälle dafür sind überarbeitete UI-Formulierungen (Ton, Länge, Klarheit), fachliche Änderungen an Inhalten (z. B. Bedingungen, neue Features) oder Anpassungen an Platzhaltern und Satzstruktur, bei denen du bewusst frische Übersetzungen haben möchtest.

Manchmal willst du genau das Gegenteil: Ein Text soll absichtlich in allen Sprachen identisch sein. Das betrifft oft Inhalte, die man nicht übersetzt, zum Beispiel URLs, Marken- oder Produktnamen, Modellbezeichnungen oder technische Begriffe, die du bewusst gleich lässt. In dem Fall nutzt du „Standardwert auf alle Sprachen anwenden“. Die App übernimmt den Wert aus der Standardsprache in jede vorhandene Sprache. Das spart Zeit und sorgt dafür, dass der Inhalt überall konsistent bleibt.

Für den Alltag gibt es außerdem zwei Befehle, die beim Pflegen und Aufräumen ständig nützlich sind: „In Zwischenablage kopieren“, um Einträge je nach Kontext einzeln oder gesammelt extern weiterzuverwenden (z. B. zum Prüfen oder für ein KI-Tool), und „Key inklusive aller Werte löschen“, um einen Eintrag wirklich komplett aus dem Projekt zu entfernen, also Key und alle Sprachwerte. Das lohnt sich, wenn ein String nicht mehr verwendet wird und dein Projekt sauber bleiben soll.

Sobald Übersetzungen vorhanden sind, lohnt sich eine kurze Stichprobe. Wähle dazu in der Liste einen Eintrag aus und öffne über das Kontextmenü oder den Button „Übersetzungen bearbeiten“ den Detaildialog. Dort kannst du Übersetzungen schnell prüfen und bei Bedarf direkt korrigieren.

Im Dialog werden untereinander drei Inhalte angezeigt: die Übersetzung in der aktuell gewählten Sprache, eine Rückübersetzung in die Standardsprache sowie der Originaltext in der Standardsprache. Die Rückübersetzung ist dabei ein praktischer Plausibilitätscheck. Wenn sie inhaltlich deutlich vom Original abweicht, ist das oft ein Hinweis darauf, dass die Übersetzung zwar flüssig klingt, aber die Bedeutung nicht sauber trifft.

Damit kannst du Einträge sehr effizient „abhaken“ oder gezielt nachbessern, ohne jedes Mal große Textmengen lesen zu müssen. Gerade bei KI-Übersetzungen hilft dir dieser Dialog, die letzten Prozent Qualität herauszuholen und typische Fehler früh zu erkennen. Zusätzlich stehen im Dialog Aktionen zur Verfügung, mit denen du Texte direkt nachbearbeiten kannst.

BetterLocale Code enthält zusätzlich einen integrierten KI-Chat, der sich wie ein klassischer Chat-Assistent bedienen lässt. Du kannst direkt in der App Fragen stellen und dir beim Arbeiten helfen lassen, zum Beispiel beim Glätten von Formulierungen (App-Store-Texte, UI-Strings, Fehlermeldungen), beim Gegenlesen von Übersetzungen in Bezug auf Ton und Konsistenz, beim Vorschlagen sinnvoller Key-Namen und Strukturen oder beim Erzeugen kurzer Erklärungen und Varianten, ohne dass dir dabei der Kontext verloren geht.

Technisch nutzt der Chat dieselben KI-Schnittstellen wie die Übersetzungsfunktionen. Das bedeutet: Der Anbieter, den du in BetterLocale Code eingerichtet hast (z. B. OpenAI, DeepL, Gemini, Claude oder Perplexity), wird auch für den Chat verwendet. Du arbeitest damit in einem durchgängigen Setup mit denselben Zugangsdaten und denselben Regeln.

Die Abrechnung läuft immer über den jeweiligen Anbieter und dessen Preismodell. Bei tokenbasierter Abrechnung ist wichtig, dass meist getrennt nach Input (dein gesendeter Text) und Output (die Antwort des Modells) berechnet wird. Tokens sind dabei keine Wörter. Als grobe Faustregel kann man oft mit etwa 1 Token ≈ 4 Zeichen bzw. ungefähr 0,75 Wörtern rechnen, je nach Sprache und Text kann das aber spürbar abweichen.

Als reine Orientierung: In der OpenAI-API liegen die Preise für GPT-4.1 bei 2,00 USD pro 1 Mio. Input-Tokens und 8,00 USD pro 1 Mio. Output-Tokens, für GPT-4.1 mini bei 0,40 USD (Input) und 1,60 USD (Output). Andere Anbieter und Modelle können davon abweichen.

Wenn du die Kosten niedrig halten willst, hilft in der Praxis meist schon, im Chat eher kurz und klar zu fragen, nur den Text mitzuschicken, der wirklich geprüft werden soll (statt ganze Dateien), und für schnelle Checks ein kleineres Modell zu nutzen und nur bei heiklen Texten auf ein größeres Modell zu wechseln.

Die Funktion „Swift → KeyValue“ hilft dir dabei, bereits vorhandene Textkonmentare aus deinem Swift-Code schnell in ein sauberes Key-Value-Format zu überführen, damit du sie anschließend direkt in BetterLocale Code weiterverwenden kannst.

Wichtig dabei: Die App liest keine Swift-Dateien automatisch aus deinem Projekt. Du fügst den relevanten Swift-Code oder einzelne Ausschnitte manuell in das Eingabefeld ein. Das ist bewusst so gelöst, damit du selbst bestimmst, welche Stellen analysiert werden, und damit BetterLocale Code keinen Zugriff auf dein Projekt benötigt.

Aus dem eingefügten Text erkennt die Funktion String-Konstanten, bei denen eine feste Zuordnung zwischen einem Namen und einem String-Wert existiert. Daraus erzeugt sie Zeilen im Format „Key“ = „Value“;, die du anschließend als Basis für deine Lokalisierung nutzen kannst, zum Beispiel für .strings- oder xcstrings-Workflows. Typische Quellen sind static let-Definitionen, Konstanten in Structs oder Enums, sowie zentral gepflegte Textsammlungen in Containern wie Strings, L10n, Text, Copy oder ähnlichen.

Am zuverlässigsten funktioniert das, wenn Key und Value eindeutig zusammengehören, etwa bei static let title = „Einstellungen“. Bei frei im Code verteilten String-Literalen wie Text(„Einstellungen“) oder label.text = „Einstellungen“fehlt dagegen meist ein stabiler Key, der später für die Lokalisierung gebraucht wird. Dann müsste man den Key erraten oder den Kontext interpretieren, was schnell zu doppelten oder widersprüchlichen Keys, schlechten Key-Namen oder einer inkonsistenten Struktur führt.

Wenn du verlässliche Ergebnisse möchtest, ist es am besten, deine Texte vorher als Konstanten oder klar benannte Attribute zu definieren, zum Beispiel static let settingsTitle = „…“, static let errorNetwork = „…“ oder static let buttonSave = „…“. So kann BetterLocale Code die Konstantennamen direkt als Keys übernehmen, die String-Werte sauber als Values ausgeben und dir eine konsistente Key-Struktur liefern, die später leicht zu pflegen ist.

Falls du aktuell viele direkte String-Literale im Code hast, lohnt sich als Zwischenschritt, die wichtigsten Texte zuerst in eine zentrale L10n- oder Strings-Struktur zu ziehen und danach „Swift → KeyValue“ zu nutzen, um daraus die Lokalisierungsbasis zu erzeugen.

Die Funktion „KeyValue to Code“ erzeugt aus vorhandenen Key-Value-Einträgen wieder Swift-Code in einer sauberen Konstanten-Struktur. Das ist praktisch, wenn ein Projekt historisch mit hardcodierten Texten im Code gestartet ist, zum Beispiel static let ok = „OK“ oder static let loginTitle = „Anmelden“.

Wenn du später auf eine echte Lokalisierung umstellst, möchtest du diese Struktur im Code oft behalten, aber ohne feste Texte. Stattdessen soll der Code nur noch auf Lokalisierungs-Keys verweisen. Genau hier setzt „KeyValue to Code“ an: BetterLocale Code generiert dir Properties neu und ersetzt die bisherigen String-Literale durch die passenden Keys, die du in deinen .strings oder .xcstrings pflegst.

Wichtig: Die App liest dafür keine Swift-Dateien automatisch aus deinem Projekt. Du fügst den relevanten Code oder eine Key-Liste manuell in das Eingabefeld ein. Das ist bewusst so gelöst, damit die Funktion schnell bleibt, du die volle Kontrolle behältst und keine Projektanalyse nötig ist.

Typische Einsätze sind die Migration von hardcodierten Strings zu key-basierter Lokalisierung ohne viel Handarbeit, das Aufräumen und Vereinheitlichen gewachsener Konstanten-Dateien, sowie Refactorings, bei denen du dir eine klare „Strings“-API aufbaust, zum Beispiel nach Screens oder Features gruppiert. Nebenbei wird es auch für Code-Reviews angenehmer, weil im Code keine UI-Texte mehr stehen, sondern stabile Keys, während sich Inhalte nur noch in den Sprachdateien ändern.

Unterm Strich bekommst du eine robuste, wartbare Struktur: Dein Swift-Code bleibt sauber und stabil, und die eigentlichen Texte liegen zentral in den Lokalisierungsdateien, wo du sie übersetzen, prüfen und versionieren kannst.

Hier findest du eine Anleitung und Testdaten zum Ausprobieren.

Deutsche Anleitung

Demo-Daten

Schon mal die Apps von OneTwoApps fürs iPhone und iPad ausprobiert?

ScanBox

Mein Haushaltsbuch

Mein Haushaltsbuch Pro

Preise / Premium

BetterLocale Code bieten wir als Abonnement an, damit wir die App dauerhaft pflegen, weiterentwickeln und stabil betreiben können. Dein Abo finanziert die laufende Arbeit an neuen Funktionen, Verbesserungen im Alltag, Fehlerbehebungen und regelmäßigen Updates.

Ein Schwerpunkt ist außerdem der Ausbau der KI-Integration. Wir erweitern die Unterstützung nach und nach um weitere Anbieter, damit du in Zukunft mehr Auswahl und bessere Workflows hast. Das heißt für dich: Du nutzt nicht nur den aktuellen Funktionsumfang, sondern erhältst während der Laufzeit automatisch alle Updates und Neuerungen.

Im Abo ist der komplette Funktionsumfang enthalten. Du schließt es direkt in der App ab. Kündigen kannst du jederzeit über den App Store, und den passenden Bereich kannst du auch direkt aus der App heraus öffnen.

Vollzugriff 1 Monat

3,99

Alle Funktionen freigeschaltet für 12 Monate.

Das sind 3,99 € im Monat.

Vollzugriff 2 Monate

6,99

Alle Funktionen freigeschaltet für 2 Monate.

Das sind ca. 3,5 € im Monat.

Vollzugriff 3 Monate

9,99

Alle Funktionen freigeschaltet für 3 Monate.

Das sind ca. 3,3 € im Monat.

Vollzugriff 6 Monate

16,99

Alle Funktionen freigeschaltet für 6 Monate.

Das sind ca. 2,8 € im Monat.

Vollzugriff 12 Monate

24,99

Alle Funktionen freigeschaltet für 12 Monate.

Das sind ca. 2,1 € im Monat.

Datenschutz

BetterLocale Code speichert Projekte und Sprachdaten ausschließlich lokal auf deinem Mac. Eine Datenübertragung nach außen findet nur statt, wenn du optional KI-Funktionen aktiv nutzt (z. B. Übersetzung oder Chat). In diesem Fall werden nur die von dir ausgewählten Inhalte zusammen mit der jeweiligen Anfrage an den gewählten KI-Anbieter gesendet. API-Schlüssel werden ausschließlich lokal im macOS-Schlüsselbund (Keychain) gespeichert.

Weitere Details findest du in der vollständigen Datenschutzerklärung.

Schon mal in die Spiele von AtomiumGames reingeschaut?

Crazy Monsters

Tower Arena: Time for heroes

Strategy War: Battle Game

Battle Alliance: Tower Defense

FAQ

Hier findest du die wichtigsten Fragen rund um BetterLocale Code, plus ein paar praktische Tipps und Tricks aus dem Alltag, damit du schneller zu sauberen Übersetzungen und einem stressfreien Export ins Xcode-Projekt kommst.

Was ist BetterLocale Code und wofür nutze ich es?

BetterLocale Code ist ein macOS-Tool zur Pflege und Organisation von Lokalisierungen in Xcode-Projekten. Es richtet sich an Entwickler, die ihre Sprachdaten strukturiert bearbeiten möchten, ohne ständig zwischen Xcode, Dateisystem und Texteditoren zu wechseln oder manuell in .xcstrings, .strings und .lproj-Ordnern zu arbeiten.

Du importierst deine bestehenden Lokalisationsdateien in einen zentralen Editor, bearbeitest Keys und Werte übersichtlich pro Sprache und siehst sofort, wo Übersetzungen fehlen oder veraltet sind. Das ist besonders hilfreich, wenn sich Texte regelmäßig ändern, neue Keys dazukommen oder mehrere Sprachen parallel gepflegt werden müssen und du sicherstellen willst, dass am Ende alles konsistent ist.

Typische Workflows in BetterLocale Code sind: neue Sprachen hinzufügen, neue Keys anlegen oder bestehende strukturieren, Werte aktualisieren, fehlende Einträge gezielt finden und schließen, sowie Übersetzungen erstellen lassen, entweder manuell über eine vorbereitete Vorlage oder direkt per KI-Anbieter über eine API. Anschließend exportierst du die aktualisierten Inhalte wieder zurück ins Xcode-Projekt, sodass deine App-Lokalisierung sauber und vollständig im Projektstand vorliegt.

Welche Dateiformate und Projektstrukturen werden unterstützt?

BetterLocale Code unterstützt die gängigen Lokalisierungsformate im Apple-Ökosystem und kann sowohl moderne als auch klassische Projektaufbauten verarbeiten.

a) Strings Catalogs (XCStrings)

Du kannst Strings Catalogs wie Localizable.xcstrings importieren und bearbeiten. Das ist das moderne Xcode-Format, bei dem Strings zentral in einem Catalog verwaltet werden.

b) Klassische .strings-Dateien

Auch klassische Dateien wie Localizable.strings (und weitere .strings-Dateien, z. B. für einzelne Screens oder Module) werden unterstützt. Du kannst die Inhalte wie gewohnt pflegen, fehlende Übersetzungen erkennen und Werte gezielt ergänzen.

c) Sprachordner-Struktur (*.lproj)

Zusätzlich kannst du komplette Sprachordner importieren, zum Beispiel de.lproj, en.lproj, fr.lproj. Damit werden typische Xcode-Projektstrukturen abgedeckt, inklusive der darin enthaltenen Lokalisierungsdateien.

Import, Bearbeitung und Konvertierung

Du kannst Inhalte aus diesen Formaten importieren, zentral bearbeiten und bei Bedarf zwischen den Formaten konvertieren. Das ist besonders hilfreich, wenn du

a) von .strings nach .xcstrings migrieren willst (oder umgekehrt),

b) Projekte übernommen hast, in denen Formate gemischt sind,

c) oder du Lokalisierungen aus verschiedenen Quellen zusammenführen möchtest.

So bleibt dein Projekt flexibel: Du kannst die Struktur nutzen, die für dein Team und deinen Build-Prozess am besten passt, ohne Lokalisierungen manuell umkopieren zu müssen.

Wie funktioniert der typische Workflow in der App?

Wie funktioniert der typische Workflow in der App?

Der Ablauf ist in der Praxis ziemlich geradlinig und orientiert sich daran, wie Lokalisierung in Xcode wirklich passiert. Typischerweise gehst du so vor:

a) Import deiner bestehenden Lokalisierungen

Du startest mit dem Import deiner vorhandenen Dateien, also .xcstrings, klassischen .strings oder kompletten .lproj-Ordnern. BetterLocale Code liest die Struktur ein und legt daraus ein Projekt an, in dem du zentral arbeiten kannst, ohne dich durch Ordner und einzelne Dateien zu klicken.

b) Pflege und Korrektur der Inhalte

Im nächsten Schritt prüfst du die Keys und Werte: Sind Texte veraltet, fehlen Platzhalter, gibt es Tippfehler, passen Formulierungen noch? Du kannst neue Keys anlegen, bestehende Einträge ändern und Inhalte korrigieren. Gerade nach Feature-Änderungen ist das der Teil, der am meisten Zeit frisst, wenn man ihn in Xcode direkt macht.

c) Qualitätscheck und Vollständigkeit

Danach schaust du gezielt nach Problemen: fehlende Übersetzungen, leere Felder, unvollständige Sprachvarianten oder Einträge, die nicht mehr zur Standardsprache passen. Die Idee ist, dass du Lücken und Inkonsistenzen früh siehst, statt sie erst beim Testen oder kurz vorm Release zu entdecken.

d) Übersetzung (manuell oder per API)

Für die Übersetzung hast du zwei Wege:

– Manuell über Vorlage: BetterLocale Code erzeugt eine saubere Übersetzungsanweisung, die du in ein externes Tool (z. B. ChatGPT) einfügst. Das Ergebnis kopierst du zurück, und die App ordnet die Werte den richtigen Keys zu.

– Direkt per API: Du übersetzt innerhalb der App über einen angebundenen Anbieter per API, optional mit Kontext wie Tonalität und Zielgruppe. Du kannst außerdem steuern, ob alles oder nur fehlende bzw. geänderte Einträge übersetzt werden.

e) Export zurück ins Xcode-Projekt

Wenn alles passt, exportierst du die Daten wieder zurück in dein Projekt, idealerweise an den ursprünglichen Speicherort. So landet am Ende wieder eine saubere .xcstrings bzw. .lproj-Struktur im Repo, ohne dass du manuell Dateien zusammenkopieren musst.

Ziel des Workflows

Am Ende hast du ein konsistentes, vollständiges Set an Sprachdaten. Und du reduzierst das Risiko, dass im Release plötzlich Texte fehlen, Platzhalter kaputt sind oder Sprachstände auseinanderlaufen.

Wie erkenne ich fehlende oder unvollständige Übersetzungen?

BetterLocale Code unterstützt dich dabei an mehreren Stellen, damit du nicht manuell durch alle Einträge scrollen musst:

a) Vollständigkeit je Sprache (Prozentanzeige)

Für jede Sprache zeigt dir die App einen Fortschritt in Prozent an. Grundlage ist die Standardsprache: Sobald dort ein Eintrag vorhanden ist, erwartet die App für jede Zielsprache einen entsprechenden Wert. So siehst du sehr schnell, welche Sprache insgesamt „hinterherhinkt“ und wo sich das Nacharbeiten zuerst lohnt.

b) Zähler für leere Einträge

Zusätzlich gibt es eine klare Anzeige, wie viele Felder in einer Sprache noch leer sind. Das ist besonders hilfreich, wenn du viele Felder pflegst oder regelmäßig Texte nachträgst: Du erkennst sofort, ob wirklich alles befüllt ist oder ob noch Lücken existieren.

c) Gezielt nach offenen Punkten arbeiten

Du kannst deine Arbeit auf das Wesentliche fokussieren, indem du nur bestimmte Zustände bearbeitest oder übersetzen lässt, zum Beispiel:

– nur leere Einträge (typisch, wenn neue Sprachen dazugekommen sind)
nur geänderte Einträge (typisch nach Anpassungen in der Standardsprache, wenn Übersetzungen veraltet sein können)

Praktisch daran ist: Du bekommst schnell eine klare To-do-Liste, siehst sofort, wo es klemmt, und kannst Lücken systematisch schließen, ohne dich durch hunderte Einträge klicken zu müssen.

Was passiert, wenn ich in der Standardsprache einen Text ändere?

Wenn du den Text in der Standardsprache anpasst, ist das die Grundlage für alle Übersetzungen. In vielen Fällen passen die vorhandenen Übersetzungen danach inhaltlich nicht mehr, weil sie noch auf dem alten Ausgangstext basieren. Damit du nicht aus Versehen mit veralteten Übersetzungen weiterarbeitest, unterstützt dich BetterLocale Code dabei, die betroffenen Sprachversionen sauber zu behandeln.

Du hast dafür mehrere Optionen:

a) Automatisch beim Ändern

Wenn sich ein Standardtext ändert, weist dich die App in der Regel darauf hin und bietet an, die vorhandenen Übersetzungen zu verwerfen. Das ist sinnvoll, wenn du sicherstellen willst, dass später nur Übersetzungen im Projekt landen, die wirklich zum aktuellen Ausgangstext passen.

b) Manuell jederzeit

Du kannst den Schritt auch gezielt selbst ausführen: Wähle den Eintrag in der Standardsprache aus und nutze den Befehl „Übersetzungen aller Sprachen löschen“. Damit werden die Übersetzungen für diesen Key entfernt, sodass du anschließend sauber neu übersetzen kannst, entweder per KI oder manuell.

c) Gleicher Text in allen Sprachen

Manchmal soll ein Wert in allen Sprachen identisch sein, zum Beispiel bei URLs, Produktnamen, Markennamen, Kurzcodes oder bewusst unveränderten Begriffe. In diesem Fall nutzt du „Standardwert auf alle Sprachen anwenden“. Die App übernimmt dann den Standardtext 1:1 in alle Sprachvarianten.

Praktisch ist das vor allem, wenn du zwischen “muss neu übersetzt werden” und “soll absichtlich überall gleich bleiben” klar unterscheiden willst und so Konsistenz im Projekt behältst.

Wie funktioniert die automatische Übersetzung in der App?

Die automatische Übersetzung startet direkt in BetterLocale Code und kann je nach Bedarf für alle Sprachen oder gezielt für eine einzelne Sprache ausgeführt werden.

Du hast dabei zwei Varianten:

a) Alle Sprachen in einem Durchlauf

Wenn du den Übersetzungsbefehl in der Standardsprache ausführst, übersetzt BetterLocale Code nacheinander alle ausgewählten Zielsprachen. Das ist praktisch, wenn du ein neues Projekt aufsetzt oder größere Änderungen einmal komplett durchziehen willst.

b) Nur eine bestimmte Sprache

Wenn du nur eine Sprache aktualisieren möchtest, startest du den Übersetzungsbefehl direkt in der gewünschten Zielsprache. So kannst du gezielt nacharbeiten, ohne die anderen Sprachversionen anzufassen.

Vor dem Start öffnet sich ein Dialog, in dem du optional Kontext hinterlegen kannst, etwa gewünschte Tonalität, Zielgruppe oder Hinweise zur Formulierung. Zusätzlich kannst du festlegen, ob nur leere Felder übersetzt werden sollen. Das ist hilfreich, wenn du bestehende Texte nicht überschreiben möchtest und nur fehlende Einträge ergänzen willst.

Nach dem Lauf erhältst du eine Zusammenfassung, was übersetzt wurde und welche Felder aktualisiert wurden. Falls es dabei zu Fehlern kommt, werden diese gesammelt am Ende angezeigt, inklusive Details, damit der Prozess nicht mitten im Lauf abbricht und du anschließend gezielt nachbessern kannst.

Was ist der Unterschied zwischen automatischer und manueller KI-Übersetzung?

Beide Wege liefern am Ende das gleiche Ziel: Du bekommst saubere Übersetzungen pro Sprache und kannst sie in BetterLocale Code weiterbearbeiten und anschließend manuell nach App Store Connect übertragen. Der Unterschied ist vor allem, wie die Übersetzung erzeugt und zurück in die App übernommen wird.

Automatische Übersetzung (direkt per API in der App)

Bei der automatischen Übersetzung ist BetterLocale Code direkt mit einem KI-Anbieter verbunden.

– Einrichtung: Du hinterlegst in den Einstellungen deinen API-Key, wählst den Anbieter und ggf. das Modell.

– Ablauf: Du startest die Übersetzung direkt in der App. Optional kannst du Kontext mitgeben, zum Beispiel Tonalität, Zielgruppe oder Hinweise zur Marke.

– Umfang: Du kannst festlegen, ob alle Texte übersetzt werden sollen oder nur leere bzw. geänderte Felder.

– Vorteile: Sehr schneller Workflow, kein Copy-Paste, klare Nachvollziehbarkeit, besonders praktisch bei vielen Sprachen oder regelmäßigen Updates.

– Hinweis zu Kosten: Die Abrechnung läuft direkt über den KI-Anbieter anhand der verarbeiteten Textmenge.

Manuelle Übersetzung (Vorlage für ChatGPT & Co.)

Bei der manuellen Übersetzung übernimmt BetterLocale Code die Vorbereitung, du nutzt aber ein externes Tool.

– Vorbereitung: Die App erzeugt eine fertige Übersetzungsanweisung inklusive Kontext und kopiert sie in die Zwischenablage.

– Ablauf: Du fügst die Anweisung in ein Tool deiner Wahl ein (z. B. ChatGPT, Gemini, DeepL), lässt übersetzen und bekommst als Ergebnis eine Liste im Format „Key“ = „Value“;.

– Rückimport: Diese Ausgabe kopierst du zurück und fügst sie in BetterLocale Code ein. Die App erkennt die Struktur, ordnet die Werte automatisch den richtigen Feldern zu und übernimmt die Übersetzungen.

– Vorteile: Kein API-Setup nötig, gut zum Start oder wenn du bewusst ohne direkte Anbindung arbeiten willst. Außerdem kannst du dein bevorzugtes Tool frei wählen.

– Trade-off: Etwas mehr Handarbeit und dadurch meist langsamer als die API-Variante.

Wenn du viel und regelmäßig übersetzt, ist die API-Übersetzung meist der schnellere Standard. Für gelegentliche Übersetzungen oder zum Einstieg ist die manuelle Vorlage oft der entspannteste Weg.

Welche KI-Anbieter werden unterstützt und was brauche ich dafür?

BetterLocale Code unterstützt je nach Konfiguration mehrere KI-Anbieter, darunter OpenAI, DeepL, Gemini, Claudeund Perplexity. Du kannst selbst entscheiden, welchen Dienst du verwenden möchtest, je nachdem, welches Preisniveau, welche Qualität oder welche Spracheigenschaften für dich am besten passen.

Für die Nutzung gibt es zwei Wege:

a) Manuell (ohne direkte Anbindung)

Du lässt dir in der App eine Übersetzungsvorlage erzeugen, übersetzt diese in einem externen Tool deiner Wahl und fügst das Ergebnis wieder in BetterLocale Code ein. Dafür brauchst du keinen API-Key in der App.

b) Direkt per API (Übersetzung in der App)

Wenn du die Übersetzung direkt in BetterLocale Code starten willst, benötigst du beim jeweiligen Anbieter:

– einen Account

– einen API-Key / Token (je nach Anbieter unterschiedlich benannt)

Den API-Key trägst du in BetterLocale Code ein. Danach kannst du über einen Verbindungstest prüfen, ob die Konfiguration korrekt ist und die Anfrage erfolgreich durchgeht.

Wichtig ist die Abrechnung: Die Kosten entstehen immer beim jeweiligen KI-Anbieter, nicht bei BetterLocale Code. Abgerechnet wird dort typischerweise nutzungsbasiert, also abhängig von Textmenge und Modell. Dadurch kannst du selbst steuern, wie viel Automatik du nutzt und welche Modelle du einsetzt.

Was bedeutet „Token“ und wie entstehen die Kosten bei ChatGPT & Co.?

Viele KI-Anbieter rechnen verbrauchsabhängig über Tokens ab. Tokens sind Textbausteine, meist Wortteile: kurze Wörter entsprechen oft einem Token, längere Wörter können aus mehreren Tokens bestehen. In der Regel werden Eingabe (Prompt/Quelltext) und Ausgabe (Antwort/Übersetzung) separat abgerechnet. Du zahlst also sowohl für das, was du an den Dienst sendest, als auch für das, was du zurückbekommst.
 
Die Übersetzungskosten lassen sich gut steuern, wenn du:
• nur leere, neue oder geänderte Einträge übersetzen lässt,
• den Kontext knapp und zielgerichtet hältst (z. B. Tonalität, Zielgruppe, ein Satz Hinweis),
• ein Modell wählst, das zum Zweck passt (schnell und günstig für Standardfelder, hochwertiger für Marketingtexte).
 
Was du realistisch zahlst, hängt vor allem von Textmenge pro Sprache und Anbieter/Modell ab. Abgerechnet wird immer direkt beim jeweiligen Anbieter, nicht über BetterLocale Code.
 
Als Orientierung: Eine typische App-Store-Lokalisierung (Titel, Untertitel, Werbetext, Beschreibung, Keywords, „Neues in dieser Version“ plus einige Zusatzfelder) liegt häufig bei ca. 10.000 bis 15.000 Zeichen pro Zielsprache. Je mehr Kontext du mitschickst, desto mehr Daten werden zusätzlich verarbeitet.
 
Grobe Beispiele pro Zielsprache
 
DeepL (zeichenbasiert)
DeepL rechnet bei der API nach Zeichen ab. Bei einer Textmenge von etwa 12.000 Zeichen lägst du überschlagen bei rund $0,30 (ohne Grundgebühr), wenn man mit $25 pro 1.000.000 Zeichen rechnet.
 
OpenAI (tokenbasiert, Beispiel: gpt-4.1)
OpenAI rechnet Input- und Output-Tokens getrennt ab. Wenn man für einen Übersetzungslauf beispielhaft mit 5.000 Input-Tokens + 5.000 Output-Tokens kalkuliert, landet man überschlagen bei etwa $0,05 pro Sprache. (Die tatsächlichen Tokenzahlen schwanken je nach Textlänge und Kontext.)
 
Google Gemini (tokenbasiert)
Auch hier werden Input und Output getrennt abgerechnet. Mit der gleichen Beispielrechnung (5k/5k) liegt man überschlagen bei rund $0,056 pro Sprache.
 
Claude (Anthropic, tokenbasiert, Beispiel: Sonnet)
Mit 5k/5k als grobem Richtwert kommst du überschlagen auf etwa $0,09 pro Sprache.
 
Perplexity (tokenbasiert, Sonar-Modelle)
Die Preisspanne liegt je nach Modell ähnlich wie bei Claude Sonnet. Bei einem vergleichbaren 5k/5k-Szenario ergibt sich ein ähnlicher Größenbereich.
 
Was die Kosten in der Praxis nach oben zieht
• sehr lange Beschreibungen und viele Zusatztexte (IAP, Abos, Review-Notizen, Custom Felder)
• mehrere Iterationen pro Sprache (umformulieren, kürzen, Ton ändern)
 •unnötig viel Kontext, der bei jedem Lauf erneut mitsendet wird
 
Praxis-Tipp
 
Für Updates ist meist am günstigsten: nur fehlende oder geänderte Einträge übersetzen, statt jedes Mal alle Sprachen komplett neu zu erzeugen.

Wie steht es um Datenschutz und Sicherheit?

BetterLocale Code ist so gebaut, dass deine Lokalisierungsdaten grundsätzlich lokal auf deinem Mac bleiben. Projektdateien, Sprachinhalte und deine Arbeitsstände werden nicht automatisch an externe Dienste übertragen und es gibt keine „heimliche“ Synchronisation im Hintergrund.

Netzwerkzugriffe passieren nur dann, wenn du sie aktiv auslöst. Das betrifft vor allem KI-Funktionen wie Übersetzen oder der integrierte Chat. Wenn du diese Funktionen nicht nutzt, arbeitet BetterLocale Code vollständig offline im Sinne von „ohne externe Requests“.

API-Keys werden nicht in Projektdateien gespeichert, sondern ausschließlich lokal im macOS-Schlüsselbund (Keychain). Damit liegen sie nicht als Klartext irgendwo im Dateisystem und werden auch nicht mit Exporten, Backups oder Projektordnern „mitgeschleppt“.

Was wird bei KI-Nutzung übertragen?

Wenn du eine KI-Funktion startest, sendet BetterLocale Code nur die Daten, die für die konkrete Anfrage erforderlich sind, typischerweise:

a) die ausgewählten Einträge (Key-Value-Paare) bzw. nur leere/geänderte Felder, je nach Einstellung

b) der von dir vorgegebene Kontext (z. B. Tonalität, Zielgruppe, Zusatzhinweise)

c) technische Metadaten, die für das Format nötig sind (z. B. gewünschtes Ausgabeformat)

Du entscheidest dabei selbst, welche Einträge übersetzt werden und ob du z. B. nur fehlende Übersetzungen übertragen möchtest. Wenn du besonders sensible Inhalte in Strings hast, kannst du diese gezielt ausschließen oder nur manuell bearbeiten.

Wichtig zu wissen: Sobald du einen externen KI-Anbieter nutzt, gelten dessen Bedingungen. Das betrifft insbesondere die Verarbeitung der Inhalte, Logging, Speicherfristen und mögliche Datenübermittlungen in andere Länder. Für die rechtlichen Details (inklusive möglicher Drittland-Transfers) ist die Datenschutzerklärung des jeweiligen Anbieters maßgeblich.

Was ist der Unterschied zu BetterLocale Store?

Die beiden Apps lösen zwei unterschiedliche Lokalisierungsaufgaben, die in der Praxis oft getrennt voneinander laufen.

BetterLocale Code ist für die Lokalisierung im Xcode-Projekt gedacht. Du verwaltest dort die Texte, die später in der App angezeigt werden, also UI-Strings, Meldungen, Button-Titel, Fehlertexte usw. Technisch arbeitet BetterLocale Code mit den typischen Xcode-Formaten wie .xcstrings, .strings und kompletten .lproj-Strukturen. Ziel ist, dass deine App zur Laufzeit in jeder Sprache die richtigen Texte anzeigt und dein Projekt sauber bleibt.

BetterLocale Store kümmert sich dagegen um die App-Store-Texte rund um deine App. Das sind Inhalte, die du in App Store Connect pflegst, zum Beispiel App-Name, Untertitel, Werbetext, Beschreibung, Keywords, „Neues in dieser Version“, URLs, App-Datenschutz, Game Center, In-App-Käufe, Abos und weitere Metadaten. Diese Texte steuern, wie deine App im Store erscheint und gefunden wird, und sie ändern sich oft pro Release oder pro Markt.

Viele nutzen beide Tools zusammen, weil sie sich perfekt ergänzen:

Mit BetterLocale Code hältst du die App-Texte im Projekt konsistent, und mit BetterLocale Apps hältst du die Store-Metadaten in mehreren Sprachen sauber, ohne dich durch App Store Connect klicken zu müssen.

Ist BetterLocale Code eher für Indie-Devs oder Teams?

BetterLocale Code funktioniert sowohl für Einzelentwickler als auch für Teams, aber der Nutzen zeigt sich in unterschiedlichen Punkten.

Für Indie-Devs ist es vor allem ein Produktivitäts-Tool: Du hast alle Lokalisationsdateien zentral im Blick, findest fehlende Übersetzungen sofort, kannst schnell importieren, bearbeiten und wieder ins Projekt exportieren und sparst dir das Herumklicken durch Xcode, Ordner und einzelne Dateien. Gerade bei vielen Sprachen oder häufigen Textänderungen hilft das enorm, weil du Fehlerquellen reduzierst und Releases stabiler werden.

Für Teams ist BetterLocale Code ebenfalls sinnvoll, wenn ihr eine klare Arbeitsweise habt, wie Lokalisationsdateien gepflegt und ins Repo eingecheckt werden. Die App ersetzt allerdings kein Collaboration- oder Review-System. Es gibt typischerweise keine gleichzeitige Bearbeitung mit Merge, keine Konfliktauflösung und keine Rollen oder Freigabeprozesse innerhalb der App. Wenn mehrere Personen parallel an denselben Strings arbeiten, sollte das über euren Prozess laufen.

In der Praxis klappt Teamarbeit gut, wenn ihr zum Beispiel:

a) Lokalisierungsänderungen über ein Git-Repo laufen lasst (PRs, Reviews, klare Ownership)

b) festlegt, wer Keys anlegt und wer Übersetzungen pflegt

c) Änderungen gebündelt pro Feature oder Release eincheckt

d) bei Bedarf mit Exports/Backups und klaren Ständen arbeitet, damit nichts auseinanderläuft

Kurz: Solo bringt es dir Geschwindigkeit und Ordnung. Im Team passt es gut, wenn ihr ohnehin über Git und Reviews arbeitet und Zuständigkeiten klar sind.

Impressum / Datenschutz

Anbieter:

Christian Drapatz
Kämpenstraße 42
45147 Essen
Deutschland

Umsatzsteuer-Identifikationsnummer
gemäß § 27a UStG:

DE 209354422

Kontakt

E-Mail: support (at) onetwoapps.com
Telefon: +49 (0) 171 7849462 (nur geschäftliche Anfragen)
Web: https://www.onetwoapps.com

Hinweis

BetterLocale Code ist eine macOS-App und wird über den Apple App Store vertrieben und verkauft.