Udhëzues

Si të shtosh disa gjuhë në aplikacionin ose faqen tënde

Për të shtuar disa gjuhë në një aplikacion, zhvendos çdo pjesë të tekstit të ndërfaqes në skedarë përkthimi (një për gjuhë), ngarko them me një bibliotekë i18n, dhe shto një ndërrues gjuhe që e kujton zgjedhjen. Për faqet publike që dëshiron t'i gjejë kërkimi, jep çdo gjuhe URL të veten, si /fr/, dhe lidh versionet me etiketa hreflang. Pastaj trajto pjesët që njerëzit i harrojnë: datat, numrat dhe monedhat, tekstin më të gjatë në disa gjuhë, shkrimet nga e djathta në të majtë dhe përmbajtjen e ruajtur në bazën e të dhënave.

Fjalët që do të dëgjosh

  • Ndërkombëtarizimi (i18n): përgatitja e kodit për të mbështetur çdo gjuhë — pa tekste të shkruara fikst, formatim i ndjeshëm ndaj gjuhës, dizajn fleksibël. Numri "18" është numri i shkronjave mes i-së dhe n-së.
  • Lokalizimi (l10n): përshtatja e aplikacionit për një gjuhë ose treg të caktuar, kryesisht përkthim, ndonjëherë edhe monedhë, imazhe dhe tekst ligjor.
  • Lokaliteti (locale): një gjuhë plus, nëse dëshiron, një rajon, si en-GB ose pt-BR.

Bëje i18n një herë, dhe shtimi i çdo gjuhe të re bëhet kryesisht punë përkthimi.

Opsionet dhe kompromiset

QasjaSi funksiononE mirë përKompromisi
Bibliotekë i18n + skedarë përkthimi (p.sh. react-i18next, next-intl, vue-i18n)Teksti jeton në skedarë JSON për çdo lokalitet; komponentët kërkojnë çelësaShumicën e aplikacioneveRefaktorim fillestar; përkthime për t'u mbajtur
Sistem menaxhimi i përkthimeve (p.sh. Crowdin, Lokalise, Phrase)Redaktor i hostuar për përkthuesit, i sinkronizuar me skedarët e tuShumë gjuhë, disa përkthuesI paguar; një mjet tjetër për t'u konfiguruar
Përkthim automatik ose me AI gjatë ndërtimitGjeneron drafte përkthimesh me një API, pastaj rishikimTë arrish shumë gjuhë shpejtCilësia duhet kontrolluar; kosto API
Përkthim automatik i shfletuesit ose i widget-itShfletuesi i vizitorit përkthen faqen në fluturimAsgjë që kontrollon tiPa kontroll cilësie; faqet e përkthyera nuk indeksohen si të tuajat
Faqe të veçanta për çdo gjuhëFaqe e dyfishuar për çdo tregTregje shumë të ndryshmeGjithçka mbahet dy herë

Për shumicën e aplikacioneve, një bibliotekë standarde i18n me skedarë përkthimi është baza e duhur. Bëj drafte me përkthim automatik ose me AI nëse dëshiron, pastaj kërko nga folës të rrjedhshëm të shqyrtojnë atë që klientët shohin më shpesh.

Pjesët e një aplikacioni shumëgjuhësh

Skedarët e përkthimit

Në vend të <h1>Mirë se u kthyet</h1>, kodi thotë t('dashboard.welcome'), dhe çdo lokalitet ka një skedar me tekstin:

{
  "dashboard": {
    "welcome": "Mirë se u kthyet, {{name}}",
    "items_one": "{{count}} artikull",
    "items_other": "{{count}} artikuj"
  }
}

Përdor vende mbajtëse për ndryshoret në vend që të bashkosh copëza fjalish — renditja e fjalëve ndryshon mes gjuhëve. Dhe përdor rregullat e shumësit të bibliotekës: anglishtja ka dy forma (1 item, 2 items), por disa gjuhë kanë tre, katër ose më shumë.

Formatimi i datave, numrave dhe parasë

Mos i formato këto me dorë. API-ja e integruar e shfletuesit Intl formaton për çdo lokalitet: 1,234.5 në anglisht është 1.234,5 në gjermanisht; datat ndërrojnë mes formatit ditë-para dhe muaj-para; simbolet e monedhës lëvizin. Ruaj datat në UTC dhe paratë si numra me një kod monedhe, dhe formato vetëm për shfaqje.

Dizajn që zgjerohet

Teksti i përkthyer shpesh është më i gjatë se në anglisht — sidomos fjalët gjermane dhe finlandeze. Shmang butonat me gjerësi fikse dhe etiketat e prera, dhe testo me gjuhën tënde më të gjatë.

Gjuhët nga e djathta në të majtë

Arabishtja, hebraishtja, persishtja dhe urdishtja lexohen nga e djathta në të majtë. Vendos dir="rtl" në faqe për ato lokalitete dhe përdor vetitë logjike të CSS (margin-inline-start në vend të margin-left; në Tailwind, ms-4 në vend të ml-4), që dizajni të pasqyrohet vetvetiu. Ikonat që tregojnë drejtimin, si shigjetat, duhet gjithashtu të kthehen.

Ndërrues gjuhe dhe zbulim

Shfaq një ndërrues në çdo faqe, me emrin e secilës gjuhë në gjuhën e vet ("Deutsch", "Français", "العربية") në vend të flamujve — flamujt përfaqësojnë vende, jo gjuhë. Zbulo gjuhën e preferuar të shfletuesit në vizitën e parë për të sugjeruar një version, por lëre zgjedhjen e qartë të vizitorit të mbizotërojë dhe kujtoje.

URL-të dhe SEO

Për faqet që dëshiron të shfaqen në rezultatet e kërkimit, çdo gjuhë ka nevojë për URL të veten. Që nga shtatori 2026, udhëzimi i Google për faqet shumëgjuhëshe është:

  • URL të veçanta për çdo gjuhë — nënfolderët (example.com/fr/) janë më të thjeshtët; nëndomenet dhe domenet e vendeve gjithashtu funksionojnë. Parametrat e URL-së (?lang=fr) nuk rekomandohen.
  • Mos ndërro gjuhën vetëm me cookie ose me cilësimin e shfletuesit; crawler-i i Google mund të mos i shohë kurrë versionet e tjera.
  • Mos ridrejto automatikisht sipas gjuhës; lidh versionet me njëri-tjetrin.
  • Përdor hreflang për t'i treguar Google cilat faqe janë përkthime të njëra-tjetrës. Çdo version duhet të listojë veten dhe të gjitha të tjerat, përndryshe shënimet mund të injorohen. Shto x-default për faqen rezervë.
  • Google e zbulon gjuhën e një faqeje nga përmbajtja e dukshme, jo nga lang ose hreflang — kështu që përkthe të gjithë faqen, jo vetëm menunë.

Vendos gjithsesi <html lang="fr"> në çdo version: lexuesit e ekranit e përdorin për të zgjedhur shqiptimin e duhur, që është kërkesë e qasshmërisë.

Ekranet e aplikacionit për përdoruesit e kyçur nuk kanë nevojë të indeksohen, kështu që për to mjafton ruajtja e gjuhës në profilin e përdoruesit. Shiko SEO për faqet e ndërtuara me AI për të pasur faqet publike të kaluara nga crawler-at së pari.

Përmbajtja në bazën e të dhënave

Teksti i ndërfaqes jeton në skedarë; përmbajtja si emrat e produkteve, postimet e blogut dhe kategoritë jeton në bazën e të dhënave. Dy modele të zakonshme:

  • Tabelë përkthimesh: product_translations (product_id, locale, name, description). E pastër dhe shkallëzohet për shumë gjuhë.
  • Një kolonë JSON për çdo fushë: name: {"en": "...", "fr": "..."}. Më e thjeshtë për pak gjuhë.

Vendos çfarë ndodh kur mungon një përkthim — zakonisht kthehu te gjuha e parazgjedhur në vend që të shfaqësh hapësirë boshe.

Emailet dhe njoftimet

Ruaj gjuhën e çdo përdoruesi dhe përdoreni për emailet, njoftimet dhe PDF-të gjithashtu. Është e lehtë të përkthesh aplikacionin dhe të harrosh që emaili i mirëseardhjes ende arrin në anglisht.

Prompte që funksionojnë

Shto ndërkombëtarizimin me react-i18next. Zhvendos çdo tekst të dukshëm për përdoruesin në locales/en.json me çelësa me hapësira emrash, përdor ndërfutjen dhe rregullat e shumësit në vend të bashkimit të tekstit, dhe formato datat, numrat dhe çmimet me Intl sipas lokalitetit aktual. Mos ndrysho ende asnjë fjalë.

Shto frëngjisht dhe gjermanisht. Faqet publike të marketingut marrin prefiksët e URL /fr/ dhe /de/ me anglishten në rrënjë, lidhje hreflang në çdo faqe (duke përfshirë vetë-referencën dhe x-default), dhe html lang të vendosur për çdo faqe. Shto një ndërrues gjuhe që shfaq emrin amtar të çdo gjuhe. Për faqet e përdoruesve të kyçur, ruaje gjuhën në profilin e përdoruesit.

Shto arabishten me mbështetje nga e djathta në të majtë: vendos dir="rtl" për arabishten, zëvendëso margjinat dhe mbushjet majtas/djathtas me vetitë logjike, pasqyro ikonat drejtuese, dhe kontrollo që format dhe tabelat ende lexohen saktë.

Hap pas hapi

  1. Zgjidh gjuhën e parë shtesë sipas kërkesës reale — ku janë vizitorët ose klientët e tu.
  2. Ndërkombëtarizo kodin: zhvendos tekstet në skedarë, shto shumësin dhe formatimin me Intl. Publiko këtë vetëm me anglisht dhe kontrollo që asgjë nuk ndryshoi.
  3. Vendos strukturën e URL-ve për faqet publike dhe shto hreflang.
  4. Përkthe: bëj draftin me përkthim automatik ose me AI, pastaj shqyrtoje me një folës të rrjedhshëm. Jepi përkthuesve kontekst — një fjalë si "Book" është emër në një ekran dhe folje në tjetrin.
  5. Përkthe përmbajtjen e bazës së të dhënave dhe cakto rezervat.
  6. Lokalizo pjesën tjetër: emailet, mesazhet e gabimit, faqet ligjore, imazhet me tekst brenda.
  7. Testo çdo gjuhë në gjerësinë e telefonit, dhe me nga e djathta në të majtë nëse është e rëndësishme.
  8. Vendos një proces që veçoritë e reja të publikohen me përkthime, jo muaj më vonë.

Gabime të zakonshme

  • Bashkimi i fjalive ("You have " + n + " messages"), që prishet në gjuhë të tjera.
  • Tekst i shkruar fikst i mbetur në komponentë, mesazhe gabimi dhe tekste validimi.
  • Formatimi i datave dhe çmimeve me dorë.
  • Flamuj për gjuhët, dhe ridrejtime automatike që e bllokojnë njerëzin në versionin e gabuar.
  • Një URL për të gjitha gjuhët në faqet që dëshiron të indeksohen.
  • Mungesë e lidhjeve kthyese hreflang, kështu që Google i injoron shënimet.
  • Përkthimi i ndërfaqes por jo i përmbajtjes, ose e kundërta.
  • Përkthim automatik i pashqyrtuar në faqet e çmimeve, ligjore dhe të pagesës.

Lista e kontrollit për shumëgjuhësi

  • Pa tekste të shkruara fikst të dukshme për përdoruesin; rregullat e shumësit dhe vendet mbajtëse të përdorura
  • Datat, numrat dhe monedhat të formatuara me Intl
  • Ndërrues gjuhe me emra amtarë në çdo faqe; zgjedhja kujtohet
  • URL të veçanta për çdo gjuhë për faqet publike; pa ridrejtime të detyruara
  • hreflang në çdo version, duke përfshirë vetveten dhe x-default
  • html lang (dhe dir="rtl" kur nevojitet) të vendosur për çdo faqe
  • Përmbajtja e bazës së të dhënave e përkthyer me rezerva të arsyeshme
  • Emailet dhe njoftimet dërgohen në gjuhën e përdoruesit
  • Teksti për klientët i shqyrtuar nga një folës i rrjedhshëm

Shumë gjuhë në Mythex

Në Mythex, shton gjuhët duke kërkuar në chat — nuk ka panel të veçantë përkthimi — kështu që prompte-t e mësipërme funksionojnë siç janë shkruar. Bëj hapin e ndërkombëtarizimit të parin dhe kontrolloje në Preview para se të shtosh gjuhë; është një refaktorim i madh, dhe një checkpoint në chat të jep një pikë kthimi nëse diçka prishet (chat dhe checkpoint-et). Nëse dëshiron që aplikacioni të përkthejë automatikisht përmbajtjen me një API AI ose përkthimi, kjo përdor çelësin tënd API, të ruajtur te cilësimet e projektit (variablat e mjedisit dhe sekretet); si të përdorësh API-të LLM shpjegon kostot. Publiko përsëri kur gjuhët e reja të jenë gati.

Pyetje

Cila është diferenca midis i18n dhe lokalizimit?

Ndërkombëtarizimi (i18n) është përgatitja e kodit që të mbështesë shumë gjuhë: pa tekst të shkruar fikst, data dhe numra të ndjeshëm ndaj gjuhës, dizajn që trajton fjalë më të gjata dhe shkrim nga e djathta në të majtë. Lokalizimi (l10n) është puna për ta përshtatur për një gjuhë ose treg të caktuar, kryesisht përkthimi.

A mund të përdor thjesht përkthim automatik ose me AI për aplikacionin tim?

Për një draft të parë, po — përkthimi modern automatik dhe me AI është i mirë për tekstin e ndërfaqes. Kërkoji një folësi të rrjedhshëm të shqyrtojë çdo gjë që shihet nga klientët, veçanërisht tekstet ligjore, çmimet dhe tekstet e marketingut, sepse tonaliteti dhe gabimet e vogla kanë rëndësi aty.

A duhet që çdo gjuhë të ketë URL të veten?

Për faqet publike që dëshiron të shfaqen në rezultatet e kërkimit, po. Google rekomandon URL të veçanta për çdo gjuhë, si /fr/ dhe /de/, në vend që të ndërrohet gjuha me cookie ose me cilësimin e shfletuesit, sepse crawler-i i tij mund të shohë vetëm një version.

A duhet t'i ridrejtoj vizitorët sipas gjuhës së shfletuesit?

Sugjero, mos detyro. Google këshillon kundër ridrejtimeve automatike sipas gjuhës, sepse mund t'i pengojnë njerëzit dhe crawler-at të arrijnë versionet e tjera. Shfaq një njoftim të vogël që ofron gjuhën përkatëse dhe një ndërrues të dukshëm në çdo faqe.

Mythex · Pricing · Ndërtoni çdo gjë me AI · Shablone faqesh dhe aplikacionesh · Mythex në krahasim · Fjalori i ndërtimit të aplikacioneve me AI · Mjete falas për ndërtimin e aplikacioneve me AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی 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 Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)