Juhendid

Kuidas lisada oma äppi või veebisaidile mitu keelt

Mitme keele lisamiseks äppi tõsta kogu kasutajale nähtav tekst tõlkefailidesse (üks fail iga keele kohta), laadi need i18n-teegiga ja lisa keelevahetaja, mis mäletab valikut. Avalike lehtede puhul, mida tahad otsingus leida, anna igale keelele oma URL, näiteks /fr/, ja seo versioonid hreflang-märgenditega. Seejärel tegele asjadega, mida inimesed unustavad: kuupäevade, numbrite ja valuutadega, pikemate tekstidega mõnes keeles, paremalt vasakule kirjutatavate keeltega ja andmebaasis oleva sisuga.

Mõisted, mida kuuled

  • Rahvusvahelistamine (i18n): koodi ettevalmistamine, et see toetaks mis tahes keelt – kõvakodeeritud stringe pole, kohaliku keele järgi vormindatud kuupäevad ja numbrid, paindlikud paigutused. Number „18“ on tähtede arv i ja n vahel.
  • Lokaliseerimine (l10n): äpi kohandamine konkreetsele keelele või turule, peamiselt tõlkimine, mõnikord ka valuuta, pildid ja õigustekst.
  • Lokaat (locale): keel ja vajadusel piirkond, näiteks en-GB või pt-BR.

Tee i18n üks kord ära, siis on iga uue keele lisamine peamiselt tõlkimistöö.

Valikud ja kompromissid

LähenemineKuidas töötabSobibKompromiss
i18n-teek + tõlkefailid (nt react-i18next, next-intl, vue-i18n)Tekst on JSON-failides iga lokaadi kohta; komponendid otsivad võtmeidEnamik äppeEsialgne ümberkorraldus; tõlkeid tuleb hooldada
Tõlkehaldussüsteem (nt Crowdin, Lokalise, Phrase)Hostitud redaktor tõlkijatele, sünkroonitud sinu failidegaPalju keeli, mitu tõlkijatTasuline; veel üks tööriist seadistada
Masin- või AI-tõlge ehitusajalGenereeri tõlkemustandid API-ga ja vaata need ülePaljude keelte kiire saavutamineKvaliteeti tuleb kontrollida; API-kulud
Brauseri- või vidinatõlge automaatseltKülastaja brauser tõlgib lehe koheSinu kontrolli all pole midagiKvaliteedikontrolli pole; tõlgitud lehti ei indekseerita sinu omadena
Eraldi saidid keele kohtaSama sait iga turu jaoksVäga erinevad turudKõike hooldatakse kaks korda

Enamiku äppide jaoks on hea alus standardne i18n-teek tõlkefailidega. Mustandeid võid teha masin- või AI-tõlkega, aga vaata üle emakeelena kõneleja abiga need, mida kliendid kõige rohkem näevad.

Mitmekeelse äpi osad

Tõlkefailid

Selle asemel, et kirjutada <h1>Tere tulemast tagasi</h1>, kirjutab kood t('dashboard.welcome'), ja igas lokaadis on fail koos tekstiga:

{
  "dashboard": {
    "welcome": "Tere tulemast tagasi, {{name}}",
    "items_one": "{{count}} kirje",
    "items_other": "{{count}} kirjet"
  }
}

Muutujate jaoks kasuta kohatäitjaid, mitte ära liida lauseid kokku, sest sõnade järjekord erineb keeltes. Kasuta teegi mitmuse reegleid: inglise keeles on kaks vormi (1 item, 2 items), aga mõnes keeles on kolm, neli või rohkem.

Kuupäevade, numbrite ja raha vormindamine

Ära vorminda neid käsitsi. Brauseri sisseehitatud Intl-API vormindab iga lokaadi jaoks: 1,234.5 on inglise keeles saksa keeles 1.234,5 ja eesti keeles 1 234,5; kuupäevad vahetavad päeva ja kuu järjekorda; valuutamärgid liiguvad. Salvesta kuupäevad UTC-s ja raha numbritena koos valuutakoodiga ning vorminda ainult kuvamiseks.

Paigutus, mis venib

Tõlgitud tekst on sageli pikem kui inglise keeles, eriti saksa ja soome keeles. Väldi fikseeritud laiusega nuppe ja kärbitud silte ning testi oma kõige pikema keelega.

Paremalt vasakule keeled

Araabia, heebrea, pärsia ja urdu keel loetakse paremalt vasakule. Nende lokaatide puhul sea lehele dir="rtl" ja kasuta CSS-i loogilisi omadusi (margin-inline-start margin-left asemel; Tailwindis ms-4 asemel ml-4), et paigutus peegelduks ise. Suunda näitavad ikoonid, nagu nooled, tuleb samuti peegeldada.

Keelevahetaja ja tuvastamine

Näita keelevahetajat igal lehel, märgistatuna iga keele enda nimega („Deutsch“, „Français“, „العربية“), mitte lippudega – lipud tähistavad riike, mitte keeli. Tuvasta brauseri eelistatud keel esimesel külastusel, et soovitada versiooni, aga külastaja selge valik on esikohal ja jääb meelde.

URL-id ja SEO

Otsingutulemustes leitavate lehtede jaoks vajab iga keel oma URL-i. Google'i juhised mitmekeelsetele saitidele seisuga september 2026:

  • Eraldi URL-id iga keele jaoks – alamkataloogid (example.com/fr/) on kõige lihtsamad; toimivad ka alamdomeenid ja riigidomeenid. URL-i parameetrid (?lang=fr) ei ole soovitatavad.
  • Ära vaheta keelt ainult küpsise või brauseri seade järgi; Google'i robot ei pruugi teisi versioone kunagi näha.
  • Ära suuna keele järgi automaatselt ümber; lingi versioonid omavahel.
  • Kasuta hreflang-i, et öelda Google'ile, millised lehed on üksteise tõlked. Iga versioon peab loetlema iseennast ja kõiki teisi, muidu võidakse märgendid ignoreerida. Lisa x-default varulehe jaoks.
  • Google tuvastab lehe keele nähtava sisu järgi, mitte lang-atribuudi ega hreflang-i järgi – seega tõlgi kogu leht, mitte ainult menüü.

Pane siiski iga versiooni juurde <html lang="fr">: ekraanilugejad kasutavad seda õige hääldamise valimiseks, ja see on juurdepääsetavuse nõue.

Sisselogitud äpi ekraane pole vaja indekseerida, nii et nende jaoks piisab keele salvestamisest kasutaja profiili. Kuidas avalikud lehed üldse robotite poolt leitakse, selgitab SEO AI-ga ehitatud veebisaitidele.

Sisu andmebaasis

Liidese tekst elab failides; sisu, nagu toodete nimed, blogipostitused ja kategooriad, elab andmebaasis. Kaks levinud mustrit:

  • Tõlgete tabel: product_translations (product_id, locale, name, description). Puhas ja skaleerub paljudele keeltele.
  • JSON-veerg iga välja jaoks: name: {"en": "...", "fr": "..."}. Lihtsam, kui keeli on vähe.

Otsusta ette, mis juhtub, kui tõlge puudub – tavaliselt tuleb kasutada vaikekeelt, mitte näidata tühja kohta.

E-kirjad ja teavitused

Salvesta iga kasutaja keel ja kasuta seda ka e-kirjade, teavituste ja PDF-ide jaoks. Äpi tõlkimine on lihtne, ja siis unustatakse kergesti, et tervituskiri tuleb endiselt inglise keeles.

Töötavad juhised

Lisa rahvusvahelistamine react-i18next abil. Tõsta iga kasutajale nähtav tekst faili locales/en.json nimeruumitud võtmetega, kasuta sõnade liitmise asemel interpolatsiooni ja mitmuse reegleid ning vorminda kuupäevad, numbrid ja hinnad Intl-iga praeguse lokaadi järgi. Ära muuda veel ühtegi sõnastust.

Lisa prantsuse ja saksa keel. Avalikel turunduslehtedel olgu URL-ide ees /fr/ ja /de/, inglise keel jääb juurtasemele, igal lehel on hreflang-lingid (sh iseviide ja x-default) ja html lang on igal lehel omal kohal. Lisa keelevahetaja, mis näitab iga keele enda nime. Sisselogitud lehtede jaoks salvesta keel kasutaja profiilile.

Lisa araabia keel paremalt vasakule toega: araabia keele puhul sea dir="rtl", asenda vasak- ja parempoolsed marginaalid ja täidised loogiliste omadustega, peegelda suunda näitavad ikoonid ning kontrolli, et vormid ja tabelid loevad endiselt korrektselt.

Samm-sammult

  1. Vali esimene lisakeel nõudluse järgi – kust tulevad su külastajad või kliendid.
  2. Tee kood rahvusvaheliseks: tõsta stringid failidesse, lisa mitmused ja Intl-vormindus. Saada see välja ainult inglise keeles ja kontrolli, et midagi ei muutunud.
  3. Otsusta URL-ide struktuur avalike lehtede jaoks ja lisa hreflang.
  4. Tõlgi: tee mustand masin- või AI-tõlkega ja vaata üle emakeelena kõneleja. Anna tõlkijatele kontekst – sõna „Book“ on ühel ekraanil nimisõna ja teisel tegusõna.
  5. Tõlgi andmebaasi sisu ja sea varutekstid.
  6. Lokaliseeri ülejäänu: e-kirjad, veateated, õigusleheküljed ja pildid, millel on tekst.
  7. Testi iga keelt telefoni laiuses ja paremalt vasakule, kui see on vajalik.
  8. Sea protsess, et uued funktsioonid tuleksid välja koos tõlgetega, mitte kuude pärast.

Levinud vead

  • Lausete liitmine ("You have " + n + " messages"), mis teistes keeltes puruneb.
  • Kõvakodeeritud tekst komponentides, veateadetes ja valideerimisstringides.
  • Kuupäevade ja hindade käsitsi vormindamine.
  • Lipud keelte tähisena ja automaatsed ümbersuunamised, mis jätavad inimesed valesse versiooni.
  • Üks URL kõigile keeltele lehtedel, mida tahad indekseerituna näha.
  • Puuduvad hreflang-i tagasilingid, nii et Google ignoreerib märgendeid.
  • Liides on tõlgitud, aga sisu mitte, või vastupidi.
  • Ülevaatamata masintõlge hinna-, õigus- ja ostulehtedel.

Mitmekeelsuse kontrollnimekiri

  • Kasutajale nähtavaid stringe pole kõvakodeeritud; kasutatud on mitmuse reegleid ja kohatäitjaid
  • Kuupäevad, numbrid ja valuutad on vormindatud Intl-iga
  • Keelevahetaja, mis näitab keeli nende enda nimedega, on igal lehel; valik jääb meelde
  • Avalikel lehtedel on iga keele jaoks eraldi URL-id; sunnitud ümbersuunamisi pole
  • hreflang on igal versioonil, sh iseviide ja x-default
  • html lang (ja vajadusel dir="rtl") on seatud iga lehe kohta
  • Andmebaasi sisu on tõlgitud mõistlike varuvariantidega
  • E-kirjad ja teavitused saadetakse kasutaja keeles
  • Kliendile nähtava teksti on üle vaadanud emakeelena kõneleja

Mitu keelt Mythexis

Mythexis lisad keeli chatis küsides – eraldi tõlkepaneeli pole – nii et ülaltoodud juhised töötavad nii, nagu on kirjutatud. Tee esmalt i18n-samm ja kontrolli seda eelvaates enne keelte lisamist; see on suur ümberkorraldus ja vestluse kontrollpunkt annab tagasipöördumispunkti, kui midagi puruneb (vestlus ja kontrollpunktid). Kui tahad, et äpp tõlgiks sisu automaatselt AI- või tõlke-API abil, kasutab see sinu enda API-võtit, mis salvestatakse projekti seadetesse (keskkonnamuutujad ja saladused); kuidas kasutada LLM-API-sid selgitab kulusid. Avalda uuesti, kui uued keeled on valmis.

Küsimused

Mis vahe on i18n-il ja lokaliseerimisel?

Rahvusvahelistamine (i18n) on koodi ettevalmistamine, et see toetaks paljusid keeli: kõvakodeeritud teksti pole, kohaliku keele järgi vormindatud kuupäevad ja numbrid, paigutused, mis taluvad pikemaid sõnu ja paremalt vasakule kirjutatavaid keeli. Lokaliseerimine (l10n) on töö, millega kohandad äpi ühele keelele või turule, peamiselt tõlkimine.

Kas ma võin äpi tõlkimiseks lihtsalt kasutada masin- või AI-tõlget?

Esimese mustandi jaoks jah – kaasaegne masin- ja AI-tõlge on liidese teksti puhul hea. Vaata kliendile nähtav sisu üle emakeelena kõneleja abiga, eriti õigustekst, hinnad ja turundustekst, sest seal on tähtsad toon ja väikesed vead.

Kas iga keel peaks saama oma URL-i?

Avalike lehtede puhul, mida tahad otsingutulemustes näha, jah. Google soovitab eraldi URL-e iga keele jaoks, näiteks /fr/ ja /de/, mitte keele vahetamist küpsise või brauseri seadete järgi, sest robot võib muidu näha ainult ühte versiooni.

Kas peaksin külastajaid suunama ümber brauseri keele järgi?

Paku, ära sunni. Google soovitab automaatseid keeleümbersuunamisi vältida, sest need võivad takistada inimestel ja robotitel teiste versioonide juurde jõudmist. Näita väikest teadet, mis pakub sobivat keelt, ja nähtavat keelevahetajat igal lehel.

Mythex · Pricing · Ehita kõike AI-ga · Veebilehtede ja rakenduste mallid · Mythex võrdluses · Tehisintellektiga rakenduste ehitamise sõnastik · Tasuta tööriistad tehisintellektiga rakenduste ehitamiseks · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)