Locale-afhankelijke opmaak
Maak getallen, datums en valuta op volgens de locale.
Locale-afhankelijke opmaak is een gratis Swift Academy-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Swift Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Swift Academy bevat in totaal 4 lessen.
Getallen zijn niet universeel
Het getal één miljoen tweehonderdduizend wordt in de VS weergegeven als 1,200,000.50, in Duitsland als 1.200.000,50 en in India als 12,00,000.50. Als je scheidingstekens of opmaken hard vastlegt, gaat dit voor het grootste deel van de wereld mis. Swift's FormatStyle-API handelt dit per landinstelling correct af.
import Foundation
let value = 1_200_000.5
print(value.formatted()) // uses current localeHet ingangspunt formatted()
De meeste standaardtypen — getallen, datums, metingen, lijsten — hebben een formatted()-methode. Zonder argumenten gebruikt deze verstandige standaardinstellingen die rekening houden met de landinstelling; geef een stijl door om aan te passen.
import Foundation
let n = 1234.567
print(n.formatted()) // default
print(n.formatted(.number.precision(.fractionLength(2))))Getalstijlen
.number is de krachtpatser. Je kunt groepering, de lengte van het breukdeel, afronding en tekenweergave vloeiend configureren. De landinstelling bepaalt nog steeds de daadwerkelijke scheidingstekens.
import Foundation
let x = 1234.5
print(x.formatted(
.number
.grouping(.automatic)
.precision(.fractionLength(0...2))))Valuta opmaken
Voor geld plaatst .currency(code:) het symbool, de groepering en de decimalen correct voor de landinstelling. Hetzelfde bedrag wordt afhankelijk van de regio van de gebruiker weergegeven als $1,200.00 of 1.200,00 €€ — stel valutatekenreeksen nooit zelf samen.
import Foundation
let price = 1200.0
print(price.formatted(.currency(code: "USD")))
print(price.formatted(.currency(code: "EUR")))
print(price.formatted(.currency(code: "JPY")))Percentages opmaken
.percent vermenigvuldigt met 100 en voegt het procentteken van de landinstelling toe. Daarbij worden ook de spatiëringsregels afgehandeld die sommige talen tussen het getal en het symbool vereisen.
import Foundation
let ratio = 0.875
print(ratio.formatted(.percent))
print(ratio.formatted(.percent.precision(.fractionLength(1))))De landinstelling overschrijven
Standaard gebruikt opmaak Locale.current. Als je een specifieke landinstelling wilt afdwingen — voor testen of om een waarde in een vaste regio te tonen — keten je .locale(_:) aan elke stijl.
import Foundation
let value = 1234567.89
let german = Locale(identifier: "de_DE")
print(value.formatted(.number.locale(german)))
// 1.234.567,89Datums opmaken
Datums hebben hun eigen stijlen. Met .dateTime stel je de gewenste velden samen, zoals jaar, maand, dag en uur, waarna het systeem ze volgens de landinstelling ordent — maand-dag-jaar in de VS en dag-maand-jaar in een groot deel van Europa.
import Foundation
let now = Date()
print(now.formatted(
.dateTime.year().month().day()))
print(now.formatted(date: .long, time: .shortened))Relatieve datums
RelativeDateTimeFormatter en de stijl .relative produceren volledig vertaalde zinnen zoals 2 uur geleden of over 3 dagen. Ideaal voor overzichten en tijdstempels.
import Foundation
let past = Date().addingTimeInterval(-3600)
let text = past.formatted(
.relative(presentation: .named))
print(text) // e.g. "1 hour ago"Metingen en eenheden
Measurement maakt fysieke grootheden op en kan eenheden omrekenen. De landinstelling bepaalt of kilometers of mijlen worden weergegeven, en de stijl lokaliseert ook de naam van de eenheid.
import Foundation
let distance = Measurement(value: 5, unit: UnitLength.kilometers)
print(distance.formatted())
print(distance.formatted(
.measurement(width: .wide)))Lijsten en namen
Zelfs het samenvoegen van items houdt rekening met de taal. .list(type:) produceert apples, oranges, and pears in het Engels en gebruikt elders het juiste voegwoord en de juiste scheidingstekens — voeg komma's en het woord en niet handmatig toe.
import Foundation
let fruits = ["apples", "oranges", "pears"]
print(fruits.formatted(.list(type: .and)))
print(fruits.formatted(.list(type: .or)))Terug inlezen
FormatStyles kunnen ook worden teruggelezen. De parseStrategy van een stijl, of het initialiseren van een waarde uit een tekenreeks met die stijl, zet gelokaliseerde tekst terug om naar een getal of datum en houdt daarbij rekening met dezelfde landinstellingsregels.
import Foundation
let style = Decimal.FormatStyle.Currency(code: "USD")
let amount = try? Decimal("$1,234.50", format: style)
print(amount ?? 0)Snelle controle
Haal terug welk hulpmiddel je voor geld gebruikt.
Samenvatting
Je hebt geleerd hoe je met FormatStyle rekening houdt met de landinstelling:
formatted()levert standaardopmaak die bij de landinstelling past; geef een stijl door om aan te passen..number,.currency(code:),.percent,.dateTime,.relative,.measurementen.listdekken de meeste behoeften.- Keten
.locale(_:)om de regio te overschrijven; stijlen kunnen tekst ook terug inlezen. - Stel scheidingstekens, valutasymbolen of datumvolgordes nooit zelf samen.
Leer Swift met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 122
- Lessen
- 409
Veelgestelde vragen
Is de les “Locale-afhankelijke opmaak” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Swift Academy, waaronder “Locale-afhankelijke opmaak”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Swift Academy bevat in totaal 4 lessen.
Wat leer ik in “Locale-afhankelijke opmaak”?
Maak getallen, datums en valuta op volgens de locale. Je oefent met Swift Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Swift Academy te beginnen?
Ervaring vooraf is niet nodig. Swift Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Locale-afhankelijke opmaak”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Swift Academy?
Ja. Elke les over Swift Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- String Catalogs en gelokaliseerde strings
- Meervoudsvormen en Stringsdict
- Locale-afhankelijke opmaak
- Rechts-naar-links en lay-outrichting