@weglot/translate-react
Přeložte svůj
React,
Next.js nebo
Vite aplikace
Žádné obálky t(), žádné soubory JSON. Přidejte plugin pro sestavení a klíč API služby Weglot : text ve vašem JSX se přeloží při sestavení aplikace a váš tým může překlady upravovat na stránce Weglot , aniž by se musel dotýkat kódu.
Zkopírujte výzvu pro · · · přečtěte si dokumentaci · zobrazit na npm
111 368+ světových značek se při překladu svých webových stránek spoléhá na Weglot
// what your users see
JSX, které jste napsali, v jakémkoli jazyce
Text napište jen jednou. Weglot jej přeloží při kompilaci.
Jedno tlačítko, pět jazyků. Šířky se měří v reálném čase.
export default function Settings() { return ( <button>Save changes</button> ); } // no key, no t(), no en.json
Žádné klíče, žádné t(). Stačí napsat text v JSX, to je vše.
// how it works
Čtyři kroky. Vaše komponenty zůstanou beze změny.
Zdrojový a cílový jazyk se určují na základě vašeho projektu Weglot , nikoli na základě vašeho kódu. Plugin načte text z vašeho JSX v době kompilace a stáhne jeho překlady.
-
Nainstalujte balíček a zadejte svůj API klíč
Vytvořte projekt „ Weglot 2.0“ a poté zkopírujte jeho klíč API z nastavení projektu. Začíná na
pk_. Pokračujte.envmimo systém správy verzí.terminál · .env$ npm install @weglot/translate-react # .env WEGLOT_API_KEY=pk_your_weglot_api_key
-
Přidat plugin
Obalte svou konfiguraci Next.js pomocí
withWeglot. BodsourceRootdo složky, ve které jsou uloženy vaše stránky a komponenty.Přidat
weglotPlugindo konfigurace Vite. V případě Webpacku jej importujte z@weglot/translate-react/webpackmísto toho.next.config.tsimport type { NextConfig } from "next"; import { withWeglot } from "@weglot/translate-react/next"; const nextConfig: NextConfig = {}; export default async function (): Promise<NextConfig> { return await withWeglot(nextConfig, { sourceRoot: "./app" }); }
vite.config.tsimport { defineConfig } from "vite"; import { weglotPlugin } from "@weglot/translate-react/vite"; export default defineConfig({ plugins: [weglotPlugin({ sourceRoot: "src" })], });
-
Přidat poskytovatele
Obalte své kořenové rozložení pomocí
WeglotProviderz vstupního bodu Next.js, takže při změně jazyka dojde k aktualizaci vašich serverových komponent.Zabalte svou aplikaci do
WeglotProvider, co nejdříve.app/layout.tsximport { WeglotProvider } from "@weglot/translate-react/react/next"; export default function RootLayout({ children }: { children: React.ReactNode }) { return ( <html lang="en"> <body> <WeglotProvider>{children}</WeglotProvider> </body> </html> ); }
src/main.tsximport { WeglotProvider } from "@weglot/translate-react/react"; root.render( <WeglotProvider> <App /> </WeglotProvider>, );
-
Sestavte a vydávejte v každém jazyku vašeho projektu
Při každém sestavení se načtou chybějící překlady z adresy Weglot a zapíší se
public/translations/<locale>.json. Tuto složku ignorujte. Přidejte přepínač jazyků pomocíLocaleSwitchernebouseWeglotContext..gitignorepublic/translations/
// under the hood
Co se stane, když vytvoříte
- 01Načteváš JSX
- 02Odesílánovou zprávu
- 03 Překlad článku „Weglot “
- 04Vytvoříjeden soubor pro každý jazyk
// every language of your project
Jedna sestava, všechny jazyky, které přidáte
Vyberte jazyky na stránce Weglot. Budou zahrnuty v příštím vydání.
enPřidejte jazyk na stránce Weglot a poté spusťte kompilaci. Překladové soubory se nasadí společně s vaší aplikací.
// built for coding agents
Váš agent to zařídí
Není třeba přepisovat žádné řetězce, takže změna je malá a snadno se kontroluje.






Jakýkoli programovací agent. Vložte jeden příkaz do agenta, který již používáte.
Soubory, které agenti Docs dokážou načíst: index llms.txt a soubory ve formátu Markdown pro každou stránku.
package.jsonnext.config.tslayout.tsx.gitignore.envRozdíly, které si můžete prohlédnout. Žádné řádky nebyly přepsány.
Vložit kód z Clauda
Vložit na místo kurzoru (režim agenta)
Vložit do Codexu$ npm install @weglot/translate-react
Zkopírujte příkaz. Postupujte stejně jako v průvodci pro začátečníky.
// what gets translated
Plugin rozlišuje text od kódu
export default function Pricing() { return ( <section className="pricing"> <h2>Choose your plan</h2> <input placeholder="Email address" /> <a href="/signup">{"Start free trial"}</a> <span translate="no">Weglot</span> </section> ); }
Text je přeložen. Text v JSX, literály, konstanty, atributy alt, title, placeholder a aria-label.
Kód zůstává beze změny. Názvy tříd, URL adresy, logika.
Je to na vás. Můžete ponechat jakýkoli prvek beze změny, nebo použít atribut data-weglot-skip.
// for your team
Úpravy a kontrola bez zásahu do kódu
Recenze na stránkách Weglot. Text upravují pracovníci z oddělení produktů, marketingu a překladatelé.
Žádný pull request kvůli opravě jednoho slova.
Sledujte, co už jste prošli. Podívejte se na pokrok v jednotlivých jazycích.
// fit
Kdy použít „ Weglot “ a kdy ne
Balíček je ve fázi náhledu. Zde je jeho aktuální zařazení.
Směrovač aplikací Next.js
Podporované stránkyNext.js 15 nebo 16.0.4 a vyšší, React 19.
Vite
Podporované stránkyReact 19, Node 20.9 a vyšší. Webpack také funguje.
Serverové komponenty Reactu
Podporované stránkyZměna jazyka způsobí aktualizaci komponent serveru.
Obsah CMS a API
Podporované stránkyS tDynamic v serverových komponentách Next.js.
Úpravy prováděné uživateli, kteří nejsou vývojáři
Podporované stránkyZkontrolujte a upravte v ovládacím panelu služby „ Weglot “.
Jedna URL adresa pro každý jazyk
Ještě neJazyk je v současné době uložen v souboru cookie. Nyní potřebujete indexované URL adresy pro jednotlivé jazyky: použijte next-intl nebo Paraglide JS.
Překlady ve formě souborů repo
Přeložit akciWeglot přeloží vaše soubory JSON s nastavením místního formátu v GitHub Actions a otevře žádost o začlenění. Viz dokumentace →
React 18, Pages Router
Není podporovánoTaké Next.js 14 nebo starší.
CMS nebo nástroj pro tvorbu webových stránek
Ne tento balíčekVáš web není vytvořen v Reactu: využijte integraci CMS na stránce Weglot.
// compare
Proč ne klasická knihovna pro internacionalizaci (i18n)?
Knihovny pro internacionalizaci (i18n) vyžadují, abyste každý řetězec nahradili klíčem a pro každý jazyk udržovali samostatný soubor. Nástroj Weglot načte řetězce, které jste již napsali. Zde je srovnání jednotlivých možností.
| Kritéria | Weglot@weglot/translate-react |
next-intl / i18next | Paraglide JS | Nativní lokalizace CMS |
|---|---|---|---|---|
| Řetězce obalte funkcí t() nebo funkcemi pro práci se zprávami | Netext v JSX není detekován při kompilaci. | Anot("key") pro každý řetězec. |
Anom.key() funkce zpráv. |
Pouze obsahŘetězce ve vašem kódu stále vyžadují knihovnu. |
| Překladové soubory podle jazyka | Není třeba udržovatVygenerováno při kompilaci, ignorováno v Git. | AnoObvykle jeden soubor JSON na jedno národní prostředí. | AnoJeden soubor se zprávami pro každé jazykové prostředí. | Neuloženo v CMS. |
| Vícejazyčné směrování a SEO (URL pro každý jazyk, hreflang) | Zatím neJazyk je uložen v souboru cookie. Pro všechny jazyky platí stejné URL adresy, zdrojový jazyk je indexován. | next-intl: anoIntegrované směrování podle národního prostředí. i18next: prostřednictvím nastavení vašeho frameworku. | AnoIntegrované lokalizované URL adresy: předpony pro jazykové varianty, přeložené cesty nebo domény. Značky hreflang si můžete přidat sami. | FrontendBezhlavý CMS ukládá obsah podle jazykové verze. URL adresy a atribut hreflang pocházejí z vašeho front-endu. |
| Překlady vygenerované pro vás | AnoWeglot se překládá pomocí LLM během sestavování. | NePřineste si vlastní překlady nebo systém pro správu překladů (TMS). | Pomocí nástrojůstrojovým překladem inlang CLI nebo vaším programovacím agentem. | Placený doplněkAI překlad v placených tarifech: Contentful AI Actions, Sanity AI Assist, Strapi AI Translations. |
| Úprava překladů bez zapojení vývojáře | AnoZkontrolujte a upravte v ovládacím panelu Weglot . | NeUpravujte soubory JSON nebo přidejte samostatný TMS. | Pomocí Finkuwebovým editorem inlang, s účtem na GitHubu. | AnoV editoru CMS. |
| Vytvořeno programátorem v rámci jednoho zadání | AnoJedna instalace, dvě úpravy konfigurace. Níže je uveden příkaz, který lze zkopírovat. | Dlouhý úkolAgent přepisuje každý řetězec do klíčů a souborů. | Dlouhý úkolinit běží bez výzvy k zadání agentů, pak se každý řetězec stane m.key() zpráva. |
n/aNastaveno v CMS. |
ČASTO KLADENÉ DOTAZY
Podporuje SEO: jedna URL adresa pro každý jazyk a atribut hreflang?
Dnes ne. Jazyk návštěvníka je uložen v souboru cookie a všechny jazykové verze jsou dostupné na stejných URL adresách, takže vyhledávače indexují pouze zdrojový jazyk.
Názvy stránek a popisy můžete přeložit pomocí tDynamicAll v generateMetadata. Pokud právě teď potřebujete indexované URL adresy pro jednotlivé jazyky, použijte knihovnu s lokalizovaným směrováním, jako je například next-intl nebo Paraglide JS.
Jak mohu přeložit dynamický obsah z CMS, API nebo od uživatelů?
Plugin překládá pouze text obsažený ve vašem kódu. Pro obsah, ke kterému se váš kód nikdy nedostane, zavolejte tDynamic, tDynamicAll nebo tDynamicHtml z @weglot/translate-react/dynamic v serverových komponentách Next.js.
Pokud zpracování API trvá déle než 500 ms nebo je text vyžádán poprvé, vrátí se zdrojový text. Překlad bude k dispozici při následujícím požadavku. Pokud si data ukládáte do mezipaměti sami, přizpůsobte obsah mezipaměti jazyku návštěvníka.
Next.js nebo Vite: co se změní?
Next.js používá withWeglot z @weglot/translate-react/next a WeglotProvider z @weglot/translate-react/react/next. Vite používá weglotPlugin z @weglot/translate-react/vite a WeglotProvider z @weglot/translate-react/react. Webpack používá weglotPlugin z @weglot/translate-react/webpack.
Funkce dynamického obsahu fungují pouze v serverových komponentách Next.js.
Funguje to s React Server Components?
Ano, pomocí Next.js App Router. Import WeglotProvider z @weglot/translate-react/react/next tak, aby se při změně jazyka aktualizovaly komponenty vašeho serveru. tDynamic, tDynamicAll a tDynamicHtml běží na straně serveru, v serverových komponentách.
Co se stane, když spustím kompilaci?
Plugin vyhledá text v kódu JSX pod sourceRoot a požádá API Weglot o překlady, které mu chybí. Weglot je vygeneruje pomocí LLM a sestavení čeká až translationTimeout (ve výchozím nastavení 300 sekund). Poté zapíše public/translations/<locale>.json.
Pokud se překlad nezdaří, sestavení selže a přijatá data zůstanou v lokální mezipaměti: pro pokračování proveďte sestavení znovu. S buildMode: "cache-only", sestavení neprovádí žádná síťová volání.
Kde jsou překlady uloženy?
Ve vašem projektu Weglot , kde je můžete zkontrolovat a upravit. Každá sestava si také uchovává překlady, které obdržela, v <sourceRoot>/weglot/cache/<locale>.json. Tuto složku zařaďte do sestavení bez volání API, nebo ji ignorujte. public/translations/ se vygeneruje a vloží se do .gitignore.
Co se překládá a jak mohu něco vynechat?
Text v JSX, řetězcové literály uvnitř výrazů JSX, řetězce načtené z konstant a atributy, jako například title, alt, placeholder a aria-label. Kód, URL adresy, názvy tříd a řetězce mimo JSX zůstávají beze změny. Přidat translate="no" nebo data-weglot-skip chcete-li zachovat prvek v původním jazyce. Definujte si vlastní textové vlastnosti pomocí translatableAttributes.
Udělejte svou aplikaci v Reactu vícejazyčnou, aniž byste ji museli přepisovat
Nainstalujte balíček, zadejte svůj API klíč a spusťte kompilaci.
$ npm install @weglot/translate-react
Chcete si to raději udělat sami? Přečtěte si dokumentaci nebo si balíček prohlédněte na npm