Localization — lényege, a tartalom nyelvhez és régióhoz igazítása

Szerző: IT Sectr Megjelenés: 2026-02-26 Olvasási idő: 7 perc

Localization (lokalizáció, l10n) — a mobilalkalmazás tartalmának a célközönség nyelvéhez, régiójához és kulturális jellemzőihez igazítása. Ellentétben a nemzetköziesítéssel (i18n), ahol a kódot a fordításra készítik elő, a lokalizáció maga a szövegek fordításának, a dátumok, számok és pénznemek formázásának, a képek kiválasztásának és a helyi normák figyelembevételének folyamata. iOS-en a fordítások a Localizable.strings fájlokban (minden nyelvhez .lproj mappák), Androidon a values-ru, values-de és más erőforráskönyvtárakban tárolódnak. Bővebben — az Android lokalizációs útmutatójában.

Főbb pontok

  • Localization (l10n) — az alkalmazás tartalmának fordítása és igazítása egy adott nyelvhez és régióhoz
  • Localizable.strings — iOS fájl, amely „kulcs" = „fordítás" párokat tartalmaz minden nyelvhez
  • values-ru — Android könyvtár orosz nyelvű erőforrásokkal (strings.xml)
  • Regionális igazítás — a dátumok, számok, képek, színek, jogi követelmények országonként eltérnek
  • Kulturális jellemzők — a színek, ikonok, gesztusok és példák meg kell feleljenek a helyi normáknak

Mi az a Localization (l10n) és miben különbözik az i18n-től?

Localization (rövidítve l10n — 10 betű az „l" és „n" között) — az alkalmazás egy adott nyelvhez és régióhoz igazításának folyamata. Ha az i18n az építészeti alap, akkor az l10n a kitöltés. Az i18n lehetővé teszi a fordítást, az l10n végrehajtja. A lokalizáció magában foglalja: az összes interfész szöveg fordítását, a dátum- és számformátumok igazítását, a kulturálisan érzékeny tartalmú képek cseréjét, a jogi szövegek (adatvédelmi irányelvek, EULA) korrigálását, a fizetési rendszerek régióhoz igazítását és a cél-eszközökön történő tesztelést.

Üzleti megtérülés — a lokalizáció közvetlenül befolyásolja a konverziót. A CSA Research (2023) adatai szerint a felhasználók 76%-a szívesebben vásárol az anyanyelvén futó alkalmazásokban, 40% pedig soha nem vásárol idegen nyelven. A japán nyelvű lokalizáció egy kiskereskedelmi alkalmazás esetében átlagosan 150%-kal növeli a konverziót (Google, 2022). A lokalizált alkalmazások 2–3-szor több organikus telepítést kapnak a regionális App Store-ban és Google Play-ben a regionális ASO-nak (kulcsszavak a célnyelven) köszönhetően.

i18n vs l10n — ugyanazon folyamat két oldala. i18n: szövegek kiszervezése erőforrásokba, RTL támogatás, számformázás. Egyszer végzik el a fejlesztők. l10n: szövegek fordítása, tartalom igazítása, helyi tesztelés. Többször végzik el a fordítók és a QA minden lokalizációhoz. Az IT Sectr-nél a sprintidő 20–30%-át fordítjuk minden új nyelv lokalizációjára — ez magában foglalja a fordítást, a felülvizsgálatot, az eszközökön történő tesztelést és a hibajavítást.

Lokalizáció iOS-en: Localizable.strings és Base Internationalization

Localizable.strings — a fordítások tárolásának fő fájlja iOS-en. Minden lokalizációnak saját .lproj mappája van: en.lproj/Localizable.strings, ru.lproj/Localizable.strings, de.lproj/Localizable.strings. Formátum: „kulcs" = „érték"; (pontosvesszővel). Az Apple a Base Internationalization-t használja: a Storyboard és XIB egyszer jön létre (Base.lproj), az interfész szövegei pedig minden nyelvhez exportálásra kerülnek a Localizable.strings fájlba. Ez kiküszöböli az XIB másolatok létrehozásának szükségességét minden lokalizációhoz.

swift
// en.lproj/Localizable.strings
// "settings.title" = "Settings";
// "profile.greeting" = "Hello, %@!";
// "items.count" = "%d item(s)";

// ru.lproj/Localizable.strings
// "settings.title" = "Beállítások";
// "profile.greeting" = "Üdvözöljük, %@!";
// "items.count" = "%d db.";

// Szöveg betöltése kulcs alapján
navigationItem.title = NSLocalizedString(
    "settings.title",
    comment: "Beállítások képernyő címe"
)

// Szöveg paraméterrel
let name = "Anna"
greetingLabel.text = String.localizedStringWithFormat(
    NSLocalizedString("profile.greeting", comment: ""), name
)

// XLIFF import (Xcode → Editor → Import Localizations)
// Automatikusan frissíti a .lproj fájlokat a fordító munkája után

Base Internationalization — az Apple megközelítése, amelyben a felület (Storyboard, XIB) egyszer jön létre a Base.lproj-ban. Nyelv hozzáadásakor az Xcode exportálja a szövegeket a Base-ből egy XLIFF fájlba. A fordító lefordítja az XLIFF-et. Az importálás után az Xcode létrehozza a .lproj-t a lefordított szövegekkel. Előny: nem kell minden nyelvhez külön XIB-et létrehozni. Korlátozás: RTL nyelvekhez (arab, héber) külön XIB-re lehet szükség tükrözött elrendezéssel.

InfoPlist.strings és a metaadatok lokalizációja

InfoPlist.strings — fájl az alkalmazás nevének (CFBundleDisplayName), a kamera/mikrofon engedélyeknek (NSCameraUsageDescription) és az Info.plist egyéb értékeinek lokalizálásához. A .lproj mappában jön létre: ru.lproj/InfoPlist.strings. Formátum: CFBundleDisplayName = „Az én alkalmazásom"; NSCameraUsageDescription = „Az alkalmazásnak kamerahozzáférésre van szüksége a fényképek készítéséhez";. Az InfoPlist.strings lokalizációja nélkül a rendszer párbeszédablakai angol nyelven jelennek meg.

Lokalizáció Androidon: values-ru, lokalizált erőforrások

Android erőforrások a lokalizációhoz minősítők (qualifiers) segítségével vannak szervezve a könyvtárnevekben. Orosz nyelvhez — res/values-ru/, némethez — res/values-de/, brazil portugálhoz — res/values-pt-rBR/. Az Android több mint 160 lokalizációt támogat. A rendszer automatikusan kiválasztja az erőforrásokat az eszköz nyelve alapján (Locale.getDefault()). Ha a pontos lokalizáció nem létezik — a values/ (alap lokalizáció, általában en) erőforrásai kerülnek felhasználásra.

kotlin
// res/values/strings.xml (alap — angol)
<string name="settings_title">Settings</string>
<string name="greeting">Hello, %s!</string>

// res/values-ru/strings.xml (orosz)
<string name="settings_title">Beállítások</string>
<string name="greeting">Szia, %s!</string>

// res/values-de/strings.xml (német)
<string name="settings_title">Einstellungen</string>
<string name="greeting">Hallo, %s!</string>

// Kotlin — egységes kód minden nyelvhez
textView.text = getString(R.string.settings_title)

// Szöveg paraméterrel
val greeting = getString(R.string.greeting, userName)

// Lokalizált képek
// res/drawable-ru/flag.png — zászló az orosz verzióhoz
// res/drawable/flag.png — alapértelmezett zászló

// Elrendezések lokalizációja (RTL nyelvekhez)
// res/layout-ar/activity_main.xml — arab verzió

Nem csak szövegek lokalizációja — az Android lehetővé teszi képek (res/drawable-ru/), színek (res/values-ru/colors.xml), méretek (res/values-ru/dimens.xml), animációk, menük és akár teljes elrendezések lokalizálását. Különböző szóhosszúságú nyelvek esetén (a német 30–40%-kal hosszabb, mint az angol) használjon lokalizált dimens.xml-t megnövelt gombszélességgel. Eltérő színjelképes régiókhoz (fehér — gyász Kínában) — lokalizált colors.xml.

Lokalizáció ellenőrzése az eszközön

Tesztelés — kapcsolja át az eszköz nyelvét a célnyelvre a Beállítások → Rendszer → Nyelv menüpontban. Ellenőrizze: minden szöveg le van fordítva, a dátumok helyesen formázottak, a számok a megfelelő elválasztóval jelennek meg, a képek megfelelnek a régiónak, az elrendezés nem „törik meg" hosszú szövegeknél. Az automatizáláshoz használja az Espresso-t a LocaleTestRule-lal (Android Testing Library) — ez lehetővé teszi a tesztek futtatását különböző lokalizációkkal a nyelv kézi váltása nélkül.

Kulturális igazítás: mit kell fordítani a szövegen kívül

Kulturális jellemzők — a lokalizáció nem korlátozódik a szövegek fordítására. A színek szimbolikája eltér: piros — szerencse Kínában, veszély az USA-ban, gyász Dél-Afrikában. Fehér — tisztaság Európában, gyász Kínában. Gesztusokat ábrázoló ikonok: felhüvelykujj — pozitív az USA-ban, sértés a Közel-Keleten. Embereket ábrázoló képek: arab országokban elfogadhatatlanok a fürdőruhás nőket ábrázoló képek. Vallási szimbólumok: kereszt, félhold, Dávid-csillag csak megfelelő kontextusban használható.

Jogi követelmények — minden országnak megvannak a saját törvényei a digitális termékekről. GDPR (EU) — kötelező hozzájárulás a cookie-khoz és az adatfeldolgozáshoz. CCPA (Kalifornia) — az adatok törlésének joga. Személyes adatokról szóló törvény (Oroszország, 152-FZ) — adatok tárolása az Orosz Föderáció szerverein. LGPD (Brazília) — a GDPR analógja. Fizetések: Kínában Alipay/WeChat Pay, Indiában — UPI, Brazíliában — Boleto és PIX szükséges. A lokalizáció megkezdése előtt állítsa be a fizetési átjárót a régióhoz.

SzempontUSAKínaEAENémetország
Fizetési rendszerApple Pay, kártyákAlipay, WeChat PayKártyák, Apple PayPayPal, Giropay
Márka színeiBármilyenPiros — szerencseZöld — iszlámFekete/sárga
Közösségi médiaInstagram, XWeChat, DouyinWhatsApp, XWhatsApp, X
DátumMM/dd/yyyyyyyy/MM/dddd/MM/yyyydd.MM.yyyy
Adatvédelmi törvényCCPAPIPLPDPLGDPR

Példák és tartalom — igazítsa a példákat a régióhoz. Német lokalizációhoz használja a metrikus rendszert (kg, km), amerikaihoz — a birodalmi rendszert (lb, mi). A telefonszámok, irányítószámok, címek — eltérően formázódnak. Pénznem példák: ¥1000 Japánban, $9.99 az USA-ban, 999 ₽ Oroszországban. Az ételeket, ruházatot, belső tereket ábrázoló képeknek meg kell felelniük a regionális szabványoknak. Az IT Sectr-nél azt javasoljuk, hogy a kulturális igazítás ellenőrzéséhez vegyen fel helyi tanácsadókat.

Lokalizációs folyamat: eszközök, fordítók, CI/CD

Lokalizációs eszközök — a professzionális platformok automatizálják a folyamatot: Lokalise, Crowdin, POEditor, Smartling, Phrase. Integrálódnak a tárhellyel, automatikusan importálnak új szövegeket, nyomon követik a változásokat (Delta updates — csak a megváltozott szövegek kerülnek fordításra), Translation Memory-t (TM — korábban lefordított kifejezések tárolása) és Glossary-t (szószedet) biztosítanak. A professzionális fordítás átlagos költsége: szavanként $0.08–0.15 (nyelvtől függően).

Folyamat — (1) A fejlesztő i18n kulcsokat ad a kódhoz, push-ol a tárhelyre. (2) A CI/CD (GitHub Actions / GitLab CI) automatikusan elküldi az új kulcsokat a lokalizációs platformra. (3) A fordítók értesítést kapnak, fordítanak, mentenek. (4) A lefordított fájlok automatikusan PR-t hoznak létre a tárhelyen. (5) A QA ellenőrzi a lokalizációt az eszközökön. (6) Kiadás. Egy lokalizáció ciklusa: 2–5 munkanap (a mennyiségtől függően). 10 lokalizáció esetén: 5–15 nap a fordítók párhuzamos munkájával.

Machine Translation + Human Review — a modern szabvány. A neurális hálózati fordítás (DeepL, Google Translate, GPT-4) 80–90%-os minőséget biztosít a népszerű nyelvpárokhoz. Az emberi fordító ellenőrzi: a terminológiát, a kontextust (a szavaknak különböző jelentése lehet a különböző képernyőkön), a kulturális igazítást. Az IT Sectr-nél hibrid megközelítést alkalmazunk: ML fordítás + anyanyelvi felülvizsgálat. Kritikus szövegekhez (jogi, fizetési) — csak professzionális fordító. Megtakarítás: a költségek akár 60%-a a minőség megőrzése mellett.

Gyakran Ismételt Kérdések

Miben különbözik a lokalizáció a nemzetköziesítéstől?

Nemzetköziesítés — a kód előkészítése a fordításra (szövegek kiszervezése, RTL, formázás). Lokalizáció — maga a fordítás és a kulturális igazítás. Az i18n-t a fejlesztő egyszer végzi el, az l10n-t — a fordító minden nyelvhez. i18n l10n nélkül — az alkalmazás készen áll a fordításra, de nincs lefordítva. l10n i18n nélkül — minden nyelvhez át kell írni a kódot.

Hol tárolódnak a fordítások iOS-en?

A Localizable.strings fájlokban a .lproj mappákon belül. Minden nyelvhez: en.lproj (angol), ru.lproj (orosz), de.lproj (német). Formátum: „kulcs" = „érték";. Többes számhoz — Localizable.stringsdict. Az alkalmazás beállításai (CFBundleDisplayName) — az InfoPlist.strings-ben. Az Xcode a .lproj-t a Base Internationalization segítségével kezeli.

Mi az a values-ru Androidon?

values-ru — az Android erőforráskönyvtára az orosz nyelv számára. Tartalmazza a strings.xml-t a fordításokkal. Hasonlóan más nyelvekhez: values-de (német), values-fr (francia). Az Android a rendszer nyelve alapján választja ki az erőforrásokat. Ha a values-ru nem található — a values/ (alap nyelv, általában angol) kerül használatra.

Hogyan kell formázni a dátumokat különböző régiókhoz?

Mindig használja a Locale API-t. iOS: DateFormatter.locale = Locale(identifier: locale). Android: DateFormat.getDateInstance(DateFormat.SHORT, locale). Oroszország: 2024.12.31. USA: 2024.12.31. Japán: 2024/12/31. Soha ne állítson be rögzített formátumot — minden országnak megvannak a saját szabványai. Dátumok beviteléhez használja a UIDatePicker / DatePicker-t.

Hány lokalizáció szükséges egy globális alkalmazáshoz?

Globális lefedettséghez 10–15 nyelv elegendő: angol, spanyol, francia, német, japán, kínai, koreai, portugál, orosz, olasz, arab. Regionálishoz — 1–2 nyelv. Minden további lokalizáció 5–15%-kal növeli az organikus telepítéseket az adott régióban. Az App Store legalább angol lokalizációt követel meg.

Összefoglalás

  • Localization (l10n) — a tartalom fordítása és kulturális igazítása egy adott nyelvhez és régióhoz
  • iOS — Localizable.strings .lproj mappákban, Base Internationalization, InfoPlist.strings
  • Android — values-ru/strings.xml, lokalizált drawable és layout qualifiers segítségével
  • Kulturális igazítás — színek, ikonok, gesztusok, fizetési rendszerek, jogi követelmények
  • Folyamat — CI/CD → lokalizációs platform → fordító → QA → kiadás (2–5 nap nyelvenként)
  • Hibrid megközelítés — ML fordítás (DeepL, GPT) + anyanyelvi felülvizsgálat 60% megtakarításért
  • Megtérülés — a felhasználók 76%-a csak anyanyelvén vásárol (CSA Research, 2023)

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is