Localization — суштина, адаптација садржаја за језик и регион

Аутор: IT Sectr Објављено: 2026-02-26 Време читања: 7 мин

Localization (локализација, l10n) — адаптација садржаја мобилне апликације за језик, регион и културне особености циљне публике. За разлику од интернационализације (i18n), где се код припрема за превођење, локализација је сам процес превођења стрингова, форматирања датума, бројева и валута, избора слика и уважавања локалних норми. На iOS-у преводи се чувају у Localizable.strings (фасцикле .lproj за сваки језик), на Android-у — у values-ru, values-de и другим директоријумима ресурса. Више — у Android водичу за локализацију.

Главно

  • Localization (l10n) — превођење и адаптација садржаја апликације за конкретан језик и регион
  • Localizable.strings — iOS фајл који садржи парове „кључ" = „превод" за сваки језик
  • values-ru — Android директоријум са ресурсима за руски језик (strings.xml)
  • Регионална адаптација — датуми, бројеви, слике, боје, правни захтеви се разликују по државама
  • Културне особености — боје, иконе, гестови и примери морају одговарати локалним нормама

Шта је Localization (l10n) и по чему се разликује од i18n?

Localization (скраћено l10n — 10 слова између „l" и „n") — је процес адаптације апликације за конкретан језик и регион. Ако је i18n архитектонски темељ, онда је l10n испуна. i18n омогућава превођење, l10n га извршава. Локализација укључује: превођење свих текстова интерфејса, адаптацију формата датума и бројева, замену слика са културно осетљивим садржајем, корекцију правних текстова (политика приватности, EULA), подешавање система плаћања за регион и тестирање на циљним уређајима.

Пословна рентабилност — локализација директно утиче на конверзију. Према подацима CSA Research (2023), 76% корисника преферира куповину у апликацијама на матерњем језику, а 40% никада не купује на страном. Локализација на јапански за малопродајну апликацију повећава конверзију у просеку за 150% (Google, 2022). Локализоване апликације добијају 2–3 пута више органских инсталација у регионалним App Store и Google Play захваљујући регионалном ASO (кључне речи на циљном језику).

i18n vs l10n — две стране истог процеса. i18n: издвајање стрингова у ресурсе, подршка за RTL, форматирање бројева. Ради се једном од стране програмера. l10n: превођење стрингова, адаптација садржаја, локално тестирање. Ради се више пута од стране преводилаца и QA за сваку локализацију. У IT Sectr-у издвајамо 20–30% времена спринта за локализацију сваког новог језика — то укључује превођење, ревизију, тестирање на уређајима и исправљање грешака.

Локализација у iOS-у: Localizable.strings и Base Internationalization

Localizable.strings — главни фајл за чување превода у iOS-у. Свака локализација има своју фасциклу .lproj: en.lproj/Localizable.strings, ru.lproj/Localizable.strings, de.lproj/Localizable.strings. Формат: „кључ" = „вредност"; (са тачком и зарезом). Apple користи Base Internationalization: Storyboard и XIB се креирају једном (Base.lproj), а стрингови интерфејса се извозе у Localizable.strings за сваки језик. Ово елиминише потребу за креирањем копија XIB-а за сваку локализацију.

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

// ru.lproj/Localizable.strings
// "settings.title" = "Настройки";
// "profile.greeting" = "Здравствуйте, %@!";
// "items.count" = "%d шт.";

// Учитавање стринга по кључу
navigationItem.title = NSLocalizedString(
    "settings.title",
    comment: "Наслов екрана подешавања"
)

// Стринг са параметром
let name = "Ана"
greetingLabel.text = String.localizedStringWithFormat(
    NSLocalizedString("profile.greeting", comment: ""), name
)

// XLIFF увоз (Xcode → Editor → Import Localizations)
// Аутоматски ажурира .lproj фајлове након рада преводиоца

Base Internationalization — приступ Apple-а у коме се интерфејс (Storyboard, XIB) креира једном у Base.lproj. При додавању језика, Xcode извози стрингове из Base-а у XLIFF фајл. Преводилац преводи XLIFF. Након импорта, Xcode креира .lproj са преведеним стринговима. Предност: не мора се дуплирати XIB за сваки језик. Ограничење: за RTL језике (арапски, хебрејски) може бити потребан посебан XIB са огледалним распоредом.

InfoPlist.strings и локализација метаподатака

InfoPlist.strings — фајл за локализацију назива апликације (CFBundleDisplayName), дозвола камере/микрофона (NSCameraUsageDescription) и других вредности из Info.plist-а. Креира се у .lproj: ru.lproj/InfoPlist.strings. Формат: CFBundleDisplayName = „Моја апликација"; NSCameraUsageDescription = „Апликацији је потребан приступ камери за снимање фотографија";. Без локализације InfoPlist.strings-а, системски дијалози ће бити на енглеском.

Локализација у Android-у: values-ru, локализовани ресурси

Android ресурси за локализацију су организовани кроз квалификаторе (qualifiers) у називима директоријума. За руски језик — res/values-ru/, за немачки — res/values-de/, за бразилски португалски — res/values-pt-rBR/. Android подржава преко 160 локализација. Систем аутоматски бира ресурсе на основу језика уређаја (Locale.getDefault()). Ако тачна локализација не постоји — користе се ресурси из values/ (основна локализација, обично en).

kotlin
// res/values/strings.xml (основни — енглески)
<string name="settings_title">Settings</string>
<string name="greeting">Hello, %s!</string>

// res/values-ru/strings.xml (руски)
<string name="settings_title">Подешавања</string>
<string name="greeting">Здраво, %s!</string>

// res/values-de/strings.xml (немачки)
<string name="settings_title">Einstellungen</string>
<string name="greeting">Hallo, %s!</string>

// Kotlin — јединствени код за све језике
textView.text = getString(R.string.settings_title)

// Стринг са параметром
val greeting = getString(R.string.greeting, userName)

// Локализоване слике
// res/drawable-ru/flag.png — застава за руску верзију
// res/drawable/flag.png — подразумевана застава

// Локализација распореда (за RTL језике)
// res/layout-ar/activity_main.xml — арапска верзија

Локализација не само стрингова — Android омогућава локализацију слика (res/drawable-ru/), боја (res/values-ru/colors.xml), димензија (res/values-ru/dimens.xml), анимација, менија, па чак и целих layout-а. За језике са различитом дужином речи (немачки је 30–40% дужи од енглеског) користите локализоване dimens.xml са повећаном ширином дугмади. За регионе са другом симболиком боја (бела — жалост у Кини) — локализоване colors.xml.

Провера локализације на уређају

Тестирање — пребаците језик уређаја на циљни кроз Подешавања → Систем → Језик. Проверите: сви стрингови су преведени, датуми се правилно форматирају, бројеви се приказују са правилним сепаратором, слике одговарају региону, layout се не „ломи" при дугачким стринговима. За аутоматизацију користите Espresso са LocaleTestRule (Android Testing Library) — омогућава покретање тестова са различитим локализацијама без ручног пребацивања језика.

Културна адаптација: шта треба преводити осим текста

Културне особености — локализација се не ограничава на превођење стрингова. Симболика боја се разликује: црвена — срећа у Кини, опасност у САД, жалост у Јужној Африци. Бела — чистоћа у Европи, жалост у Кини. Иконе са гестовима: палац горе — позитив у САД, увреда на Блиском Истоку. Слике људи: у арапским земљама неприхватљиве су слике жена у купаћим костимима. Религијски симболи: крст, полумесец, Давидова звезда треба да се користе само у одговарајућем контексту.

Правни захтеви — свака држава има своје законе о дигиталним производима. GDPR (ЕУ) — обавезна сагласност за cookies и обраду података. CCPA (Калифорнија) — право на брисање података. Закон о личним подацима (Русија, 152-ФЗ) — чување података на серверима РФ. LGPD (Бразил) — аналог GDPR-а. Плаћања: у Кини су потребни Alipay/WeChat Pay, у Индији — UPI, у Бразилу — Boleto и PIX. Подесите платни пролаз за регион пре покретања локализације.

АспектСАДКинаУАЕНемачка
Систем плаћањаApple Pay, картицеAlipay, WeChat PayКартице, Apple PayPayPal, Giropay
Боје брендаБило којеЦрвена — срећаЗелена — исламЦрна/жута
Друштвене мрежеInstagram, XWeChat, DouyinWhatsApp, XWhatsApp, X
ДатумMM/dd/yyyyyyyy/MM/dddd/MM/yyyydd.MM.yyyy
Закон о подацимаCCPAPIPLPDPLGDPR

Примери и садржај — прилагодите примере региону. За немачку локализацију користите метрички систем (кг, км), за америчку — империјални (lb, mi). Телефонски бројеви, поштански бројеви, адресе — форматирају се различито. Валутни примери: ¥1000 у Јапану, $9.99 у САД, 999 ₽ у Русији. Слике хране, одеће, ентеријера треба да одговарају регионалним стандардима. У IT Sectr-у препоручујемо ангажовање локалних консултаната за проверу културне адаптације.

Процес локализације: алати, преводиоци, CI/CD

Алати за локализацију — професионалне платформе аутоматизују процес: Lokalise, Crowdin, POEditor, Smartling, Phrase. Оне се интегришу са репозиторијумом, аутоматски увозе нове стрингове, прате промене (Delta updates — преводе се само измењени стрингови), пружају Translation Memory (ТМ — чување раније преведених фраза) и Glossary (глосар термина). Просечна цена професионалног превода: $0.08–0.15 по речи (зависи од језика).

Процес — (1) Програмер додаје i18n кључеве у код, гура у репозиторијум. (2) CI/CD (GitHub Actions / GitLab CI) аутоматски шаље нове кључеве на платформу за локализацију. (3) Преводиоци добијају обавештење, преводе, чувају. (4) Преведени фајлови аутоматски креирају PR у репозиторијуму. (5) QA проверава локализацију на уређајима. (6) Издање. Циклус за једну локализацију: 2–5 радних дана (у зависности од обима). За 10 локализација: 5–15 дана при паралелном раду преводилаца.

Machine Translation + Human Review — савремени стандард. Превод неуронском мрежом (DeepL, Google Translate, GPT-4) даје квалитет 80–90% за популарне језичке парове. Човек-преводилац проверава: терминологију, контекст (речи могу имати различита значења на различитим екранима), културну адаптацију. У IT Sectr-у користимо хибридни приступ: ML превод + ревизија од стране изворног говорника. За критичне стрингове (правни, плаћања) — само професионални преводилац. Уштеда: до 60% трошкова уз очување квалитета.

Често постављана питања

По чему се локализација разликује од интернационализације?

Интернационализација — припрема кода за превођење (издвајање стрингова, RTL, форматирање). Локализација — само превођење и културна адаптација. i18n ради програмер једном, l10n — преводилац за сваки језик. i18n без l10n — апликација је спремна за превод, али није преведена. l10n без i18n — мора се преписивати код за сваки језик.

Где се чувају преводи у iOS-у?

У фајловима Localizable.strings унутар .lproj фасцикли. За сваки језик: en.lproj (енглески), ru.lproj (руски), de.lproj (немачки). Формат: „кључ" = „вредност";. За множину — Localizable.stringsdict. Подешавања апликације (CFBundleDisplayName) — у InfoPlist.strings. Xcode управља .lproj-ом кроз Base Internationalization.

Шта је values-ru у Android-у?

values-ru — директоријум ресурса Android-а за руски језик. Садржи strings.xml са преводима. Исто за друге језике: values-de (немачки), values-fr (француски). Android бира ресурсе на основу системског језика. Ако values-ru није пронађен — користи values/ (основни језик, обично енглески).

Како форматирати датуме за различите регионе?

Увек користите Locale API. iOS: DateFormatter.locale = Locale(identifier: locale). Android: DateFormat.getDateInstance(DateFormat.SHORT, locale). Русија: 31.12.2024. САД: 12/31/2024. Јапан: 2024/12/31. Никада не постављајте фиксни формат — свака држава има своје стандарде. За унос датума користите UIDatePicker / DatePicker.

Колико локализација је потребно за глобалну апликацију?

За глобалну покривеност довољно је 10–15 језика: енглески, шпански, француски, немачки, јапански, кинески, корејски, португалски, руски, италијански, арапски. За регионалну — 1–2 језика. Свака додатна локализација повећава органске инсталације за 5–15% у одговарајућем региону. App Store захтева најмање енглеску локализацију.

Резиме

  • Localization (l10n) — превођење и културна адаптација садржаја за конкретан језик и регион
  • iOS — Localizable.strings у .lproj фасциклама, Base Internationalization, InfoPlist.strings
  • Android — values-ru/strings.xml, локализовани drawable и layout кроз qualifiers
  • Културна адаптација — боје, иконе, гестови, системи плаћања, правни захтеви
  • Процес — CI/CD → платформа за локализацију → преводилац → QA → издање (2–5 дана по језику)
  • Хибридни приступ — ML превод (DeepL, GPT) + ревизија изворног говорника за уштеду од 60%
  • Рентабилност — 76% корисника купује само на матерњем језику (CSA Research, 2023)

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође