Open Source

Claude Übersetzer

Statische Standortlokalisierung — Übersetzen Sie eine erstellte Site in Dutzende von Sprachen als echte statische Seiten, ohne sie erneut zu rendern und ohne Core Web Vitals zu beschädigen. Kostenlos, selbst gehostet, AGPL-3.0.
Kein Konto Kein API-Schlüssel von uns Läuft auch auf einem lokalen Modell

Alle Funktionen anzeigen

Dies ist die Pipeline, die läuft www.conveythis.com selbst — eine 238-seitige Astro-Site, live in 55 Sprachen. Wir haben es extrahiert, jeden Fehlermodus dokumentiert, dessen Suche uns gekostet hat, und das Ganze veröffentlicht. Es handelt sich weder um einen Test noch um einen Teaser: Es gibt keinen Kaufschlüssel, kein Kontingent und kein Konto.

Two design decisions

Wie es funktioniert

Zwei Entscheidungen definieren es. Zunächst werden Übersetzungen durch Byte-Offset in das erstellte HTML eingefügt und das Dokument wird nie von einem DOM — neu serialisiert, also inliniertes kritisches CSS, das LCP-Element, Asset-Hashes und das width/height Attribute, die CLS enthalten, werden alle unberührt übertragen. Das ist warum Gebietsschemaseiten stimmen mit der Ausgangssprache auf Core Web Vitals überein und ähneln ihr nicht nur. Zweitens ist die Übersetzungseinheit der gesamte Block und nicht der Textknoten, da etwa ein Fünftel der Textknoten einer typischen Site durch Inline-Markup aufgeteilt werden und die separate Übersetzung der Fragmente die Grammatik in jeder Sprache unterbricht, die neu geordnet oder gebeugt wird.

The result is proved rather than asserted: eight gates and an exhaustive SEO audit over every page, including one gate that exists purely because coverage metrics are structurally blind to extraction bugs.

Verification

Hält es tatsächlich?

Eine berechtigte Frage, die überprüfbar ist und nicht etwas, wofür Sie sich auf unser Wort verlassen müssen. doctranslator.com/fr ist eine große Astro-Site, deren französische Seiten durch diese Pipeline erstellt wurden. Vergleichen Sie es mit dem englischen Original und das Markup ist byte-identisch:

2,743

Tags, in identischer Reihenfolge

2,031

Klassenattribute, alle übereinstimmend

+0.74%

Seitengewicht — Französisch ist länger

Es wurde nichts Strukturelles verschoben, sodass der Browser nichts anders anordnen kann. Überprüfen Sie es selbst — es dauert etwa zehn Sekunden:

Schale
curl -s https://doctranslator.com/   | grep -o 'class="[^"]*"' > en.txt
curl -s https://doctranslator.com/fr | grep -o 'class="[^"]*"' > fr.txt
diff en.txt fr.txt && echo "markup identical — only the text changed"

Und die Ergebnisse

Englische QuelleFranzösisch, von diesem ToolA11y / Best Practices / SEO
Desktop100100100 / 100 / 100
Mobil9898100 / 100 / 100

PageSpeed Insights-Leistungswerte, gemessen am 25. August 2026. Barrierefreiheit, Best Practices und SEO lagen bei beiden Strategien bei jedem Durchlauf beider Seiten bei 100.

Dies sind bewusst Mediane. Lighthouse-Ergebnisse bewegen sich: Fünf aufeinanderfolgende Läufe derselben englischen mobilen Seite ergaben 98, 98, 88, 98, 98, wobei die Farbe mit dem größten Inhalt zwischen 1,8 und 3,2 Sekunden schwankte. Dabei handelt es sich eher um Netzwerk- und CDN-Varianzen als um Seitenqualität. Wenn Sie einmal messen und 91 erhalten, führen Sie es deshalb — ein paar Mal aus und vergleichen Sie die beiden Sprachen miteinander und nicht mit einer Zahl auf einer Marketingseite.

And the language

Markup identity is measurable. Whether the Spanish is any good is a different question, and until 2.0 the pipeline had no answer to it — the tests checked request shapes and scaffolding, and nothing scored a translation.

Schale
node scripts/i18n/tqa.mjs --lang es --dry      # sample size and cost, no API call
node scripts/i18n/tqa.mjs --lang es,fr,de     # scorecard + per-locale JSON
node scripts/i18n/tqa.mjs --lang es --repeat  # judge the same sample twice

It scores a stratified sample on the MQM error typology at its conventional weights — minor 1, major 5, critical 10 — and weights the sample by how often each string appears, so the header everyone reads counts for more than a one-off footnote. Three things keep the number from being decorative:

The judge is a different model from the translator
Models score their own output generously. If no second provider key is configured it uses the same one and says so, in the run and in the report.
The sample is seeded, and the variance is reported
A seed reproduces a score exactly; --repeat scores the same sample twice and prints the gap. A quality number nobody can re-derive, quoted without its noise, is a marketing number.
A unit the judge cannot assess is excluded, not counted as clean
An early version printed 100.00 out of 100 from a sample where every single unit had failed to parse. It now refuses to report a score at all in that case.

Read it as a comparison — between locales, between models, before and after a prompt change — not as a grade. It is one model’s assessment of another’s work rather than a human review, and the report says so on its face.

Decision three

Terminology is not a per-sentence choice

Identical strings were always consistent — units are keyed by a hash of the source text, so a nav label translated once is reused on every page and across runs. What that cannot do is hold a term inside varying sentences: “Dashboard” in two different paragraphs is two hashes, two batches, two stateless requests, and nothing compared them.

glossary.json
[
  { "source": "Acme",      "rule": "keep",      "matchCase": true },
  { "source": "Dashboard", "rule": "translate",
    "targets": { "es": "Panel de control", "de": "Übersicht" } }
]

matchCase is the answer to a question we were asked directly: can it tell Apple the company from apple the fruit? A flat list of names cannot express that. Whole-word, case-sensitive rules can.

sourcespanishwarum
Apple announced a deviceApple anunció un dispositivocapital A — protected, and now verified
An apple a dayUna manzana al díalowercase — translated normally
Applesauce is on saleLa compota está en ofertawhole-word — never matches inside a longer word

The same release tells the model what a string is. It used to receive the text and nothing else, so a button label and a body paragraph were indistinguishable — which made the prompt’s own instruction to keep button labels short unenforceable. A <button>, a heading, a form label and a meta description now each say so.

It deliberately does not demand the imperative for buttons: German UI prefers a verbal noun and French the infinitive, so it asks for whatever construction that language actually puts on a button. Brand names you already list are folded in automatically as case-sensitive keep rules, which also brings them under a verification gate that checks they survived. Nothing checked that before.

Locale conventions

Numbers get localized. Prices never get converted.

Writing 1,234.56 to a German reader is one of the most visible marks of a machine translation. Models are unreliable at separator conventions, so the model is told to leave numbers alone and Intl reformats them afterwards, deterministically.

sourcebecomeswhere
1,234.561.234,56de
1,234.561 234,56fr
$55,00 $USfr — placement and spacing, not the amount
50%50 %fr — with a non-breaking space

It formats. It never converts.

no config option for it

A price is a commercial commitment, and converting one at a rate baked into a build — stale the day after it is written — is how a translation tool starts publishing wrong offers in markets nobody is watching. Every monetary amount found is written to a report instead, so a human prices each market deliberately.

A numeric-integrity gate backs that up by failing the build if a number’s value changes between source and translation. A model that quietly ships $39 where the source said $49 passes every other check: identical markup, matching placeholders, plausible length, fluent Spanish.

Deliberately left alone: version numbers, times, IP addresses, ISO dates, phone numbers and any ungrouped number — during development a greedy pattern turned 192.168.1.1 into 1.921.681,1, and that case is now a test. One result that looks like a bug and is not: Spanish does not group four-digit numbers, so 1,234.50 is correctly 1234,50 in es1.234,50 in de.

Honest routing

Welches brauchst du eigentlich?

Statische Substitution und eine Laufzeitschicht lösen verschiedene Probleme. Die Auswahl des falschen Produkts kostet Sie ein Wochenende, hier ist also die ehrliche Aufteilung.

Sie haben einen statischen Build, der Inhalt ändert sich im Release-Rhythmus und Sie möchten das HTML vollständig besitzen.

Claude Übersetzer

Kostenlos, selbst gehostet, AGPL-3.0. Ihr eigener API-Schlüssel, Ihre eigenen Dateien, kein Konto.

Auf GitHub anzeigen →

Ihre Inhalte ändern sich täglich, befinden sich in einem CMS, sind benutzergeneriert oder befinden sich hinter einem Login oder Checkout.

ConveyThis

Eine verwaltete Laufzeitschicht. Kein Build-Schritt zum Einbinden, keine Wiederholung bei jeder Bearbeitung, ein visueller Editor und eine menschliche Überprüfung.

Siehe Preise →

Was Sie übersetzen müssen, sind Dokumente und nicht Seiten — PDF, DOCX, XLSX, PPTX.

DocTranslator

Ganze Dateien, Layout und Tabellen erhalten, 100+ Sprachen.

Gehen Sie zu DocTranslator →

Quickstart

Installieren Sie es

Repository

https://github.com/ConveyThis/claude-translator

AGPL-3.0 · Knoten ≥ 20 · eine Abhängigkeit (parse5) · auf GitHub öffnen →

Sie brauchen

  • Node.js 20 oder neuer
  • Eine Site, die auf statischem HTML aufbaut — es liest Ihre Build-Ausgabe, nicht Ihre Quelle
  • Ein API-Schlüssel für jedes Modell, das Sie wählen — oder gar keine, wenn Sie lokal eine ausführen

Als Claude Code-Fähigkeit

Klonen Sie es in Ihr Kompetenzverzeichnis und bitten Sie Claude dann, die Website zu lokalisieren. Es folgt den gebündelten Anweisungen, einschließlich der Fehlermodi, deren Suche uns echtes Geld gekostet hat — und den Regeln, wann dies das völlig falsche Tool ist.

Schale
git clone https://github.com/ConveyThis/claude-translator.git \
  ~/.claude/skills/claude-translator

In jedem Projekt

Ein Befehl. init kopiert die Pipeline in scripts/i18n/, schreibt eine Konfiguration, deklariert parse5 und fügt die abgeleitete i18n/ Wege zu deinem .gitignore. Es überschreibt nie etwas ohne --force, und es druckt jede Datei, die es berührt hat.

Schale
cd your-project
npx claude-translator init
npm install                       # parse5, the only dependency

Die Skripte landen in Ihrem Repository, anstatt darin zu bleiben node_modules Mit Absicht — lösen sie Pfade aus dem Projekt auf, in dem sie sitzen, sie sind kurz genug zum Lesen und die Lizenz existiert, damit Sie sie ändern können.

Installation ohne npx
Schale
git clone https://github.com/ConveyThis/claude-translator.git
cp -r claude-translator/scripts  your-project/scripts/i18n
cp claude-translator/i18n.config.example.json your-project/i18n.config.json
cd your-project && npm install --save-dev parse5

Konfigurieren

Die kleinste Konfiguration, die ausgeführt wird. buildDir ist der Ort, an dem Ihr Generator HTML schreibt; baseUrl ist Ihr kanonischer Ursprung, kein abschließender Schrägstrich.

i18n.config.json
{
  "buildDir": "dist",
  "baseUrl": "https://example.com",
  "provider": "anthropic",
  "glossary": "glossary.json",
  "locales": [
    { "hreflang": "es", "pathCode": "es", "nativeLabel": "Español" },
    { "hreflang": "de", "pathCode": "de", "nativeLabel": "Deutsch" }
  ]
}
Schale
echo "ANTHROPIC_API_KEY=your-key-here" >> .env   # and gitignore it

Führen Sie es aus

npm run buildIhr normaler Build — nur Quellsprache
Knotenskripte/i18n/extract.mjsFinden Sie jede übersetzbare Einheit
Knotenskripte/i18n/translate.mjs --lang es,frIn die Erinnerung übersetzen
Knotenskripte/i18n/build-locales.mjs --lang alleSchreiben Sie die lokalisierten Seiten
Knotenskripte/i18n/verify.mjs --lang alleeight gates — exits non-zero on failure
Knotenskripte/i18n/audit-seo.mjskanonische, hreflang, JSON-LD, Sitemaps
node scripts/i18n/tqa.mjs --lang es --dryoptional — MQM quality score, cost first

Stellen Sie dann das Build-Verzeichnis genau so bereit, wie Sie es heute bereitstellen — die lokalisierten Seiten sind normale Dateien, die neben Ihren vorhandenen liegen. Vollständige Optionen, jeder Fehlermodus und die Gründe für jede Designentscheidung finden Sie in der LESEN SIE MICH.

Models

Bringen Sie Ihr eigenes Modell mit — einschließlich eines lokalen

Der Übersetzungsschritt kommuniziert über einen kleinen Adapter mit einem Modell und drei werden mit diesem ausgeliefert: Claude (Standard), Gemini und jeder OpenAI-kompatible Endpunkt. Letzteres deckt den größten Teil des Feldes ab — OpenAI, Azure, Groq, DeepSeek, Mistral, OpenRouter, Together, Fireworks — und deckt auch Ollama, LM Studio und vLLM ab.

Das bedeutet, dass drei Konfigurationszeilen die gesamte Pipeline auf Ihrer eigenen Hardware ausführen:

i18n.config.json
{
  "provider": "openai",
  "apiBaseUrl": "http://localhost:11434/v1",
  "model": "qwen2.5:14b"
}

Kein Schlüssel, kein Kontingent und nichts verlässt die Maschine — was wichtig ist, wenn der Inhalt vertraulich ist. Alles, was nicht auf dieser Liste steht, ist eine Adapterdatei mit zwei Funktionen darin.

Limits

Wo das kostenlose Tool aufhört

Sechs reale Grenzen. Keines davon ist ein verkrüppeltes Merkmal — sie sind die Form des Ansatzes, und die Skripte sagen Ihnen, wann Sie einen treffen, anstatt leise zu scheitern.

Kundenseitige Flüssigkeitszufuhr
Inseln und Framework-Nutzlasten werden im Browser über das ersetzte HTML erneut gerendert. Der Extraktor zählt die betroffenen Seiten, sodass Sie es in Sekundenschnelle und nicht nach einem vollständigen Durchlauf herausfinden.
Unterlagen
Verknüpfte PDFs, DOCX und XLSX bleiben in der Ausgangssprache — die Pipeline berührt immer nur HTML.
Abwanderung
Der Speicher wird durch den Quell-Hash verschlüsselt, sodass er Ihnen mitteilen kann, welcher Anteil Ihrer Site sich seit dem letzten Lauf geändert hat. Hohe Abwanderung bedeutet, für wiederholtes Umübersetzen zu bezahlen.
Bearbeiten einer Übersetzung
Suchen Sie den Hash in der Speicherdatei, bearbeiten Sie die Zeichenfolge und erstellen Sie ihn neu. Es gibt keinen Editor, keinen Rezensenten und keinen Workflow.
Volumen
Sie bezahlen Ihren eigenen Modellanbieter direkt, zu dessen Tarif, mit Ihrem eigenen Schlüssel — oder gar nichts, wenn Sie das Modell selbst betreiben.
Geänderte Netzwerknutzung
AGPL-3.0 §13 verpflichtet Sie, Änderungen zu veröffentlichen, wenn Sie eine geänderte Kopie als Dienst für andere Personen ausführen. Die unveränderte oder interne Ausführung ist uneingeschränkt.

Die ersten vier sind diejenigen, die die Leute tatsächlich getroffen haben, und sie haben alle die gleiche Form: Es muss etwas passieren nach den Build, was ein Build-Time-Tool nicht kann. Dafür ist das verwaltete Produkt da, und die kostenloser Plan sind 5.000 Wörter ohne Karte, was ausreicht, um herauszufinden, ob es hilft. Sie benötigen es nicht, um etwas auf dieser Seite zu verwenden.

Namensnennung

What it puts on your pages

Lokalisierte Seiten tragen eine <meta name="generator"> Tag und ein HTML-Kommentar mit der Bezeichnung ConveyThis — etwa 150 Bytes, keine Anfrage, kein Skript und Kein Link. Es ist derselbe Mechanismus, den Astro, Hugo und WordPress verwenden. Zwei Konfigurationsschlüssel entfernen es und nichts im Repo prüft, ob Sie dies getan haben.

Wenn Sie lieber eine sichtbare Gutschrift zeigen möchten, setzen Sie credit.visibleLink zu true und platzieren Sie den Slot an der gewünschten Stelle auf der Seite. Es wird nichts von Ihnen verlangt und es wird nichts dafür gegeben — es existiert, weil manche Leute die von ihnen verwendeten Tools anerkennen möchten, und aus keinem anderen Grund.

Der Kreditlink ist rel="nofollow", absichtlich. Nicht, weil es bezahlt wird — das ist es nicht —, sondern weil es sich um einen Link handelt, den ein Build-Skript sonst auf jeder Seite einer Site hinzufügen würde, und siteweite Links, die durch Tools und nicht durch redaktionelle Auswahl angezeigt werden, sind die Form, auf die Googles Link-Schema-Leitlinien abzielen. Es ist Empfehlungsverkehr wert, keine Backlinks — wer Ihnen etwas anderes sagt, verkauft Ihnen eine Strafe.

Kommerzielle Lizenz

Der Code lautet AGPL-3.0. Die Lokalisierung Ihrer eigenen Websites und der Versand der Ausgabe sind uneingeschränkt — die Lizenz deckt die Software ab, nicht das HTML, das sie schreibt. Es beißt nur, wenn Sie ein geändert Kopie als Netzwerkdienst für andere Personen. Wenn das auf Sie zutrifft und Sie Ihre Änderungen nicht veröffentlichen können, schreiben Sie an [E-Mail geschützt].

Fragen

The questions people actually ask

Ist das wirklich kostenlos? Was ist der Haken?
Es handelt sich um die gesamte Pipeline unter AGPL-3.0 und es gibt keinen Fang der üblichen Art. Sie benötigen kein ConveyThis-Konto, keinen Schlüssel von uns und kein Kontingent. Wir haben es erstellt, um conveythis.com in 55 Sprachen zu lokalisieren und veröffentlicht, was wir verwenden. Der ehrliche Preis besteht darin, dass Sie es selbst ausführen: Sie bezahlen Ihren eigenen Modellanbieter, Sie hosten die Ausgabe und es gibt keinen Support-Desk dahinter.
Benötige ich ein ConveyThis-Konto?
Nein. Nichts im Tool prüft dies, ruft zu Hause an oder meldet die Nutzung. Die einzige Spur von uns ist ein Generator-Tag und ein HTML-Kommentar auf den Seiten, die es schreibt, und zwei Konfigurationsschlüssel entfernen diese.
Was kostet ein Lauf eigentlich?
Sie bezahlen Ihren Modellanbieter direkt. Auf der Standardseite (Claude Haiku 4.5) kostet eine mittelgroße Marketingseite mit etwa 150.000 einzigartigen Quellwörtern in 20 Sprachen etwa 30 $. Durch die Umstellung eines Konfigurationsschlüssels auf Gemini Flash Lite beträgt dieser etwa 2,40 $. Wenn Sie es auf ein Modell auf Ihrer eigenen Maschine richten, ist es kostenlos. Die Deduplizierung ist wichtiger als die Wahl des Anbieters: Wiederholte Kopf- und Fußzeilen sowie die Navigation werden auf jeweils eine Einheit reduziert, was die Kosten normalerweise um eine Größenordnung senkt.
Kann ich mein eigenes Modell verwenden oder es vollständig offline ausführen?
Ja. Adapter werden für Claude, Gemini und jeden OpenAI-kompatiblen Endpunkt ausgeliefert — der OpenAI, Azure, Groq, DeepSeek, Mistral, OpenRouter, Together und Fireworks sowie Ollama, LM Studio und vLLM abdeckt. Legen Sie apiBaseUrl auf Ihrem lokalen Server fest und die gesamte Pipeline läuft auf Ihrer Hardware, ohne dass ein Schlüssel und keine Anfrage den Computer verlässt. Das ist wichtig, wenn der Inhalt vertraulich ist. Alles, was nicht auf dieser Liste steht, ist eine Adapterdatei mit zwei Funktionen darin.
Werden die übersetzten Seiten langsamer sein als die Originale?
Nein, und dies ist die Designentscheidung, auf der das gesamte Projekt beruht. Jede Gebietsschemaseite ist die Quellseite mit eingefügten Bytebereichen; Das Dokument wird niemals von einem DOM aus erneut serialisiert. Inliniertes kritisches CSS, das LCP-Element, Asset-Hashes und die Breiten- und Höhenattribute, die die Layoutverschiebung enthalten, werden alle unverändert übernommen, sodass Gebietsschemaseiten mit der Quellsprache auf Core Web Vitals übereinstimmen, anstatt ihr annähernd zu ähneln. Die Zuordnung fügt etwa 150 Bytes hinzu und stellt keine Netzwerkanfrage.
Funktioniert es mit meinem Framework?
Alles, was statisches HTML ausgibt: Astro, Next.js mit Ausgabeexport, Hugo, Eleventy, Jekyll, Gatsby oder handgeschriebenes HTML. Es liest Ihre Build-Ausgabe und nicht Ihre Quelle, sodass das Framework größtenteils keine Rolle spielt. Die Anmerkungen pro Generator in references/adapting-generators.md decken die Ausnahmen ab, wobei die Hydratation die wichtigste ist.
Was ist mit React-Komponenten oder Astro-Inseln, die hydratisieren?
Diese werden im Browser erneut gerendert, und zwar über das, was im HTML ersetzt wurde, sodass der Text in die Ausgangssprache zurückkehrt. Statische Substitution kann sie nicht erreichen. Der Extraktor zählt Seiten mit einer Hydratationsnutzlast und sagt es Ihnen, bevor Sie etwas ausgeben, sodass Sie es in Sekundenschnelle und nicht nach einem vollständigen Lauf herausfinden. Wenn sich die meisten Ihrer Inhalte in hydratisierten Komponenten befinden, ist eine Laufzeitschicht das richtige Werkzeug und ConveyThis ist das.
Can it keep my terminology consistent, and tell a brand name from an ordinary word?
Yes, since 2.0.0. Identical strings were always consistent because units are keyed by a hash of the source text, but a term inside varying sentences had no mechanism at all. A glossary file now pins terms per locale, and rules can be case-sensitive and whole-word: Apple the company is protected while apple the fruit is translated, and neither matches inside Applesauce. Brand names you already list are folded in automatically, and a verification gate checks they actually survived the translation, which nothing did before. The model is also told what each string is, so a button label, a heading and a meta description are no longer indistinguishable to it.
I already use it. What changes when I upgrade to 2.0.0?
Nothing re-translates. Unit hashes are computed from the source text alone, so no existing translation memory is invalidated, and that was verified against a fixture before release. Two behaviour changes do bite, and both are deliberate in a major version: locale number formatting is on by default, so a rebuild reformats numbers in your output, and a new numeric-integrity gate fails the build if a number changed value between source and translation. One caveat worth stating plainly: the stages added in 2.0.0 have not had a live billed run at scale against a hosted provider. The pipeline underneath them runs conveythis.com in 55 languages; the additions were verified offline, with fixtures and a local model.
Kann ich eine Übersetzung reparieren, die mir nicht gefällt?
Ja, von Hand. Suchen Sie den String-Hash in i18n/tm/{lang}.json, bearbeiten Sie den Text und erstellen Sie ihn neu. Es gibt keinen Editor, keinen Rezensenten und keinen Genehmigungsworkflow im kostenlosen Tool — das ist eher eine echte Einschränkung als eine verkrüppelte Funktion. Wenn Sie einen visuellen Editor oder eine professionelle menschliche Überprüfung benötigen, bietet das kostenpflichtige Produkt dies.
Was passiert, wenn ich eine Seite bearbeite oder eine neue hinzufüge?
Der Übersetzungsspeicher wird durch einen Hash des Quelltextes verschlüsselt, sodass bei einer Wiederholung nur das übersetzt wird, was sich geändert hat, und alles andere wiederverwendet wird — normalerweise Cent. Commit i18n/tm/{lang}.json; es ist das Asset und das Löschen bedeutet, für eine vollständige Neuübersetzung zu bezahlen. Wenn sich Ihr Inhalt täglich ändert, begünstigt die Arithmetik diesen Ansatz nicht mehr und das Tool zeigt Ihnen die Abwanderungsrate an, damit Sie das kommen sehen können.
Werden die übersetzten Seiten von Google indexiert?
They are real static pages, so yes. Read what it does as corrected rather than created, because that distinction is what keeps the markup byte-identical: it rewrites the values on tags your template already emits. Every locale page comes out with the right html lang and dir, a self-referencing canonical, x-default and source-language hreflang pointed back at the original, og:url and og:locale, per-locale JSON-LD with the right @id and inLanguage, and locale-prefixed internal links. Your own template supplies the full hreflang mesh and the sitemap; the SEO audit then checks both across every page rather than a sample, and exits non-zero so it can gate a deploy.
Kann ich es kommerziell nutzen? Was bedeutet AGPL-3.0 für mich?
Die Lokalisierung Ihrer eigenen Websites und der Versand der Ergebnisse sind uneingeschränkt möglich, auch für Kunden und auch kommerziell. Die Lizenz deckt die Software ab, nicht das HTML, das sie schreibt. Abschnitt 13 gilt nur, wenn Sie eine geänderte Kopie als Netzwerkdienst für andere Personen betreiben. In diesem Fall müssen Sie Ihre Änderungen veröffentlichen oder eine kommerzielle Lizenz erwerben. LICENSING.md erklärt, zu welcher Gruppe Sie gehören; fast jeder gehört zur uneingeschränkten Gruppe.
Ist die ConveyThis-Attribution erforderlich?
Nein. Jede lokalisierte Seite trägt ein Generator-Meta-Tag und einen HTML-Kommentar — etwa 150 Bytes, keine Anfrage, kein Skript und kein Link. Es ist derselbe Mechanismus, den Astro, Hugo und WordPress verwenden. Wenn Sie credit.generatorTag und credit.htmlComment auf „false“ setzen, werden beide entfernt und nichts im Code prüft, ob dies der Fall war. Ein sichtbarer Kredit ist ein Opt-in und separat und bringt Ihnen nichts ein — er ist für Leute da, die die von ihnen verwendeten Tools gutschreiben möchten.
Wie unterscheidet sich dies von ConveyThis selbst?
Sie lösen unterschiedliche Probleme. Dadurch werden zum Build-Zeitpunkt statische Dateien erzeugt, die einen Build zum Einbinden und Inhalte benötigen, die sich im Release-Rhythmus ändern. ConveyThis ist eine verwaltete Laufzeitschicht: kein Build-Schritt, keine erneute Ausführung bei jeder Bearbeitung, ein visueller Editor, menschliche Übersetzung und Unterstützung für CMS, E-Commerce, benutzergenerierte Inhalte und Seiten hinter einem Login. Wenn Sie einen statischen Build haben und das HTML besitzen möchten, verwenden Sie dies. Wenn sich Ihr Inhalt täglich ändert oder es keinen Build zum Anbinden gibt, verwenden Sie das Produkt. So oder so das gleiche Unternehmen.
Bereit, loszulegen?

Übersetzen ist weit mehr als nur das Kennenlernen von Sprachen, es ist ein komplexer Prozess.

Indem Sie unsere Tipps befolgen und verwenden ConveyThis Ihre übersetzten Seiten werden bei Ihrem Publikum Anklang finden und sich in der Zielsprache heimisch anfühlen.

Obwohl es Anstrengung erfordert, ist das Ergebnis lohnend. Wenn Sie eine Website übersetzen, kann Ihnen ConveyThis mit automatisierter maschineller Übersetzung Stunden sparen.

Beginnen Sie mit ConveyThis in unserem kostenlosen Plan — keine Kreditkarte erforderlich!