Änderungsprotokoll

Was wurde veröffentlicht und was kommt als Nächstes.

Als Nächstes Roadmap

  • Screenshots in der Überprüfung

    Sehen Sie, wo ein String in der App erscheint, während Sie seine Übersetzung überprüfen.

  1. v0.33.4

    11. November 2026

    Astro: Text in Frontmatter-Konstanten und Symbole, die aus dem Button-Text weggelassen wurden

    • Astro: Text, der in Frontmatter-Konstanten beibehalten wird, wie Metadaten einer Seite oder eine Liste von Karten (const items = [{ title, description }]), wird zu t(), wo er geschrieben wird. Listen innerhalb von Listen und Template-Literale mit Werten sind enthalten. Eine Konstante, die das Frontmatter für seinen Text liest, bleibt wie geschrieben
    • Ein Symbol vor oder nach dem Text eines Buttons, wie ein <svg>-Pfeil, bleibt außerhalb der Nachricht, sodass der Text für sich allein übersetzt wird, anstatt in einem <Trans> mit dem Symbol darin
  2. v0.33.3

    11. November 2026

    Ein gehosteter MCP-Server mit OAuth-Anmeldung

    • Ein gehosteter MCP-Server unter https://uselocalize.dev/api/mcp für Agents, die kein npx ausführen können. Er hat die gleichen Werkzeuge. Jeder Aufruf trägt die Dateien, die das Werkzeug benötigt, und erhält die zu schreibenden Dateien zurück; sie werden in einem temporären Ordner für diesen Aufruf aufbewahrt und gelöscht, wenn er antwortet
    • Clients, die die MCP-Anmeldung unterstützen, verbinden sich mit OAuth: Sie genehmigen die Verbindung auf localize.dev und wählen den Arbeitsbereich aus. Die Verbindung erscheint unter API-Schlüsseln, und das Löschen des Schlüssels trennt sie. Andere senden einen API-Schlüssel als Bearer-Token oder in einem x-api-key-Header
    • Die MCP-Seite enthält die Einrichtung für Lovable, Bolt und v0, und der Server ist auch im MCP-Registry als Remote-Server aufgeführt
    • Das Paket exportiert handleRemoteMessage und REMOTE_TOOLS, die Werkzeuge des gehosteten Servers, um denselben Server woanders auszuführen
  3. v0.33.2

    10. November 2026

    Plugins für Claude Code und Cursor und eine Auflistung im MCP-Registry

    • Ein Claude Code Plugin fügt den MCP-Server und eine Fähigkeit hinzu, die Claude sagt, wann lokalisiert werden soll. Installieren Sie es mit claude plugin marketplace add ufortstephen/localize-dev, dann claude plugin install localize-dev@uselocalize
    • Dasselbe Plugin funktioniert in Cursor, mit einer Regel für Apps, die eine localize.config.json haben
    • Der MCP-Server ist im MCP-Registry unter io.github.ufortstephen/localize-dev aufgeführt, sodass Clients, die das Registry lesen, ihn finden und installieren können
  4. v0.33.1

    10. November 2026

    Create React App-, Compose Multiplatform- und XcodeGen-Projekte

    • React-, React Native- und Solid-Projekte, die JSX in .js-Dateien belassen, wie es Create React App tut, lassen diese Dateien ebenfalls scannen. Zuvor wurden nur .tsx- und .jsx-Dateien gescannt, es sei denn, include listete .js auf
    • check meldet fehlende Übersetzungen in String Catalogs, strings.xml und ARB-Dateien, wenn das Projekt keine JSON-Quelldatei hat. Zuvor tat es das nur für die .po-Kataloge von Django und meldete alles andere als übersetzt
    • Projekte, die ihr Xcode-Projekt mit XcodeGen (project.yml) oder Tuist (Project.swift) generieren, werden als iOS-Apps erkannt
    • Compose Multiplatform-Strings in composeResources/values/ werden gefunden und auf die gleiche Weise wie Androids res/values/ übersetzt
    • Dateien in __tests__- und __mocks__-Ordnern werden standardmäßig übersprungen, ebenso wie .test- und .spec-Dateien
  5. v0.33.0

    10. November 2026

    localize-dev seo, Remix und auf dem Server geladene Sprachen

    • localize-dev seo <url> prüft, was Suchmaschinen von jeder Sprache auf einer Live-Website oder einem lokalen Build sehen: die Sitemap, hreflang-Links, die zurückverweisen und x-default enthalten, <html lang>, die kanonische Adresse und og:locale
    • Remix 2 Apps mit v3_routeConfig erhalten eine Adresse pro Sprache, genau wie React Router Apps.
    • React Router und Remix Apps mit mehr als drei Sprachen laden jede Sprache im Loader der Route, sodass der Server /fr/about auf Französisch rendert, auch wenn Französisch nicht im Bundle enthalten ist. Vollständige hreflang-Adressen kommen von der Anfrage, sodass siteUrl nicht benötigt wird.
    • Ohne siteUrl kommt die Adresse der Website aus einer CNAME-Datei oder der Homepage in package.json, und auf Netlify, Render und Railway von der Adresse, die der Host dem Build gibt, wie es auf Vercel bereits der Fall war.
    • Qwik City Seiten erhalten <html lang> und dir für die Sprache ihrer Adresse, gesetzt in entry.ssr.tsx.
    • Wenn Sprachen bei Bedarf geladen werden, listet das Sprachmenü alle auf, nicht nur die bisher geladenen.
    • check meldet keine Klassennamen oder Schlüssel mehr in Codebeispielen, die als Strings geschrieben sind, zentrierte Elemente (left-1/2 mit -translate-x-1/2) als Probleme von rechts nach links oder Schriftarten, deren Teilmengen das Skript abdecken.
  6. v0.32.1

    10. November 2026

    Django, ERB und Blade: Vorlagen-Tags zwischen Attributen

    • Ein Vorlagen-Tag zwischen den Attributen eines Tags, wie z. B. ein if-Block, der aria-current hinzufügt, lässt die Prüfung den Rest des Tags nicht mehr als Text melden. Ein Titel oder aria-label innerhalb des Blocks wird gefunden und übersetzt
    • Ein Link wird nur dann Teil der Nachricht eines Satzes, wenn Wörter direkt daneben stehen. Zuvor verwandelte ein Trennzeichen wie · oder Text an anderer Stelle im Block einen einzelnen Link in eine Nachricht
    • Optionen ohne ein value-Attribut bleiben unverändert, da ihr Text vom Formular übermittelt wird
    • Überprüfen Sie Berichte über leere und unscharfe Einträge in den .po-Katalogen eines Django-Projekts, wenn es keinen englischen Katalog hat, was bei den meisten Django-Projekten der Fall ist. Zuvor wurde alles als übersetzt angezeigt
    • doNotTranslate in localize.config.json listet Namen und Abkürzungen auf, die beibehalten werden sollen, wie Metron oder TPB. Text, der nur aus ihnen, Zahlen und Symbolen besteht, wird weder extrahiert noch von der Prüfung gemeldet
  7. v0.32.0

    10. November 2026

    Eine Adresse pro Sprache in React Router

    • React Router-Apps (Framework-Modus) erhalten eine Adresse pro Sprache (/es/about). routes.ts übergibt seine Routen über withLanguageRoutes, das eine Kopie jeder unter jeder Sprache hinzufügt, sodass sich keine Routendatei ändert
    • Der Server rendert jede Seite in der Sprache ihrer Adresse, mit hreflang-Links, einer kanonischen Adresse und og:locale. Das Sprachmenü öffnet dieselbe Seite in der neuen Sprache, und Links ohne Sprache behalten die Sprache der Seite bei
    • Eine sitemap.xml-Route, die aus den Routen der App erstellt wird, sodass neue Seiten ohne Ausführung aufgelistet werden, und eine robots.txt-Route, wenn die App keine davon hat
    • Das i18n-Modul befindet sich in app/ und wird aus app/root.tsx importiert. Zuvor konnte das Setup die Einstiegsdatei einer React Router-App nicht finden
    • Die Prüfung wird nicht mehr mit einem Fehler abgebrochen, wenn eine Klassenliste eine Variante ohne nachfolgende Klasse enthält, z. B. cn(active && 'hover:', 'ml-2')
  8. v0.31.0

    10. November 2026

    SvelteKit 3, Qwik City und jede Sprache auf statischen SvelteKit-Websites

    • SvelteKit 3 funktioniert: Es hat kein $lib, daher importieren die generierten Dateien von #lib, wenn die App es deklariert. Ein Root-Layout mit typisierten Props, wie npx sv create es schreibt, ist ebenfalls eingerichtet.
    • In SvelteKit behalten Links zu eigenen Seiten der App die Sprache der Seite bei, auf der sie sich befinden. Daher verlinkt /es/about zu /es/ statt zu /.
    • Statische SvelteKit-Builds (adapter-static) schreiben die Seiten jeder Sprache: Der Build läuft unter der Adresse in siteUrl, sodass er sie über die hreflang-Links findet.
    • Qwik City-Apps erhalten eine LanguageHead-Komponente in root.tsx mit hreflang-Links und og:locale, eine sitemap.xml-Route und eine robots.txt-Route, wenn die App keine davon hat.
    • Die Astro-Sitemap verwendet dieselben Adressen wie die Seiten (/about/ in einem statischen Build), sodass sie mit ihren kanonischen Links übereinstimmt.
  9. v0.30.0

    10. November 2026

    Eine Sitemap für statische Websites

    • Statische HTML-Websites mit htmlPages und siteUrl erhalten eine sitemap.xml, die jede Seite auflistet, die übersetzten in jeder Sprache mit hreflang-Links dazwischen. Sie wird bei jeder Ausführung neu geschrieben, aber eine sitemap, die die Website bereits hat, bleibt unverändert
    • Eine robots.txt, die auf die Sitemap verweist, wenn die Website keine hat
    • Zwei Formulierungen auf der deutschen Website, aus einer Überprüfung ihrer Übersetzungen
  10. v0.29.0

    10. November 2026

    Jede Sprache in Suchergebnissen, für Astro und SvelteKit

    • SvelteKit-Apps erhalten eine Adresse pro Sprache (/es/about) über einen Reroute-Hook, sodass Routen keinen [lang]-Ordner benötigen. Jede Seite erhält hreflang-Links, eine kanonische Adresse und og:locale, und das Sprachmenü wechselt zur selben Seite in der neuen Sprache. Dies erfordert SvelteKit 2.3 oder neuer
    • Astro-Layouts erhalten eine I18nHead-Komponente in ihrem <head>, mit hreflang-Links, einer kanonischen Adresse und og:locale für die Seite
    • Beide erhalten eine sitemap.xml, die jede Seite in jeder Sprache auflistet. Sie wird aus dem Seiten- oder Routenordner erstellt, sodass neue Seiten angezeigt werden, ohne localize erneut auszuführen. Eine robots.txt wird hinzugefügt, wenn die App keine davon hat
  11. v0.28.0

    10. November 2026

    Jede Sprache in den Suchergebnissen

    • Next.js App Router-Apps erhalten eine kanonische Adresse und og:locale für die URL jeder Sprache, hinzugefügt durch generateMetadata im Root-Layout. Die eigenen Metadaten eines Layouts bleiben erhalten und seine Werte gewinnen
    • Eine sitemap.ts, die jede Seite mit einer festen Adresse in jeder Sprache mit hreflang-Alternativen auflistet, und eine robots.ts, die darauf verweist. Sie werden nur geschrieben, wenn die App keines von beiden hat, und Sie können sie bearbeiten
    • Suchmaschinen benötigen vollständige Adressen: Sie stammen von siteUrl in localize.config.json oder von VERCEL_PROJECT_PRODUCTION_URL auf Vercel
    • Zuvor eingerichtete Apps erhalten all dies bei ihrer nächsten Ausführung
  12. v0.27.0

    9. November 2026

    Lokalisieren Sie beim Schreiben

    • init --agent richtet Coding-Agenten ein: den MCP-Server für Claude Code und Cursor, einen After-Edit-Hook, der Claude Code mitteilt, welcher Text im gerade bearbeiteten Datei unübersetzt geblieben ist, sowie Anweisungen in AGENTS.md und eine Cursor-Regel.
    • check und run nehmen --files, --changed und --staged entgegen, sodass das Überprüfen der von Ihnen berührten Dateien etwa eine Sekunde dauert; init --agent --pre-commit fügt diese Überprüfung dem Git-Hook hinzu.
    • Der MCP-Server bittet Agenten, die von ihnen geänderten Dateien zu lokalisieren, und sein Prüfwerkzeug nimmt Pfade entgegen.
    • Die Nutzungsseite zeigt an, wo Zeichenfolgen übersetzt wurden: während des Schreibens, in CI oder von der CLI.
  13. v0.26.6

    9. November 2026

    Korrekturen im Pull Request bleiben erhalten

    • Wenn der Basis-Branch weiterläuft und der Pull Request neu aufgebaut wird, bleiben die Änderungen erhalten, die darin gemacht wurden. Sprachdateien werden Schlüssel für Schlüssel zusammengeführt, und bei einer Übersetzung, die beide Seiten geändert haben, gilt die Version der Person
    • Eine Datei, die auch der neue Vorschlag geändert hat, bekommt die Version des Vorschlags, und der Lauf nennt diese Dateien, damit die Änderung erneut gemacht werden kann
    • Die Website schreibt Zahlen und Preise so, wie jede Sprache es tut: 10.000 auf Deutsch, 10 000 auf Französisch
  14. v0.26.5

    4. November 2026

    Rechts nach links ab dem ersten Rendern in Next.js-Apps

    • Next.js-Apps erhalten <html dir> aus der Sprache, sodass Arabisch, Hebräisch und Persisch ab dem ersten Rendern von rechts nach links laufen; früher eingerichtete Apps bekommen es beim nächsten Lauf
    • Eine Sprache, deren Code direkt nach einer Liste auch ein Wort ist (it, no), wird trotzdem hinzugefügt, und das Wort bleibt unverändert
  15. v0.26.4

    4. November 2026

    Sprachen, deren Code auch ein Wort ist

    • Eine neue Sprache kommt in jede erzeugte Liste, der sie fehlt, auch wenn ihr Code anderswo in der Datei ein Wort ist (it für Italienisch, no für Norwegisch)
    • Die Website: Arabisch läuft ab dem ersten Laden von rechts nach links, und Kopfzeile und Menüs folgen der Leserichtung
  16. v0.26.3

    4. November 2026

    Neue Sprachen erscheinen im Sprachmenü der App

    • Eine nach der Einrichtung hinzugefügte Sprache kommt in die Listen, die localize.dev erzeugt hat: Sprachmenü, Routing, Importe und Umschalter-Tabellen, mit eigenem Namen, eigener Flagge und Schreibrichtung
    • Astro und Qwik erhalten für die neue Sprache eine Kopie jeder Seite, Django seine .po-Datei
  17. v0.26.2

    4. November 2026

    Sprachen beim Ausführen wählen

    • Jetzt ausführen fragt, in welche Sprachen übersetzt werden soll: Eine hinzugefügte Sprache wird Teil des Projekts, in diesem Lauf übersetzt und im Pull Request zu localize.config.json hinzugefügt
    • Jeder Lauf der Action übersetzt in die Sprachen des Projekts im Dashboard, sodass eine dort hinzugefügte Sprache keine Änderung am Workflow mehr braucht
  18. v0.26.1

    3. November 2026

    Zielsprachen über das gesamte Konto gezählt

    • Die Zielsprachen eines Plans werden über alle seine Arbeitsbereiche gezählt: jede Sprache, in die in den letzten 30 Tagen übersetzt wurde oder die in einem Projekt eingestellt ist. Ein Lauf, der das Limit überschreiten würde, stoppt, bevor etwas geschrieben wird, und nennt die verwendeten Sprachen
    • localize-dev whoami zeigt, wie viele der Zielsprachen des Plans verwendet werden, und welche
  19. v0.26.0

    3. November 2026

    Ein MCP-Server für Coding-Agenten und im Pull Request geprüfte Übersetzungen

    • localize-dev mcp: ein MCP-Server für Coding-Agenten wie Claude Code, Cursor, Codex und GitHub Copilot, mit den Tools check, localize, translate, add_language und config
    • Das Konfigurationstool enthält das Glossar des Projekts, wenn ein API-Schlüssel festgelegt ist, sodass der Agent Namen und Begriffe wie vom Team entschieden beibehält
    • Pull Requests erhalten einen Kommentar mit einer Tabelle der neuen Übersetzungen, gepostet von der GitHub-App oder von der Action, wenn das Repository die App nicht verwendet
    • Übersetzungen, die im Pull Request bearbeitet wurden, bevor er zusammengeführt wird, werden für die nächsten Durchläufe in jedem Locale-Format und für Pluralformen gelernt und in der Überprüfung als „Auf GitHub bearbeitet“ markiert
  20. v0.25.0

    3. November 2026

    Sprachumschalter für jedes Framework

    • Die Einrichtung fügt Vue-, Nuxt-, Svelte-, Solid-, Qwik-, Angular-, Astro-, Lit- und Ember-Apps ein Sprachmenü und useLanguage() hinzu, neben dem erzeugten i18n-Modul
    • Rails, Django und Laravel erhalten ein Sprachmenü für ihre Templates, das die Auswahl speichert; Flutter, iOS, Android und React Native ein natives
    • localize-dev/switcher: das Menü als Custom Element, gestaltet mit denselben CSS-Variablen wie das React-Menü
    • Die automatische Einrichtung lädt das Repository nicht mehr herunter und wird so auch bei großen Monorepos fertig
  21. v0.24.6

    3. November 2026

    Automatische Einrichtung und die Action, für Apps in einem Monorepo

    • Automatisch einrichten findet die App in einem Monorepo (den Ordner mit einer localize.config.json) und führt den Workflow dort mit working_directory aus
    • Im Stammverzeichnis eines Monorepos nennt die Action für jede App das zu setzende working_directory statt cd-Befehlen
  22. v0.24.5

    3. November 2026

    Pull Requests von der localize.dev GitHub App, und ignorierte Dateien bleiben unberührt

    • Die localize.dev GitHub App öffnet die Pull Requests der Action in verbundenen Repositories: keine Workflow-Berechtigung zum Ankreuzen, und die Checks der Pull Requests laufen
    • Texte in einem Modul, das die Konfiguration ignoriert, bleiben wie geschrieben, auch wenn eine Komponente sie liest
  23. v0.24.4

    3. November 2026

    Eine App im Monorepo: working_directory in der Action

    • Monorepos: working_directory in der Action lokalisiert eine einzelne App (apps/web), und ihr Pull Request ändert die Dateien an Ort und Stelle
    • mode: check in einem Arbeitsverzeichnis annotiert jedes Problem mit seinem Pfad ab dem Repository-Stamm, sodass es im Diff erscheint
  24. v0.24.3

    31. Oktober 2026

    Ein Paket, das sich leichter prüfen lässt: kein ausgewerteter Code, lesbare Dateien und Installationen ohne Skripte

    • gettext-Plural-Forms werden von einem kleinen Parser ihrer eigenen Grammatik gelesen, statt als Code ausgewertet zu werden
    • Das npm-Paket ist nicht minifiziert: Was veröffentlicht wird, liest sich wie der Quellcode
    • Template-Compiler sind optionale Peer-Abhängigkeiten; sie werden beim ersten Gebrauch ohne Paket-Skripte installiert, mit LOCALIZE_DEV_NO_INSTALL=1 gar nicht
  25. v0.24.2

    31. Oktober 2026

    Upgrades, die grün bleiben: alte Vue-Lock-Einträge, Repositorys nur mit Sprachdateien, Monorepo-Locks und klarere Übersetzungs-Pull-Requests

    • Upgrade: Vue- und Nuxt-Pipe-Plurale in einer von 0.23.0 geschriebenen Lock-Datei gelten als aktuell, check bleibt also grün und kein Pull Request schreibt die Lock-Datei neu
    • check (CLI und Action) prüft in einem Repository mit nur Sprachdateien deren Übersetzungen, statt an einem fehlenden src/-Ordner zu scheitern
    • Monorepos: Der erste run --workspaces trägt die Meldungen der gemeinsamen Bibliotheken in die Lock-Datei jeder App ein, sodass der zweite Lauf nichts ändert
    • Ein Pull Request, der nur Übersetzungen ergänzt, trägt einen passenden Titel (fill in 3 translation(s)) und listet die Meldungen je Sprache auf
    • translate fragt noch einmal nach, wenn ein Plural ohne seine Formen zurückkommt, statt die Sprache dem nächsten Lauf zu überlassen
  26. v0.24.1

    31. Oktober 2026

    Action-Korrekturen aus der CI: Astro, Projekte im Wurzelverzeichnis und statische Websites öffnen ihren Pull Request, ein Lauf kann nicht hängen bleiben, und Vue-Pipe-Plurale werden ausgefüllt

    • React: i18next wird auch dann eingerichtet, wenn der Lauf es selbst für Datums- und Zahlenformate importiert, sodass die App ihre Texte statt der Schlüssel zeigt
    • Monorepos: check und prune zählen die Schlüssel, die die Workspace-Bibliotheken einer App verwenden, und prune --workspaces deckt jede App und Bibliothek ab
    • Action: Projekte mit Code im Wurzelverzeichnis des Repositorys öffnen ihren Pull Request (Pfade ohne ./), Astro-Seiten werden umgeschrieben (der WASM-Compiler wird mit der Action ausgeliefert), und eine statische Website ohne Konfiguration wird wie in der CLI im Wurzelverzeichnis gescannt
    • Action: Ein Lauf stoppt nach timeout_minutes (standardmäßig 30) und schlägt fehl, statt zu hängen, und eine Datei, deren Parser nicht lädt, lässt den Lauf fehlschlagen, statt übersprungen zu werden
    • Vue: run füllt Pipe-Plurale (only {count} copy left | …) mit allen Formen, die die Sprache braucht, und run, translate und check sind sich einig, was fehlt oder veraltet ist
  27. v0.24.0

    29. Oktober 2026

    Zweite Läufe, die nichts ändern, keine Anfragen ohne neue Texte und ein Check für Offline-Workflows

    • Ein zweiter Lauf übernimmt nur neue Texte: Sortierungen und Datumsangaben in Vue-Skripten folgen schon beim ersten Lauf der Sprache der App, %@-Meldungen eines String Catalog bringen einen iOS-Lauf nicht mehr zum Stehen, und pseudolokalisierte statische Seiten werden nicht erneut gescannt
    • Keine Übersetzungsanfrage, wenn es nichts zu übersetzen gibt: Texte mit Schlüssel und allen Übersetzungen werden übersprungen, und Offline-Läufe sagen, dass sie nur Schlüssel anlegen
    • Titel und Zusammenfassung des Pull Requests sagen, was er ändert, etwa Datums- und Zahlenformate, die jetzt der Sprache der App folgen, ohne leere Tabellen
    • check und prune zählen Seitentitel und -beschreibung, die das generierte i18n-Modul setzt, als verwendet, in jedem Framework
    • Action: check_only: strings prüft nur auf fest eingebaute Texte, für Workflows, die offline lokalisieren
    • Flutter: n == 0 ? 'Nichts zu gießen' : '$n Pflanzen brauchen Wasser' wird zu einer Pluralnachricht mit =0, und mit + zusammengesetzter Text wird aufgelistet und lässt check fehlschlagen, statt übersprungen zu werden
    • Übersetzungen werden vor dem Schreiben so geprüft, wie die i18n-Bibliothek der App sie liest: gleiche Platzhalter, keine überzähligen Klammern, alle Pluralformen, gültiges ICU. Eine fehlerhafte wird erneut angefragt, dann weggelassen und gemeldet
    • check ignoriert t()-Aufrufe in Kommentaren in jeder Sprache, und generierte Dateien zeigen keine schlüsselartigen Beispiele mehr; neue gettext-Kataloge erhalten den Standard-Header
  28. v0.23.0

    29. Oktober 2026

    Rails, Django und Laravel: Sätze mit Links bleiben ganz, und Monorepo-Bibliotheken bauen mit pnpm

    • Rails: Ein Ausdruck, der in ein Argument von t() wandert, bekommt die Klammern, die Ruby braucht (link_to(book.title, book_path(book.id))), damit Views kompilieren
    • Rails: Eine Nachricht, die einen Link oder anderes HTML einsetzt, bekommt einen _html-Schlüssel, damit der Link angezeigt statt escaped wird
    • Ein Link in einem Satz bleibt in seiner Nachricht: link_to in Rails, ein einziges blocktranslate in Django (das {% url %} vorher erfasst) und {!! __() !!} mit escapten Werten in Laravel
    • Monorepos: Eine Komponentenbibliothek deklariert, was ihr umgeschriebener Code importiert (react-i18next), als Peer- und Dev-Abhängigkeit, und ihre Dateien werden Client-Komponenten, wenn eine Next.js-App sie rendert
    • Ember: @glimmer/tracking und @ember/test-helpers, die ember-intl braucht, ohne sie zu deklarieren, werden ergänzt, wenn die App sie nicht hat
  29. v0.22.0

    29. Oktober 2026

    Apps, die nach der Lokalisierung bauen: Svelte-Links bleiben ganz, Angular-Module mit der richtigen Pipe, SvelteKit-Code, der die Typprüfung besteht

    • Svelte- und Vue-Vorlagen werden jetzt analysiert, sodass ein Platzhalter ${ … } innerhalb eines Attributs nie mit einem Preis verwechselt wird und URL-Attribute (href, src, action) nie einen erhalten
    • Angular: NgModules und Standalone-Komponenten importieren die Übersetzungs-Pipe der installierten ngx-translate-Version (ab 16 TranslatePipe), und ein TranslateModule, das ein früherer Lauf mit ngx-translate 18 hinterlassen hat, wird repariert
    • SvelteKit: generierter Code besteht die Typprüfung; Datumsangaben nutzen $locale ?? undefined, I18nT.svelte hat typisierte Props, und das Root-Layout folgt der Sprache nach einer Navigation ohne Warnung
    • package.json behält sein Format: neue Abhängigkeiten übernehmen den Stil der umliegenden Zeilen, statt dass die ganze Datei neu geschrieben wird
  30. v0.21.0

    29. Oktober 2026

    Jede SvelteKit-Anfrage in ihrer eigenen Sprache, Astro-Sätze am Stück und Versionsnummern als Werte

    • SvelteKit rendert und übersetzt jede Anfrage in ihrer eigenen Sprache: der Hook legt sie in event.locals ab, Servermeldungen bekommen sie übergeben, und nichts auf dem Server liest die gemeinsame Sprache von svelte-i18n
    • Astro-Sätze mit Links und fettem Text bleiben eine Meldung, gerendert mit den Elementen der Seite
    • Versions- und Build-Nummern im Text sind Werte, Version {version} (build {build}), damit ein Release nicht jede Übersetzung veralten lässt
    • check listet, was run nicht übersetzen kann, einmal unter einer einzigen Warnung
  31. v0.20.0

    29. Oktober 2026

    Meldungen aus dem Code, Seitenbeschreibungen und Servermeldungen überall übersetzt, und nichts wird stillschweigend übersprungen

    • Text, den run nicht übersetzen kann, wird immer aufgelistet und lässt check fehlschlagen: Text einer Hilfsfunktion in einem Modul, Listen von Sätzen und Elemente außerhalb von Komponenten in Solid und Qwik
    • alert, confirm, document.title und Toasts werden in Lit, Angular, Ember, React Native (Alert.alert und seine Buttons), Androids Java und den eigenen Skripten einer statischen Website übersetzt
    • Seitenbeschreibungen und Social-Titel in <meta> werden in jedem Framework neben dem Seitentitel übersetzt, ebenso useHead und useSeoMeta in Nuxt
    • Meldungen aus fail() und error() in SvelteKit und aus useActionState in Next werden übersetzt
    • Angular-Tabellen, die über computed() gelesen werden, Startwerte von @state in Lit und per Index gelesener Text (quotes[i].text) werden übersetzt
    • check findet Text und Links/Rechts-Stile in Lits css`` und in styled-components
  32. v0.19.0

    29. Oktober 2026

    Head-Exporte von Qwik-Routen, Konstanten, die an andere Komponenten gehen, und ein check, der erkennt, was run überspringt

    • Head-Exporte von Qwik-City-Routen werden übersetzt: export const head wird zu einer Funktion der Seiten-URL, mit Titel und Beschreibung in der Sprache dieser Seite
    • Text-Konstanten, die als Ganzes weitergegeben werden (useState(TASKS), data={TASKS}), werden mit t() in der einen Komponente aufgebaut, die sie liest, und behalten ihren Typ
    • Konstanten, die nicht verschoben werden können, weil sie im Code verglichen werden, eine Abhängigkeit eines Effekts sind oder von zwei Komponenten gelesen werden, werden mit dem Grund gemeldet
    • check schlägt bei Text fehl, den run überspringen musste, mit dem Grund von run; Vorlagensyntax und andere absichtlich übersprungene Stellen bestehen weiterhin
    • Klassenlisten mit einwortigen Utilities (border border-outline), Dateipfade und nach Sprachcode geordnete Listen zählen nicht mehr als Text
  33. v0.18.0

    29. Oktober 2026

    Text in jedem Feld, das eine Komponente rendert, Seitentitel über Helfer und eine URL pro Sprache neben Ihrem eigenen Proxy

    • Text in jedem Feld, das eine Komponente rendert, zählt, nicht nur Beschriftung und Titel (ROWS.map(({ task, manual }) => …)); IDs, Links und Slugs niemals
    • Eine Liste, die auch mit length, findIndex, some oder includes abgefragt wird, wird trotzdem verfolgt, solange diese Abfragen ihren Text nicht lesen
    • Seitentitel, die über einen Helfer gesetzt werden, export const metadata = pageMetadata({ title: … }), werden ebenfalls übersetzt
    • Elemente, die außerhalb von Komponenten in Client-Dateien gehalten werden, werden mit <Trans> übersetzt, was keinen Hook benötigt
    • Apps mit einem eigenen proxy.ts erhalten i18n-proxy.ts: ein Aufruf dort gibt jeder Seite eine URL pro Sprache
    • Tailwind-Klassenlisten werden nicht mehr als unübersetzter Text gemeldet
  34. v0.17.0

    29. Oktober 2026

    Astro-Seiten vollständig gefunden, Vorlagenblöcke unverändert gelassen und Prüfung über ein Monorepo hinweg

    • Astro: Text nach einem Akzentbuchstaben oder einem geschweiften Anführungszeichen wird gefunden, ebenso jede Seite, deren <head> einen <title> hat
    • Astro-Layouts importieren das i18n-Modul einmal, mit t und der Sprache der Seite aus einer Zeile
    • Django-Kommentare, Verbatim- und Blocktranslate-Blöcke sowie Blade @verbatim- und @php-Blöcke bleiben wie geschrieben, sodass ein zweiter Durchlauf nichts ändert
    • Vue-Elemente mit v-pre bleiben wie geschrieben
    • check meldet nicht länger Text, der vor Ort übersetzt wurde: ein index.html-Titel, SwiftUI-Text im String Catalog und Django blocktranslate
    • check --workspaces (und der Action-Modus: check mit workspaces: true) prüft jede App in einem Monorepo
    • Monorepo-Pakete ohne UI, wie ein API-Server oder ein Utilities-Paket, werden übersprungen
  35. v0.16.0

    29. Oktober 2026

    Server-Komponenten über ihre Importe erkannt, und Texte in anderen Sprachen bleiben unverändert

    • Next.js: Komponenten außerhalb von app/ rendern so, wie ihre Importeure es tun; server-only-Komponenten warten auf den Übersetzer, und Komponenten, die beide Seiten importieren, werden zu Client-Komponenten
    • Next.js-Apps, die auch Svelte oder Vue installieren, werden als React erkannt, und mit Cache Components rendert das Root-Layout pro Anfrage
    • Inline <code> bleibt innerhalb seines Satzes, sodass der Satz eine Nachricht ist, die Übersetzer neu anordnen können
    • Text, der mit lang="…" in einer anderen Sprache markiert ist, und Listen mit einem Eintrag pro Sprache bleiben wie geschrieben
    • <Trans> gibt Ihren eigenen Komponenten ein typisiertes Ersatzkind, sodass Komponenten mit erforderlichen Kindern typgeprüft werden
    • Kopien, die über tsconfig-Aliase wie @/lib/nav importiert werden, werden befolgt
    • translate behält `inline code` wie geschrieben bei, füllt Pluralformen, die ein früherer Durchlauf ausgelassen hat, und meldet, wenn eine Sprache leer zurückkommt
    • Schlüssel enden nie wie eine Pluralform, und die Prüfung meldet fehlende Pluralformen einer Sprache
  36. v0.15.0

    28. Oktober 2026

    Der Text, der früher durchrutschte, Seitentitel und was nach dem Merge passiert

    • Regionale Sprachen werden aus dem Browser übernommen und Accept-Language: pt-PT erreicht das pt-BR der App, zh-cn sein zh-CN
    • Next.js-Metadaten werden zu generateMetadata mit dem Übersetzer der Anfrage; der Titel und die Beschreibung von index.html einer SPA folgen der Sprache
    • Monorepos: Komponentenbibliotheken werden mit den Apps übersetzt, die sie verwenden, ihre Nachrichten werden in die Locale-Dateien dieser Apps zusammengeführt
    • pluralize(word, count) aus dem pluralize-Paket ist ein Plural; durch Kommas getrennte Listen und „a, b und c“ werden zu Intl.ListFormat
    • Prüfung schlägt fehl bei Schlüsseln, die die Locale-Datei nicht enthält, und meldet Text in CSS und gespeicherte Werte, die unverändert angezeigt werden
    • ARIA-Wert, Rollen- und Beschreibungstext, SVG-Titel in statischem HTML und das Right-to-Left-Layout von React Native
    • Texte, die früher durchrutschten: Komponenten-Props wie Überschrift und Beschreibung, Nachschlagetabellen, Hilfsfunktionen und Texte, die aus Modulen wie nav.ts importiert wurden
    • Daten von date-fns, dayjs und moment folgen der Sprache der App, ebenso wie localeCompare und Groß-/Kleinschreibung
    • Nach dem Merge: Tests laden i18n in ihrer Setup-Datei, mehrsprachige React-Apps laden Locale-Dateien bei Bedarf und Locale-Dateien werden Schlüssel für Schlüssel zusammengeführt
    • Remix und React Router hydrieren ohne Abweichungen; prüfen Sie, ob Flags-Schriftarten die Buchstaben einer Zielsprache vermissen lassen
  37. v0.14.0

    28. Oktober 2026

    Pluralformen in jedem Framework, von Angular bis iOS

    • Pluralformen in Angular (ein generiertes pluralForm-Pipe), Django (pluralize to blocktranslate count), Laravel (trans_choice), Android (<plurals>) und iOS (String Catalog-Variationen)
    • Zwei Zählungen in einem Satz und Ordnungszahlen in Vue, Svelte, Astro, Lit, Ember und Angular; zwei Zählungen in Flutter, Rails, Laravel und Android
    • Vue und Svelte: Was berechnete Werte und Funktionen zurückgeben, wird übersetzt, und Listen, die an Kindkomponenten übergeben werden, werden übersetzt
    • Klassenkomponenten: Text vor dem return in render(), Konstruktoren und statische Methoden werden übersetzt
    • Pug: Inline-Tags innerhalb von Inline-Tags werden zu verschachtelten Nachrichten
    • Die GitHub Action scannt den eigenen Ordner jedes Frameworks (app/views, resources/views…) anstelle von immer src/
  38. v0.13.0

    28. Oktober 2026

    iOS, Markdown-Dokumentation, bearbeiteter Text neu übersetzt und der Text, der früher durchrutschte

    • iOS und macOS: SwiftUI- und UIKit-Kopien werden mit jeder Sprache in Localizable.xcstrings aufgenommen; UIKit-Zuweisungen werden zu String(localized:)
    • Android View-Code in Kotlin und Java (setText, label.text =) verwendet String-Ressourcen, wie Layouts und Compose
    • localize-dev übersetzt Inhalte aus Markdown und MDX in eine Version pro Sprache, wobei Code, Links und MDX unverändert bleiben
    • Bearbeiteter Text wird neu übersetzt: localize.lock.json merkt sich jede Ursprungsnachricht, und der Check scheitert bei veralteten Übersetzungen
    • Unbenutzte Schlüssel werden gemeldet und von localize-dev mit prune entfernt
    • Text in Konstanten, die von Komponenten gelesen werden, verbundene Zeichenfolgen, Setter, Toast- und Alert-Nachrichten sowie Validierungsnachrichten von zod/yup werden extrahiert
    • Geschlechtsspezifische Sätze werden zu einer Nachricht mit einer Variante pro Geschlecht
    • Rechtschreibende Sprachen: der Check meldet Links/Rechts-Stile, und localize-dev rtl --fix tauscht die sicheren gegen logische aus
    • Datumsangaben, Zahlen und Preise folgen der App-Sprache auch in Vue- und Svelte-Komponenten; mehr Währungssymbole und eine Einstellung für ein freistehendes $
    • React-Klassenkomponenten werden über withTranslation() übersetzt, und der eigene Titel eines Links bleibt im Satz enthalten
    • Vorschau-Pull-Requests umfassen jede App in einem Monorepo und lassen Git LFS-Dateien unberührt
    • Vue-Vorlagen in Pug werden übersetzt: Tag-, gepipte und Blocktexte sowie Attribute
    • Angular (vor Version 14) behält Sätze um Links herum intakt und NgModule-Komponenten erhalten den translate-Pipe über ihr Modul
    • Ein Satz mit zwei Zählungen erhält einen Plural pro gezähltem Ausdruck, und Ordinalzahlen (1., 2., 3. Platz) werden in die jeweilige Form der Sprache umgewandelt
    • Vue und Svelte: Konstanten, die der Template anzeigt (z. B. ein Titel, eine Liste von Tabs in v-for oder #each), werden zu Schlüsseln und können über oder $_() gelesen werden
    • Jede React-Klassenkomponente wird übersetzt: <Translation> um render(), wenn sie nicht das Standard-Export ist
    • Ein Link, dessen Titel aus Code gesetzt wird, bleibt im Satz; Pug-Tags wie #[inline] und #{values} werden übersetzt
  39. v0.12.0

    28. Oktober 2026

    Vorschau in Ihrem Repository, ein CI-Check, Pseudolokalisierung sowie Daten und Geld

    • Vorschau-Pull-Request: Verbinde ein Repository und localize.dev lokalisiert den Standardzweig auf dem Server (bis zu 200 Strings) und öffnet einen Pull Request ohne Workflow, Schlüssel oder Checkout
    • localize-dev Check (und der Modus der Action: check) scheitert bei CI, wenn der Text hartcodiert ist oder Übersetzungen fehlen, mit Anmerkungen auf dem Pull Request
    • --pseudo schreibt eine Pseudosprache en-XA (oder ar-XB, rechts nach links), um gekürzten und hartcodierten Text vor der Übersetzung zu finden; kostenlos, auch im Playground verfügbar
    • Datumsangaben, Zahlen und Preise, die auf eine bestimmte Sprache hartcodiert sind (z. B. toLocaleDateString('en-US'), Intl-Formatierer, `$${price}`), passen sich der Sprache der App in React, React Native und Solid an
    • Das Modell markiert Übersetzungen, bei denen es unsicher ist, mit einer Begründung; das Register 'Überprüfen' öffnet sich für diese und 'Bewilligen' lässt den Rest für eine Person
    • Eine URL pro Sprache für Suchmaschinen: Next.js erhält einen Proxy, der /es/… mit hreflang-Links bedient, Nuxt prefix_except_default mit useLocaleHead
    • Ein Preisrechner im Vergleich zu Übersetzungsagenturen
  40. v0.11.0

    28. Oktober 2026

    Älteres Svelte und Angular, verschachtelte Formatierung und Codekontext in der Überprüfung

    • Svelte 3 und 4 und Angular 14+ behalten Sätze um Links herum ebenfalls ganz, durch generierte Komponenten, die keine neueren Features benötigen
    • Formatierung innerhalb eines Links (Fettdruck in einem Link, bis zu drei Ebenen tief) wird zu einer verschachtelten Nachricht in Vue, Svelte, Angular und Ember
    • Überprüfungs-Tab: Zeigt im Code die Zeilen um die Stelle an, an der jede Zeichenfolge verwendet wird, gelesen aus dem Pull Request des Laufs
    • Die Spielwiese zeigt die generierte Komponente, durch die eine lokalisierte Datei ihre Sätze rendert
    • Ember-Nachrichten aus der Spielwiese und den Anleitungen verwenden ICU-Platzhalter, wie die CLI
    • Phrase und Lokalise erscheinen mit ihren eigenen Logos
  41. v0.10.0

    28. Oktober 2026

    Sätze mit Links bleiben überall vollständig, und Astro-Dynamikrouten

    • Svelte 5, Angular 17+, Ember, Solid und Qwik behalten einen Satz um einen Link oder Fettdruck als eine Nachricht, gerendert von einer generierten Komponente (oder rich() in Solid und Qwik), damit Übersetzer den Link verschieben können
    • Rails: Ein link_to innerhalb eines Satzes wird zu einer _html-Nachricht mit dem interpolierten Link; link_to, button_to, submit und Labeltext werden übersetzt
    • Astro: dynamische Routen erhalten ebenfalls eine Kopie pro Sprache, behalten dabei ihre getStaticPaths und Props
    • Laravel: Das SetLocale-Middleware wählt die Sprache aus (?locale=, einem lang-Cookie oder Accept-Language), registriert in bootstrap/app.php oder im HTTP-Kernel
    • Django: Einstellungen-Pakete (settings/base.py) werden gefunden, und LocaleMiddleware wird selbst ohne SessionMiddleware hinzugefügt
    • Der Playground nimmt Rails-, Django-, Laravel- und Android-Dateien und zeigt jeweils die eigenen Sprachdateien an
    • Fehlende Sprachstrings (oder Pluralformen) werden noch einmal abgefragt, bevor auf einen Rückfall zurückgegriffen wird
    • Benötigt Node.js 22 oder höher; Projekte ohne package.json (Rails, Django, Laravel, Android, Flutter) werden über npx ausgeführt
  42. v0.9.0

    28. Oktober 2026

    Rails, Django, Laravel, Android, Astro, Qwik, Lit, Ember und Übersetzungsprüfung

    • Astro: .astro-Vorlagen werden zu t()-Aufrufen, die die Sprache aus der URL lesen, mit einer Kopie jeder statischen Seite pro Sprache und <html lang dir>, die in den Layouts gesetzt wird
    • Astro-Inseln (React, Vue, Svelte) werden mit ihren Seiten lokalisiert, wobei jede die Sprache der Seite folgt
    • Qwik: useTranslation() liest die Sprache aus der URL, mit einer Route pro Sprache; Lit: html``-Templates zu t() mit einem Controller, der bei Sprachänderung neu rendert
    • Ember: Glimmer-Vorlagen (.hbs, .gjs/.gts) für ember-intl’s {{t}}, mit Pluralformen aus {{if (eq n 1) …}} und einer Anwendungsroute, die die Sprache auswählt
    • Überprüfen-Tab für jedes Projekt: maschinelle Übersetzungen genehmigen oder bearbeiten, inklusive Pluralformen; Bearbeitungen speisen den Übersetzungsspeicher und können in den offenen Pull Request übernommen werden
    • Überprüfungsnotizen für den nächsten Prüfer, wer was wann genehmigt hat, und Glossarvorschläge aus Korrekturen, die Sie fortlaufend vornehmen
    • Verschachtelter Rich Text: Sätze um Links mit fettgedrucktem Text und Ähnlichem bleiben eine Nachricht
    • Weitere Pluralmuster: n > 1, Intl.PluralRules select() und plural(n, one, other) Helfer
    • Lokalise und Transifex Synchronisierung; GitHub Action: tms_pull bringt geprüfte Übersetzungen in den Pull Request, tms_push lädt Quelldateien aus dem Standard-Branch hoch
    • Die Playground-Umgebung verarbeitet Astro-Dateien
    • Rails: ERB-Ansichten werden zu t()-Aufrufen mit config/locales YAML und count: Pluralformen; verfügbare Sprachen und ein Sprachwechsler werden eingerichtet
    • Django: Templates erhalten translate- und blocktranslate-Tags, die .po-Kataloge werden gefüllt und LocaleMiddleware wird aktiviert
    • Laravel: Blade-Ansichten werden zu __()-Aufrufen mit lang/<locale>.json, die nach dem Text benannt sind
    • Android: Layouts und Jetpack Compose werden zu strings.xml (stringResource, %1$s-Platzhalter) verschoben, mit der sprachspezifischen Liste pro App
    • Vue: Sätze um Links und Fettdruck bleiben eine Nachricht, über <i18n-t>
    • Qwik: dynamische Routen erhalten ebenfalls eine Kopie pro Sprache
    • CLI-Läufe (pr und pr --translate) erreichen den Überprüfungs-Tab, wie die des Actions
    • Rezensenten pro Sprache, einmal pro Lauf per E-Mail benachrichtigt, wenn Übersetzungen eintreffen; jede Zeile im Überprüfungs-Tab verlinkt zur Quelldatei
    • Kleinere Installation: Die Vue-, Svelte-, Angular-, Astro- und Ember-Compiler werden beim ersten Bedarf eines Projekts abgerufen
    • Anleitungen pro Framework mit echten Vorher-Nachher-Ausgaben
  43. v0.8.0

    27. Oktober 2026

    Angular, Flutter, Solid und Crowdin- und Phrase-Synchronisierung

    • Angular: Templates und Inline-Templates werden zur ngx-translate-Pipe, wobei Control Flow, Bindings und Aria-Attribute behandelt werden; provideI18n() und TranslatePipe sind integriert
    • Flutter: Text()- und hintText-Style-Argumente werden zu AppLocalizations-Lookups mit ARB-Dateien, ICU-Pluralen und Platzhalter-Metadaten; const wird bei Bedarf entfernt und gen-l10n eingerichtet
    • Solid: JSX mit useTranslation() aus einem generierten i18next-Modul, dessen Sprache ein Signal ist
    • localize-dev sync push und pull: Quelldateien nach Crowdin oder Phrase, Übersetzungen zurück in Ihre Locale-Dateien
    • Die Playground-Umgebung nimmt Angular-Vorlagen (.component.html) und Dart-Dateien entgegen
  44. v0.7.0

    27. Oktober 2026

    Vue, Svelte, statisches HTML, React Native und vorhandene Lokalisierungsdateien

    • localize-dev translate (und der Modus der Aktion: translate) füllt fehlende Übersetzungen in vorhandenen Locale-Dateien auf: JSON, Rails YAML, gettext .po, Flutter .arb, Android strings.xml, Apple .xcstrings und .strings, extension messages.json
    • translate behält ICU =0 Übereinstimmungen und Select-Zweige bei und erstellt neue gettext-Sprachen mit eigenen Pluralregeln
    • Vue Single-File-Komponenten: Vorlagentext und Attribute werden zu -Aufrufen, mit eingerichteter und installierter vue-i18n
    • Svelte und SvelteKit: Markup wird zu $_()-Aufrufen mit svelte-i18n, initialisiert aus +layout oder main
    • Statische HTML-Websites: data-i18n-Markierungen und eine generierte i18n.js, die die Locale-Dateien lädt, mit einem optionalen Sprachmenü
    • React Native und Expo: Barrierefreiheits-Labels übersetzt und eine i18n-Einrichtung, die ohne Browser-APIs läuft
    • Das Framework wird automatisch erkannt; überschreiben Sie es mit "framework" in localize.config.json
    • Plurale in Vue (Pipe-Format mit den Regeln jeder Sprache) und Svelte (ICU); Nachrichten werden aus Skripten angezeigt, wie Toasts und Benachrichtigungen
    • SvelteKit-Seiten werden auf dem Server in der Sprache des Besuchers gerendert; Nuxt erhält @nuxtjs/i18n; bestehende vue-i18n- und svelte-i18n-Setups bleiben erhalten
    • HTML: Sätze mit Links und fettgedrucktem Text bleiben ganz, Seiten funktionieren von der Festplatte, und htmlPages schreibt eine übersetzte Kopie pro Sprache für Suchmaschinen
    • Rechts-nach-links-Sprachen setzen dir auf <html> überall; Template-Engine-Text und PHP bleiben unberührt
    • Monorepos: --workspaces lokalisiert jede App (die Action aktualisiert die Root-Lockfile)
  45. v0.6.0

    27. Oktober 2026

    Ein richtiges Sprachmenü und useLanguage()

    • localize-dev/react: ein tastatur- und bildschirmleserfreundliches Sprachmenü mit Flaggen und einheimischen Namen
    • Passen Sie die Liste, Namen, Flaggen, Layout und Stile an oder ersetzen Sie Teile mit Render-Props
    • useLanguage() gibt die aktuelle Sprache, ihre Flagge, ihren Namen und ihre Richtung, die Liste und setLanguage() zurück
    • Rechts-nach-links-Sprachen setzen dir auf <html>; generierte <select>-Umschalter werden automatisch aktualisiert
  46. v0.5.0

    27. Oktober 2026

    Sprachumschalter

    • Ein generierter <LanguageSwitcher /> listet jede gebündelte Sprache in ihrem eigenen Namen auf
    • Merkt sich die Wahl (localStorage oder den Sprach-Cookie in Next.js, damit Serverkomponenten folgen)
    • Projekte, die von einer früheren Version eingerichtet wurden, erhalten es bei ihrem nächsten Lauf in einem eigenen Pull Request
  47. v0.4.0

    27. Oktober 2026

    Pluralformen, Rich Text, Next.js Server Components, Teams

    • Pluralnachrichten: Ein Schlüssel mit genau den CLDR-Formen, die jede Sprache benötigt
    • Text um Links und Formatierungen wird zu einer <Trans>-Nachricht, die Übersetzer neu anordnen können
    • Next.js App Router: Serverkomponenten verwenden einen erwarteten Übersetzer; Clientkomponenten teilen die Anfragesprache
    • Projektglossar: Begriffe, die nie übersetzt werden sollen, bevorzugte Übersetzungen und ein Stilhinweis
    • Team-Arbeitsbereiche mit Einladungen und einem Arbeitsbereichswechsler
    • Abrechnung mit Stripe und Nutzungs-E-Mails bei 80 % und 100 %
  48. v0.3.0

    26. Oktober 2026

    Projektstatistiken und Ausführungshistorie

    • Projektseiten zeigen übersetzte und ersetzte Zeichenfolgen, Läufe und Übersetzungen pro Sprache
    • Die GitHub Action meldet jeden Lauf: Pull Request, ersetzte Zeichenfolgen, Übersetzungen oder den Fehler
    • Die Nutzung wird dem Repository zugeordnet, aus dem sie stammt
    • Schritt-für-Schritt-Einrichtung von API-Schlüsseln und Pull-Request-Berechtigungen, verknüpft mit den Einstellungen Ihres Repositorys
  49. v0.2.0

    26. Oktober 2026

    Funktioniert bei Apps ohne i18n

    • Fügt i18next und react-i18next hinzu, wenn sie fehlen, wobei die Lockfile in der Action aktualisiert wird
    • Erstellt src/i18n.ts, das jede Locale-Datei lädt und sie aus Ihrer Einstiegsdatei importiert
    • Aktiviert resolveJsonModule in tsconfig.json und passt Ihren Anführungszeichenstil an
    • Bestehende i18next-Setups bleiben unberührt
  50. v0.1.0

    26. Oktober 2026

    Erste öffentliche Veröffentlichung

    • AST-Scanner für JSX-Text, erlaubte Attribute und Template-Literale, die in JSX gerendert werden
    • Minimal-Diff-Transformer, der useTranslation einmal pro Komponente hinzufügt
    • Gehostetes Übersetzungsmodell in jedem Plan, mit API-Schlüsseln, monatlichen Kontingenten und einer kostenlosen Stufe
    • Semantische Schlüsselbenennung und Übersetzung in einem Durchgang, mit Platzhalterprüfungen, bevor etwas geschrieben wird
    • CLI: init, login, whoami, scan, run und pr Befehle, plus Offline-Modus
    • GitHub Action, die einen Branch und einen Pull Request pro Basis-Branch auf dem neuesten Stand hält
    • Web-Playground, der die gleiche Engine wie die CLI ausführt