@weglot/translate-react
Çevir
Tepki ver,
Next.js veya
Vite uygulama
T() wrapper'ı yok, JSON dosyası yok. Bir build eklentisi ve Weglot API anahtar: JSX'inizdeki metin, uygulamanız oluşturulduğunda çevrilir ve ekibiniz çevirileri düzenler. Weglot Koda dokunmadan.
Promptu şu için kopyalayın · · · Belgeleri okuyun · NPM'de görüntü
111.368'den fazla küresel marka, web sitelerinin çevirisinde Weglot'a güveniyor
// what your users see
Senin yazdığın JSX, her dilde
Metni bir kez yaz. Weglot Kurulum sırasında çeviriyor.
Aynı düğme, beş dil. Genişlikler canlı ölçülüyor.
export default function Settings() { return ( <button>Save changes</button> ); } // no key, no t(), no en.json
Anahtar yok, t() yok. Metni JSX'te yaz, hepsi bu.
// how it works
Dört adım. Bileşenleriniz olduğu gibi kalır.
Kaynak ve hedef diller ise Weglot proje, kodunuzdan değil. Eklenti, JSX'inizdeki metni derleme zamanında okur ve çevirilerini getirir.
-
Paketi kur ve kendi API Anahtar
Bir Weglot 2.0 projesi, sonra kopyalaması API Proje ayarlarından anahtar noktasını alabilir. Başlıyor
pk_. Devam et.envsürüm kontrolünden çıkmış.terminal · .env$ npm install @weglot/translate-react # .env WEGLOT_API_KEY=pk_your_weglot_api_key
-
Eklentiyi ekle
Next.js yapılandırmanızı şu kodla sarın:
withWeglot. NoktasourceRootsayfalarınızı ve bileşenlerinizi tutan klasöre ulaşabilirsiniz.Ekle
weglotPluginVite yapılandırmanıza geçin. Webpack ile onu şu adresten aktarın@weglot/translate-react/webpackbunun yerine.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" })], });
-
Sağlayıcıyı ekleyin
Kök düzeninizi şu kodla sarın:
WeglotProviderNext.js giriş noktasından başlayarak, böylece dil değiştirmek sunucu bileşenlerinizi yeniler.Uygulamanızı şöyle paketleyin
WeglotProvider, mümkün olan en erken dönemde.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>, );
-
Projenizin her dilinde inşa edin ve gönderin
Her yapı eksik çevirileri getiriyor Weglot ve yazar
public/translations/<locale>.json. O klasörü görmezden gelin. Bir dil değiştirici ekleyinLocaleSwitcherveyauseWeglotContext..gitignorepublic/translations/
// under the hood
İnsat yaptığınızda ne olur
- 01 JSX'inizi okuyor
- 02 Yeni metin gönderiyor
- 03Weglot Çeviri
- 04 Her dil için bir dosya yazar
// every language of your project
Bir yapı, eklediğiniz her dil
Dilleri seç Weglot. Bir sonraki yapım onları gönderiyor.
enBir dil ekleyin Weglot, sonra oluştur. Çeviri dosyaları uygulamanızla birlikte dağıtılır.
// built for coding agents
Ajanınız bunu ayarlıyor
Yeniden yazma şartı yok, bu yüzden değişiklik küçük ve kolayca gözden geçiriliyor.






Herhangi bir kodlama ajanı. Zaten kullandığınız ajana bir prompt yapıştırın.
Docs ajanları okuyabilir. Her sayfa için bir llms.txt dizini ve Markdown.
package.jsonnext.config.tslayout.tsx.gitignore.envİnceleebileceğiniz bir fark. Hiçbir şartı yeniden yazma.
Claude Kodu'na yapıştır
İmleçte yapıştır (Ajan modu)
Kodeks'e yapıştır$ npm install @weglot/translate-react
İsteyi kopyalayın. Başlama rehberindeki adımlarla aynı.
// what gets translated
Eklenti metni koddan tanır
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> ); }
Metin çevrilir. JSX metni, kelime harfleri, sabitler, alt, başlık, yer tutucu, arya-etiket.
Kod dokunulmaz. Sınıf isimleri, URL'ler, mantık.
Karar senin. Herhangi bir öğeyi olduğu gibi tutun ya da veri kullanın-weglot-Atla.
// for your team
Koda dokunmadan düzenleme ve inceleme
İnceleme Weglot. Ürün, pazarlama ve çevirmenler ifadeyi düzenler.
Bir kelimeyi düzeltmek için bir pull request yok.
Nelerin incelendiğini takip edin. Her dil için ilerlemeyi görün.
// fit
Ne zaman kullanılmalıdır Weglot, ve yapmamaları
Paket ön izlemede. Bugün tam olarak burada yer alıyor.
Next.js Uygulama Yönlendiricisi
DesteklenenNext.js 15 veya 16.0.4+, React 19.
Vite
DesteklenenReact 19, Node 20.9+. Webpack de çalışıyor.
React Server Bileşenleri
DesteklenenDil değiştirmek, sunucu bileşenlerinizi yeniler.
CMS ve API İçerik
DesteklenenIle tDynamic sunucu bileşenlerinde Next.js.
Geliştirici olmayan düzenlemeler
Desteklenenİnceleme ve düzenleme Weglot Gösterge paneli.
Her dil için bir URL
Henüz değilDil bugün bir çerezde saklanıyor. Şimdi dil başına indekslenmiş URL'lere ihtiyacım var: next-intl veya Paraglide JS kullanın.
Depo dosyaları olarak çeviriler
Çeviri EylemiWeglot JSON yerel dosyalarınızı GitHub Actions'ta çeviriyor ve bir pull request açıyor. Belgeleri →
React 18, Pages Router
DesteklenmiyorAyrıca 14 yaş ve üzeri Next.js.
CMS veya web sitesi oluşturucu
Bu paket değilSiteniz React: Kullanım Weglot's CMS entegrasyonlar.
// compare
Neden klasik bir i18n kütüphanesi olmasın?
i18n kütüphaneleri, her dizeyi bir anahtarla değiştirmenizi ve her dil için bir dosya tutmanızı ister. Weglot Daha önce yazdığınız dizileri okur. İşte seçeneklerin karşılaştırılması.
| Kriterler | Weglot@weglot/translate-react |
next-intl / i18next | Paraglide JS | CMS Yerel yerelleştirme |
|---|---|---|---|---|
| Dizeleri t() veya mesaj fonksiyonlarında sarmak | JSX'te derleme sırasında hiçbir Metin algılanmaz. | Evett("key") her tel için. |
Evetm.key() mesaj fonksiyonları. |
Sadeceiçerikle kodunuzdaki Dizgiler için yine de bir kütüphane gerekiyor. |
| Dil başına çeviri dosyaları | Üretimi sürdürmek için yok, git-ignored. | Evet, genellikle her lokasyon için bir tane JSON dosyası olur. | Evet, her lokasyon için bir mesaj dosyası. | HayırDepo CMS. |
| Çok dilli yönlendirme ve SEO (dil başına URL, terk alanı) | HenüzDil bir çerezde saklanmıyor. Tüm diller için aynı URL'ler, kaynak dili indekslenmiş. | next-intl: Evet, yerel yönlendirme dahili var. i18next: çerçeve kurulumunuz üzerinden. | Evet, yerleşik yerelleştirilmiş URL'ler: yerel önekler, çevrilmiş yollar veya alan adları. Hreflang etiketlerini kendiniz ekleyin. | Ön kısımBaşsız bir CMS İçeriği yerel olarak saklar. URL'ler ve arrelanglar ön uçunuzdan gelir. |
| Sizin için oluşturulan çeviriler | EvetWeglot Yapı sırasında LLM ile çevriliyor. | Kendiçevirilerinizi veya TMS getirin. | Tooling, inlang CLI, makine çevirisi veya kodlama ajanınızla. | Ücretli planlarda ücretli eklentiyapay zeka çevirisi: İçerikli Yapay Zeka Eylemleri, Sanity AI Yardımı, Strapi AI Çevirileri. |
| Çevirileri geliştirici olmadan düzenleme | Evetİnceleme ve düzenleme Weglot Gösterge paneli. | JSON dosyalarını düzenleme ya da ayrı bir TMS eklemek yok. | Finkinlang'ın web editörü ile, bir GitHub hesabına sahip. | EvetT CMS editör. |
| Bir kodlama ajanı tarafından tek bir promptta kuruldu | Evet, bir kurulum, iki yapılandırma düzenlemesi. Aşağıda kopyalanabilir bir prompt. | Uzun görevAjan, her dizeyi anahtarlara ve dosyalara yeniden yazar. | Uzun görevinit Ajanlar için istekler olmadan çalışır, sonra her dizi bir m.key() mesaj. |
N/aYapılandırılmıştır CMS. |
SSS
SEO ile mi ilgileniyor: her dil için bir URL ve bir terk alanı?
Bugün değil. Ziyaretçinin dili bir çerezde saklanır ve her dil aynı URL'lerde sunulur, bu yüzden arama motorları yalnızca kaynak dili indeksler.
Sayfa başlıklarını ve açıklamalarını şu şekilde çevirebilirsiniz tDynamicAll içinde generateMetadata. Şimdi dil başına indekslenmiş URL'lere ihtiyacınız varsa, next-intl veya Paraglide JS gibi yerel yönlendirme içeren bir kütüphane kullanın.
Dinamik içeriği bir CMS, an API Ya da kullanıcılar?
Eklenti sadece kodunuzda yazılmış metni çeviriyor. Kodunuz hiç görmediği içerik için tDynamic, tDynamicAll veya tDynamicHtml from @weglot/translate-react/dynamic sunucu bileşenlerinde Next.js.
Eğer API 500 ms'den uzun sürse veya ilk kez metin istenirse, kaynak metni döndürürler. Çeviri daha sonraki bir istekte hazır olur. Verileri kendiniz önbelleyecekseniz, önbelleği ziyaretçinin diline bağlı yapın.
Next.js veya Vite: Ne değişir?
Next.js kullanımları withWeglot from @weglot/translate-react/next ve WeglotProvider from @weglot/translate-react/react/next. Vite kullanımları weglotPlugin from @weglot/translate-react/vite ve WeglotProvider from @weglot/translate-react/react. Webpack kullanımları weglotPlugin from @weglot/translate-react/webpack.
Dinamik içerik fonksiyonları yalnızca Next.js sunucu bileşenlerinde çalışır.
React Server Bileşenleri ile çalışıyor mu?
Evet, Next.js App Router ile. İçe aktarma WeglotProvider from @weglot/translate-react/react/next Böylece dil değiştirmek sunucu bileşenlerinizi yeniler. tDynamic, tDynamicAll ve tDynamicHtml sunucu tarafı, sunucu bileşenlerinde çalıştırın.
Ben inşa ettiğimde ne olur?
Eklenti, metni JSX'te şu şekilde bulur: sourceRoot ve soruyor Weglot API çeviriler açısından eksik. Weglot onları bir LLM ile oluşturur ve derleme bekler translationTimeout (varsayılan olarak 300 saniye). Sonra yazar public/translations/<locale>.json.
Eğer çeviri başarısız olursa, derleme başarısız olur ve aldığı şeyi yerel önbellekte tutar: devam etmek için tekrar derleyin. Ile buildMode: "cache-only", deri ağ çağrısı yapmıyor.
Çeviriler nerede saklanıyor?
Sizin Weglot projesi, onları inceleyip düzenlediğiniz bir proje. Her derleme ayrıca aldığı çevirileri de korur <sourceRoot>/weglot/cache/<locale>.json. O klasörü çağırmadan derleme için commit edin API, ya da görmezden gelin. public/translations/ üretilir ve içeri girer .gitignore.
Ne çevriliyor ve bir şeyi nasıl hariç tutabilirim?
JSX'teki metin, JSX ifadeleri içindeki dize literalleri, sabitlerden okunan dizeler ve aşağıdaki gibi nitelikler title, alt, placeholder ve aria-label. JSX dışındaki kod, URL'ler, sınıf adları ve dizileri olduğu gibi bırakılır. Ekle translate="no" veya data-weglot-skip Bir öğeyi orijinal dilde tutmak için. Kendi metin prop'larınızı şu şekilde ilan edin translatableAttributes.
React uygulamanızı yeniden yazmadan çok dilli hale getirin
Paketi kur, kendi API Anahtar, yapı.
$ npm install @weglot/translate-react
Kendiniz yapmayı mı tercih ediyorsunuz? Belgeleri okuyun veya paketi NPM'de izleyin