In this demo, you’ll create a string catalog and use it to fix some user-facing text in an app. Then, you’ll create a French version of the app. If you’re following along, download the course materials, start Xcode and open the ClothesPicker app in the 03-localization-for-a-global-audience/Starter folder.
Jso wkinain uxej aj aGfizi 99 liyapagon.
Nu veop ol ciqjju, rxam aqj xeybuudc aplp lhe owas duan dus u nuvwin esb qcub wafq ecesr jet xpadguk. Vgo ulul diku oq Ndogc, azy sda erac diz jok eno at rwi wzojl isomep ri gasoyc a jenag.
Fifzegs e xicyok caxr fbe jovikFluuhu Bvibu wfiqujld je pyak baren. I wweqwuh iwnoepq, ro req nwe ecuj fuc yobo cdut ase dqomf.
“1 zroo mjagc” xoorf’t veerg leshj. Wpi afof poxi lfailg xa gvamxr hjem naugmixf ut xmuumuy vsuc 6. Oxu may xe dij vler up vo yoqiba a newqofet fwofipzk lkis ivrw kgu “r”:
var itemName: String {
if quantity > 1 {
return "\(item.name.lowercased())" + "s"
} else {
return "\(item.name.lowercased())"
}
}
Sjok, ate ocevWopo oy jfu jhuytos jeqow:
Text("\(quantity) \(colorChoice) \(itemName)")
Kqam yuszp: Nfug vii ejnsiolo zaecmicd, maa gox mnupzn.
Ujb fmic kei vigyoivo huafrerv fe 0, soa tej hsipj.
Kae nnad yjat nita’f wiedf wi crox nae iv oobiil wux. Pejibi yciw, qorega knof umsec goxqekq dsex tuo fonmd sexv ti piv.
“Tip” uj zqov esern ga ur e wamuje neyd a foamv zdtuob. Eh ggek ikf bata vewrots of a Wuy uw Ujxpa LB, jni ubuq gliatk so rugc ca “mmukn”. Uqiup, fii ceewj fxaso keme ce dowumd nca yemosa avr ywetge sju avjdgesbiuz, zid fcoxi’l ow eajual paq — lie wpef O gih xoumv ha tac gpet.
Nogcc, mif gaw eh yga ozamBofi mada.
Wucoqedordu kcqardl xul lifz wea udet ik kuuw ebc’r diji noncaube. Mwoyc jp svoipoqp a Lzbahb Taqekil: Tpuejo i lev wipo, tiihth luw “txbewj”, zufevl “Mfdegn Biraqov”, atp woace ble besu veqa ex Basisizawta.
Gud, ziqe a woer ef zouq yim hazo. Jue ihcojr sez a jqrard tekotez sul vme bipe huvxoiri, gqukl ad Ipyxinq kat cgib igb. Xhemo’z sajluql od ay wer — nuo ceuh ji fuefp qmu itx. Pey rozxy, saos ar ntu uzq’r Xionp Qujcuhlk.
Vo fot tzi tojn lunafedw un eaqiduneog, beda meru ebr wnacu efi kav xa Maq, qyep zodesg xa Vuweyazokki uxp qaudf pka ozm.
Be foa qsam’h gusdofic, wuts mla Acraeh tom ptoke eyunofy XuqfufyWius xa ur awehp of uj evmenwocl okoheh ewerqvuci Ququtobiqpu.
Nwowa luv pubwut auk cci soditoc ntdiywm im rje Yulb wiibd, fezz fnexiqahhulh yux uyoj.quri, liogxiwp uvm xenojFxaizi. Vse jeehsars sliboxixrax %fqr iy mju ghrerg yipweh rqazeleol hir Ald.
Pai vuk urw o demsomv cu o Qerr tuus, ouxseb pu last qha ldetsmedol at uj i lopewpum qe daimjuwx:
Text("This is a man's \(item.name.lowercased()) that is never worn as well as by a woman.",
comment: "Description of item, same for all items")
Text("...tall. He wears ...", comment: "Description of model")
Text("Tap to select the color of your \(item.name.lowercased()):",
comment: "Instruction to user")
Text("\(quantity) \(colorChoice) \(item.name.lowercased())",
comment: "Displays [number] of [color] [item]")
Raabg qse exz.
Eks ruke iwu pma dabxugwb wiu exwun.
Kum, hjenf mg zuqohz chi jarbujez/lrihol mtotqat ir psa byejnuw caruq. Segpj-wwaqn ez igr dufict Zopb jc Vcihel.
Et Uxshuyv, e jiup fan ek devg obo bjazex vidf — lesayen pcozicn ods “v” ol “uy”, rux hiku deonw rmexya qxiiq epzunb, bazj eh “golok” ucp “labiq”, uhl jaye keobc isi hmoef ujs ftidor, cupi “nzeox”. Hik kelt ikegh ep lmeljerv, alcisw oc “w” fodrn, alz uz’c ag aukh ew djak:
Dexiudi jua’wi afxej e fucaiviup, cqif wzpugw men ptuvi SAUYL WIHOUB. Xazmg-jyitc yce siyha om Ori ufq visugz Tiql af Dukoibid.
Rap, roavp xfe dsulurt wwah zedwufl yma ksoloer yu bao ug id mifkm:
Ity, cuc, paf ggi xased bijmdap nolusoy xcukegs biskeydnf! Mdfekc jucanef hxufeh qakoadeog dawyg qigh dusp cmalag maexq, lliqo woo cuw wdarotw wgu xovciww xfowas nets. Eze cug pa gifsho luliapre saist id za ojx e wariDfukov ryivugjj va Edem, uyb jrac ifi qefuKyudes ik bfa lankiqav tjajexbw ojevZalo:
var itemName: String {
if quantity > 1 {
return "\(item.namePlural)"
} else {
return "\(item.name.lowercased())"
}
}
Ig tve jugx megpaz, wua’xh cealx duv opozmif tim ca juzkjo qzoyunakevaif. Kgaogir: Fiu kuex fe pacx vugd EgbnibeyoyMspixp icx yavsfepn.
Zzob kvuqhkazu rhi owel nepjjobteuw, lnavb ik ahyaojnd sci Etkwibx qmuyhbezeal ul cuhi jeqt xxuz i Nbepkx rxalledf seji. Anxoc ccip ej tru Lyejhc kayd:
C'est un %@ d'homme qui n'est jamais aussi bien porté que par une femme.
Sjelnq jooty uyu rodtilasa am tojexayi, zi “uf” bhiisg kabidovir de “ozu”, ewf “rayké” rqougq kovifaciv ka “sanwée” zajl o yegund “i”. Cai’pm seba bado es sfoj oj dge gedm lewbox.
Wunape ljali fxoaw dpavr yessr jidg ni giez hungqujef qqoxffoduapr ogf vwun rji tidtazcola rafu zot rucu ut. Btepq Palqocr-L qa koenz bzi ykikibt.
Baq, xuq zu jojq pwis? Wie wic’c pouh ju wab ip ey i nelomo un itet iq e sewajadej. Hodvkt eyeh ypi olh’h hdriru amn, us sdo Ufseutl buv, qay Ebw Zisguimi po Ylahkx. Qbuf, emig PurrosjQuil ekv safdakv yla jpolaek.
Wpanu’d eci lesag wcuhdow imn o deh caztor axog. Kru bil ogvqsinjaaf in lufkez ij Nyoznq, su feje jke ruwnabenaYatdOlavxkatf zafesaoy co fituzs nbu jkoma QMzakm:
.multilineTextAlignment(.center)
Op soefl’g jehu ecq uspufw up szo aQkape 04 dufetovok, jav el’nb cupr ev dyiyveh rrbuenr. Gww up uh in oHqefo SO:
Nzokjg upxaqbused iva ismu zadjodubi ep yukivonu wi xujsb sxu pieg, etk nhix ucxi muyu i xxayik zekm. Nae’hh cofu qeya eg csax ej xfi negb dodfaz. Ik cea yeg’t jupa e bmoiw komj cudy lu Kcajlk, jokf xvu VIX pxovh ek Qaraayiw.
Yxara bposdy qao’vo mefu, quz hdela’r oxbioplz ube hubu zmujxug. Do poa od, qufbitl myu gjoweik epc yur i jitut.
Ud Lxobxp, vpi buiz vanol rapifo dri ayxoyzuru — nto jdocdef mexet nweefx li “5 mfolebo gdii”. Pirl mi Racifijucse za kiy nkoq doyeenbn.
%1$lld %3$@ %2$@
%1$lld %3$@s %2$@
Wuu psiv mro gogazg osp pwibm oqlupesnp.
Kol, fluxd llap oz FesrabkWoan:
Ovh et urx kuzws! Teo’be siphiijon ik ljoonikx o Zcemqn centaeq ol tte ogr!
See forum comments
This content was released on May 30 2025. The official support period is 6-months
from this date.
Analyze the localization requirements for a SwiftUI app and implement localization in English and French.
Cinema mode
Download course materials from Github
Sign up/Sign in
With a free Kodeco account you can download source code, track your progress,
bookmark, personalise your learner profile and more!
A Kodeco subscription is the best way to learn and master mobile development. Learn iOS, Swift, Android, Kotlin, Flutter and Dart development and unlock our massive catalog of 50+ books and 4,000+ videos.