Als u in contact wilt komen met Android-gebruikers in verschillende landen en culturen, moet u uw app lokaliseren om meerdere talen te ondersteunen. Dit proces begint met de internationalisering van Android (i18n), die de basis legt voor naadloze lokalisatie.
Het internationaliseren van uw Android-app betekent dat u deze zo moet ontwerpen dat deze geschikt is voor meerdere talen zonder technische wijzigingen. Dit zorgt ervoor dat uw app vertrouwd aanvoelt voor gebruikers uit een andere regio of cultuur, waardoor de bruikbaarheid toeneemt en de deur wordt geopend naar nieuwe markten. Het proces hoeft maar één keer te worden uitgevoerd, waardoor u tijd en geld bespaart bij elke volgende lokalisatie.
Deze stapsgewijze handleiding leidt u door het proces van internationalisering en lokalisatie van uw Android-app. U leert hoe u uw app voorbereidt, dynamische inhoud verwerkt en test in verschillende talen en landinstellingen.
Hoe bereid je je voor op lokalisatie van Android-apps?
Internationalisatie bereidt uw Android app voor op lokalisatie. Dit proces legt een sterke basis binnen Android Studio om ervoor te zorgen dat uw app meerdere talen en regio's ondersteunt. Zo kunt u beginnen:
-
Installeer Android Studio
Begin met het downloaden en installeren van Android Studio. Android Studio is de officiële ontwikkelomgeving voor Android en biedt alles wat je nodig hebt om je app te internationaliseren, te lokaliseren en te testen.
-
Een nieuw Android-project maken
Open Android Studio en maak een nieuw project. Het sjabloon "Lege activiteit" biedt een eenvoudig startpunt.
Configureer vervolgens uw projectinstellingen als volgt:
- Naam: Voer de naam van uw app in (bijv. "LocalizedApp").
- Naam van de verpakking: Gebruik een unieke ID zoals 'com.example.localizedappi18n'.
- Taal: Selecteer Kotlin (aanbevolen) of Java.
- Minimum SDK: Stel de laagste Android-versie in die uw app ondersteunt.
Bevestig vervolgens uw keuzes om de projectstructuur te genereren.
-
UI-elementen toevoegen met flexibele lay-outs
Ontwerp bij het toevoegen van UI-elementen met lokalisatie in gedachten. Talen als Duits hebben vaak meer ruimte nodig dan Engels, terwijl Chinese karakters compacter zijn. Vermijd het instellen van vaste breedtes voor tekstelementen, aangezien langere vertalingen in sommige talen de containergrootte kunnen overschrijden.
Overweeg het gebruik van tools zoals ConstraintLayout om UI-elementen in staat te stellen de positie en grootte dynamisch aan te passen op basis van de lengte van de vertaalde tekst.
Hier is een XML-voorbeeld:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/welcome_message"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
Hier wordt de TextView gebruikt om een tekenreeksbron weer te geven (bijv. een welkomstbericht). Door wrap_content voor de breedte te gebruiken, wordt het formaat van het element automatisch aangepast aan de lengte van de vertaalde tekst in plaats van te worden beperkt door een vaste afmeting. Bovendien zorgt de ConstraintLayout ervoor dat de TextView goed gepositioneerd blijft in het scherm, ongeacht de tekstlengte of schermgrootte.
Door vanaf het begin een flexibele lay-out te maken, ziet uw app er geweldig uit, ongeacht de taal waarin deze is gelokaliseerd.
-
Voorbereiden op lokalisatie met geëxternaliseerde tekst
De laatste stap om uw Android-app voor te bereiden op lokalisatie vereist dat u alle gebruikersgerichte tekst opslaat in een afzonderlijk bronbestand in plaats van het hard te coderen. Met een gecentraliseerd bronbestand zoals strings.xml, U hoeft de tekst die verspreid is over uw code niet handmatig te vervangen.
Hier is hoe het te doen:
- Zoek de map "res/values/" in uw projectmap.
- Open de "strings.xml" bestand (als het niet bestaat, maak er dan een).
- Voeg uw tekst toe aan het bestand met behulp van een naam-waardepaar:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="welcome_message">Welkom bij mijn app!</string>
</resources>
Ga terug naar het bestand activity_main.xml en werk de TextView bij om naar de stringbron te verwijzen:
<TextView
android:text="@string/welcome_message"
Door uw project op deze manier te organiseren, wordt uw Android-app geïnternationaliseerd, zodat u eenvoudig de inhoud kunt afbakenen die in een andere taal moet worden gelokaliseerd.
Een Android-app lokaliseren in 4 stappen
Nu u uw Android-app heeft voorbereid, is het tijd om het stapsgewijze lokalisatieproces door te nemen, van het instellen van taalspecifieke bronnen tot het dynamisch wijzigen van de landinstelling van de Android-app.
-
Breid strings.xml uit voor lokalisatie
In de voorbereidingsfase heb je een strings.xml bestand gemaakt om alle tekst in je Android-app te beheren. Nu is het tijd om dit uit te breiden door taalspecifieke versies van het bestand te maken voor elke ondersteunde taal.
Maak eerst nieuwe mappen voor elke doeltaal in de res-directory van uw project. Gebruik een mapnaam met de juiste taalcode (bijv. "res/values-es/" voor Spaans en "res/values-fr/" voor Frans).
Kopieer uw standaard strings.xml-bestand naar elke map. Vertaal vervolgens de tekst handmatig voor elke taal. In het standaard Engelse bestand kan bijvoorbeeld het volgende staan:
<TextView
<string name="hello_world">Hello, World!string>
De Spaanse versie in "values-es/strings.xml". zou zijn:
<TextView
<string name="hello_world">¡Hola, Mundo!string>
Nadat u deze taalspecifieke XML-bestanden heeft gemaakt, kiest Android automatisch de juiste versie van strings.xml op basis van de taalinstellingen van het apparaat van de gebruiker.
-
Omgaan met meervouden voor nauwkeurige vertalingen
Meervouden zijn lastig omdat elke taal er anders mee omgaat. 'één item' is bijvoorbeeld enkelvoud in het Engels, maar elk ander getal is meervoud, of het nu 'nul items' of 'tweehonderd items' is. Talen als Russisch, Welsh en Tsjechisch gebruiken echter specifiekere regels voor meervouden op basis van het getal.
Ga als volgt te werk om meervoudstekenreeksen in strings.xml voor Engelste definiëren:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<plurals name="item_count">
<item quantity="one">%d item</item>
<item quantity="Overige">%d artikelen</item>
</plurals>
</resources>
Dit is goed voor de volgende hoeveelheidswaarden:
- Eén: Wordt gebruikt voor enkelvoudige vormen (bijv. één item).
- Ander: Wordt gebruikt voor meervoudsvormen (bijv. nul items, twee items, drie items).
Engels vereist alleen "één" en "andere", maar andere talen hebben meer classificaties. Om dit te beheren, biedt Android een tag in strings.xml. Android ondersteunt tags voor nul, één, twee, weinig, veel en andere. Hier volgen voorbeelden van talen die elke tag gebruiken:
- Het Arabisch heeft een speciale grammaticale overeenkomst voor nul.
- Het Russisch behandelt elk getal dat eindigt op "1" anders, tenzij het eindigt op "11".
- Het Welsh gebruikt een duidelijk meervoud als er twee van iets zijn.
- Talen als Tsjechisch en Maltees maken onderscheid tussen kleine getallen en grote aantallen.
- Chinees maakt geen onderscheid.
Ga als volgt te werk om de meervoudsreeks in Kotlin op te halen en op te maken:
val itemCount = 3
val message = resources.getQuantityString(R.plurals.item_count, itemCount, itemCount)
In deze code wordt verstaan onder: R.plurals.item_count is de meervoudsaanduiding van de bron. De eerste itemCount selecteert de meervoudstekenreeks op basis van de meervoudsregels van de landinstelling van het apparaat en de tweede itemCount vervangt de tijdelijke aanduiding%d.
Dit zijn bijvoorbeeld de uitgangen voor Engels:
- Voor itemCount = 1: "1 artikel"
- Voor itemCount = 3: "3 artikelen"
-
Tijdelijke aanduidingen gebruiken voor dynamische waarden
Apps geven vaak gepersonaliseerde of dynamische inhoud weer, zoals de naam van een gebruiker of het aantal meldingen dat ze hebben. In plaats van deze inhoud te hardcoderen, kunt u tijdelijke aanduidingen in uw tekenreeksen gebruiken, zoals:
<resources>
<string name="welcome_message">Welkom, %1$s! Je hebt %2$d nieuwe berichten.</string>
</resources>
Dit is hoe het werkt:
- %1$s is een tijdelijke aanduiding voor een tekenreeks (zoals een naam).
- %2$d is een tijdelijke aanduiding voor een getal (zoals het aantal berichten).
Wanneer de app wordt uitgevoerd, worden deze tijdelijke aanduidingen dynamisch vervangen door waarden die door de gebruiker worden ingevoerd en hun dynamische gegevens.
-
Contextuele hints toevoegen
Vertalers weten niet altijd hoe een tekenreeks in uw app wordt gebruikt. Een woord als 'menu' kan bijvoorbeeld een vervolgkeuzelijst, een voedsellijst van een restaurant of een instellingenpagina betekenen. Om verwarring te voorkomen, kunt u opmerkingen rechtstreeks in uw strings.xml toevoegen:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- This string is used as a label for the navigation menu →
<string name="menu_label">Menu</string>
<!-- This string is used for the settings button in the app →
<string name="settings_label">Settings</string>
</resources>
Deze opmerkingen vertellen de vertaler dat het woord "menu" verwijst naar een navigatiefunctie in de app, niet naar een restaurantmenu.
Lokalisatie testen in Android
Het testen van uw gelokaliseerde Android-app is cruciaal om ervoor te zorgen dat deze in verschillende talen en regio's werkt. Door te testen op emulators en echte apparaten, kunt u problemen opsporen en een app leveren die natuurlijk en functioneel aanvoelt voor gebruikers over de hele wereld.
Waarom testen op echte apparaten?
Echte apparaten bieden de beste simulatie van hoe gebruikers met uw app zullen omgaan. Ze laten u zien hoe vertaalde tekst eruitziet op een echt telefoonscherm, of het nu te lang is of wordt afgekapt.
Waarom testen met emulators?
Emulators zijn een praktische manier om uw app in verschillende configuraties te testen. Hiermee kunt u snel schakelen tussen talen en regio's om vertalingen, lay-outaanpassingen en het gedrag van de gebruikersinterface te controleren.
Door beide methoden te combineren, kunt u optimale functionaliteit en gebruikerservaring behouden in meerdere talen en landinstellingen.
Hoe Smartling voor Android-lokalisatie te gebruiken
Smartling haalt de complexiteit uit Android-lokalisatie. Met AI-aangedreven tools, naadloze Android XML-bestandsintegraties en een team van deskundige vertalers biedt Smartling meerdere diensten om het hele vertaalproces van begin tot eind te stroomlijnen en handmatige workflows te automatiseren.
Uw bedrijf kan de automatiseringssystemen en datagestuurde inzichten van Smartling gebruiken om sneller te lokaliseren en merkconsistentie te behouden op wereldwijde markten, zodat u uw concurrenten voor kunt blijven en een ongeëvenaarde gebruikerservaring kunt bieden.
Klaar om slimmer te lokaliseren, niet harder? Download ons gratis eBook '10 strategieën om de vertaalefficiëntie te verbeteren'. U leert hoe u de snelheid, kwaliteit en kosten van vertalingen kunt verbeteren met bruikbare strategieën en voorbeelden uit de praktijk.
Als u in contact wilt komen met Android-gebruikers in verschillende landen en culturen, moet u uw app lokaliseren om meerdere talen te ondersteunen. Dit proces begint met de internationalisering van Android (i18n), die de basis legt voor naadloze lokalisatie.
Het internationaliseren van uw Android-app betekent dat u deze zo moet ontwerpen dat deze geschikt is voor meerdere talen zonder technische wijzigingen. Dit zorgt ervoor dat uw app vertrouwd aanvoelt voor gebruikers uit een andere regio of cultuur, waardoor de bruikbaarheid toeneemt en de deur wordt geopend naar nieuwe markten. Het proces hoeft maar één keer te worden uitgevoerd, waardoor u tijd en geld bespaart bij elke volgende lokalisatie.
Deze stapsgewijze handleiding leidt u door het proces van internationalisering en lokalisatie van uw Android-app. U leert hoe u uw app voorbereidt, dynamische inhoud verwerkt en test in verschillende talen en landinstellingen.
Hoe bereid je je voor op lokalisatie van Android-apps?
Internationalisatie bereidt uw Android app voor op lokalisatie. Dit proces legt een sterke basis binnen Android Studio om ervoor te zorgen dat uw app meerdere talen en regio's ondersteunt. Zo kunt u beginnen:
-
Installeer Android Studio
Begin met het downloaden en installeren van Android Studio. Android Studio is de officiële ontwikkelomgeving voor Android en biedt alles wat je nodig hebt om je app te internationaliseren, te lokaliseren en te testen.
-
Een nieuw Android-project maken
Open Android Studio en maak een nieuw project. Het sjabloon "Lege activiteit" biedt een eenvoudig startpunt.
Configureer vervolgens uw projectinstellingen als volgt:
- Naam: Voer de naam van uw app in (bijv. "LocalizedApp").
- Naam van de verpakking: Gebruik een unieke ID zoals 'com.example.localizedappi18n'.
- Taal: Selecteer Kotlin (aanbevolen) of Java.
- Minimum SDK: Stel de laagste Android-versie in die uw app ondersteunt.
Bevestig vervolgens uw keuzes om de projectstructuur te genereren.
-
UI-elementen toevoegen met flexibele lay-outs
Ontwerp bij het toevoegen van UI-elementen met lokalisatie in gedachten. Talen als Duits hebben vaak meer ruimte nodig dan Engels, terwijl Chinese karakters compacter zijn. Vermijd het instellen van vaste breedtes voor tekstelementen, aangezien langere vertalingen in sommige talen de containergrootte kunnen overschrijden.
Overweeg het gebruik van tools zoals ConstraintLayout om UI-elementen in staat te stellen de positie en grootte dynamisch aan te passen op basis van de lengte van de vertaalde tekst.
Hier is een XML-voorbeeld:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/welcome_message"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
Hier wordt de TextView gebruikt om een tekenreeksbron weer te geven (bijv. een welkomstbericht). Door wrap_content voor de breedte te gebruiken, wordt het formaat van het element automatisch aangepast aan de lengte van de vertaalde tekst in plaats van te worden beperkt door een vaste afmeting. Bovendien zorgt de ConstraintLayout ervoor dat de TextView goed gepositioneerd blijft in het scherm, ongeacht de tekstlengte of schermgrootte.
Door vanaf het begin een flexibele lay-out te maken, ziet uw app er geweldig uit, ongeacht de taal waarin deze is gelokaliseerd.
-
Voorbereiden op lokalisatie met geëxternaliseerde tekst
De laatste stap om uw Android-app voor te bereiden op lokalisatie vereist dat u alle gebruikersgerichte tekst opslaat in een afzonderlijk bronbestand in plaats van het hard te coderen. Met een gecentraliseerd bronbestand zoals strings.xml, U hoeft de tekst die verspreid is over uw code niet handmatig te vervangen.
Hier is hoe het te doen:
- Zoek de map "res/values/" in uw projectmap.
- Open de "strings.xml" bestand (als het niet bestaat, maak er dan een).
- Voeg uw tekst toe aan het bestand met behulp van een naam-waardepaar:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="welcome_message">Welkom bij mijn app!</string>
</resources>
Ga terug naar het bestand activity_main.xml en werk de TextView bij om naar de stringbron te verwijzen:
<TextView
android:text="@string/welcome_message"
Door uw project op deze manier te organiseren, wordt uw Android-app geïnternationaliseerd, zodat u eenvoudig de inhoud kunt afbakenen die in een andere taal moet worden gelokaliseerd.
Een Android-app lokaliseren in 4 stappen
Nu u uw Android-app heeft voorbereid, is het tijd om het stapsgewijze lokalisatieproces door te nemen, van het instellen van taalspecifieke bronnen tot het dynamisch wijzigen van de landinstelling van de Android-app.
-
Breid strings.xml uit voor lokalisatie
In de voorbereidingsfase heb je een strings.xml bestand gemaakt om alle tekst in je Android-app te beheren. Nu is het tijd om dit uit te breiden door taalspecifieke versies van het bestand te maken voor elke ondersteunde taal.
Maak eerst nieuwe mappen voor elke doeltaal in de res-directory van uw project. Gebruik een mapnaam met de juiste taalcode (bijv. "res/values-es/" voor Spaans en "res/values-fr/" voor Frans).
Kopieer uw standaard strings.xml-bestand naar elke map. Vertaal vervolgens de tekst handmatig voor elke taal. In het standaard Engelse bestand kan bijvoorbeeld het volgende staan:
<TextView
<string name="hello_world">Hello, World!string>
De Spaanse versie in "values-es/strings.xml". zou zijn:
<TextView
<string name="hello_world">¡Hola, Mundo!string>
Nadat u deze taalspecifieke XML-bestanden heeft gemaakt, kiest Android automatisch de juiste versie van strings.xml op basis van de taalinstellingen van het apparaat van de gebruiker.
-
Omgaan met meervouden voor nauwkeurige vertalingen
Meervouden zijn lastig omdat elke taal er anders mee omgaat. 'één item' is bijvoorbeeld enkelvoud in het Engels, maar elk ander getal is meervoud, of het nu 'nul items' of 'tweehonderd items' is. Talen als Russisch, Welsh en Tsjechisch gebruiken echter specifiekere regels voor meervouden op basis van het getal.
Ga als volgt te werk om meervoudstekenreeksen in strings.xml voor Engelste definiëren:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<plurals name="item_count">
<item quantity="one">%d item</item>
<item quantity="Overige">%d artikelen</item>
</plurals>
</resources>
Dit is goed voor de volgende hoeveelheidswaarden:
- Eén: Wordt gebruikt voor enkelvoudige vormen (bijv. één item).
- Ander: Wordt gebruikt voor meervoudsvormen (bijv. nul items, twee items, drie items).
Engels vereist alleen "één" en "andere", maar andere talen hebben meer classificaties. Om dit te beheren, biedt Android een tag in strings.xml. Android ondersteunt tags voor nul, één, twee, weinig, veel en andere. Hier volgen voorbeelden van talen die elke tag gebruiken:
- Het Arabisch heeft een speciale grammaticale overeenkomst voor nul.
- Het Russisch behandelt elk getal dat eindigt op "1" anders, tenzij het eindigt op "11".
- Het Welsh gebruikt een duidelijk meervoud als er twee van iets zijn.
- Talen als Tsjechisch en Maltees maken onderscheid tussen kleine getallen en grote aantallen.
- Chinees maakt geen onderscheid.
Ga als volgt te werk om de meervoudsreeks in Kotlin op te halen en op te maken:
val itemCount = 3
val message = resources.getQuantityString(R.plurals.item_count, itemCount, itemCount)
In deze code wordt verstaan onder: R.plurals.item_count is de meervoudsaanduiding van de bron. De eerste itemCount selecteert de meervoudstekenreeks op basis van de meervoudsregels van de landinstelling van het apparaat en de tweede itemCount vervangt de tijdelijke aanduiding%d.
Dit zijn bijvoorbeeld de uitgangen voor Engels:
- Voor itemCount = 1: "1 artikel"
- Voor itemCount = 3: "3 artikelen"
-
Tijdelijke aanduidingen gebruiken voor dynamische waarden
Apps geven vaak gepersonaliseerde of dynamische inhoud weer, zoals de naam van een gebruiker of het aantal meldingen dat ze hebben. In plaats van deze inhoud te hardcoderen, kunt u tijdelijke aanduidingen in uw tekenreeksen gebruiken, zoals:
<resources>
<string name="welcome_message">Welkom, %1$s! Je hebt %2$d nieuwe berichten.</string>
</resources>
Dit is hoe het werkt:
- %1$s is een tijdelijke aanduiding voor een tekenreeks (zoals een naam).
- %2$d is een tijdelijke aanduiding voor een getal (zoals het aantal berichten).
Wanneer de app wordt uitgevoerd, worden deze tijdelijke aanduidingen dynamisch vervangen door waarden die door de gebruiker worden ingevoerd en hun dynamische gegevens.
-
Contextuele hints toevoegen
Vertalers weten niet altijd hoe een tekenreeks in uw app wordt gebruikt. Een woord als 'menu' kan bijvoorbeeld een vervolgkeuzelijst, een voedsellijst van een restaurant of een instellingenpagina betekenen. Om verwarring te voorkomen, kunt u opmerkingen rechtstreeks in uw strings.xml toevoegen:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- This string is used as a label for the navigation menu →
<string name="menu_label">Menu</string>
<!-- This string is used for the settings button in the app →
<string name="settings_label">Settings</string>
</resources>
Deze opmerkingen vertellen de vertaler dat het woord "menu" verwijst naar een navigatiefunctie in de app, niet naar een restaurantmenu.
Lokalisatie testen in Android
Het testen van uw gelokaliseerde Android-app is cruciaal om ervoor te zorgen dat deze in verschillende talen en regio's werkt. Door te testen op emulators en echte apparaten, kunt u problemen opsporen en een app leveren die natuurlijk en functioneel aanvoelt voor gebruikers over de hele wereld.
Waarom testen op echte apparaten?
Echte apparaten bieden de beste simulatie van hoe gebruikers met uw app zullen omgaan. Ze laten u zien hoe vertaalde tekst eruitziet op een echt telefoonscherm, of het nu te lang is of wordt afgekapt.
Waarom testen met emulators?
Emulators zijn een praktische manier om uw app in verschillende configuraties te testen. Hiermee kunt u snel schakelen tussen talen en regio's om vertalingen, lay-outaanpassingen en het gedrag van de gebruikersinterface te controleren.
Door beide methoden te combineren, kunt u optimale functionaliteit en gebruikerservaring behouden in meerdere talen en landinstellingen.
Hoe Smartling voor Android-lokalisatie te gebruiken
Smartling haalt de complexiteit uit Android-lokalisatie. Met AI-aangedreven tools, naadloze Android XML-bestandsintegraties en een team van deskundige vertalers biedt Smartling meerdere diensten om het hele vertaalproces van begin tot eind te stroomlijnen en handmatige workflows te automatiseren.
Uw bedrijf kan de automatiseringssystemen en datagestuurde inzichten van Smartling gebruiken om sneller te lokaliseren en merkconsistentie te behouden op wereldwijde markten, zodat u uw concurrenten voor kunt blijven en een ongeëvenaarde gebruikerservaring kunt bieden.
Klaar om slimmer te lokaliseren, niet harder? Download ons gratis eBook '10 strategieën om de vertaalefficiëntie te verbeteren'. U leert hoe u de snelheid, kwaliteit en kosten van vertalingen kunt verbeteren met bruikbare strategieën en voorbeelden uit de praktijk.
Als u in contact wilt komen met Android-gebruikers in verschillende landen en culturen, moet u uw app lokaliseren om meerdere talen te ondersteunen. Dit proces begint met de internationalisering van Android (i18n), die de basis legt voor naadloze lokalisatie.
Het internationaliseren van uw Android-app betekent dat u deze zo moet ontwerpen dat deze geschikt is voor meerdere talen zonder technische wijzigingen. Dit zorgt ervoor dat uw app vertrouwd aanvoelt voor gebruikers uit een andere regio of cultuur, waardoor de bruikbaarheid toeneemt en de deur wordt geopend naar nieuwe markten. Het proces hoeft maar één keer te worden uitgevoerd, waardoor u tijd en geld bespaart bij elke volgende lokalisatie.
Deze stapsgewijze handleiding leidt u door het proces van internationalisering en lokalisatie van uw Android-app. U leert hoe u uw app voorbereidt, dynamische inhoud verwerkt en test in verschillende talen en landinstellingen.
Hoe bereid je je voor op lokalisatie van Android-apps?
Internationalisatie bereidt uw Android app voor op lokalisatie. Dit proces legt een sterke basis binnen Android Studio om ervoor te zorgen dat uw app meerdere talen en regio's ondersteunt. Zo kunt u beginnen:
-
Installeer Android Studio
Begin met het downloaden en installeren van Android Studio. Android Studio is de officiële ontwikkelomgeving voor Android en biedt alles wat je nodig hebt om je app te internationaliseren, te lokaliseren en te testen.
-
Een nieuw Android-project maken
Open Android Studio en maak een nieuw project. Het sjabloon "Lege activiteit" biedt een eenvoudig startpunt.
Configureer vervolgens uw projectinstellingen als volgt:
- Naam: Voer de naam van uw app in (bijv. "LocalizedApp").
- Naam van de verpakking: Gebruik een unieke ID zoals 'com.example.localizedappi18n'.
- Taal: Selecteer Kotlin (aanbevolen) of Java.
- Minimum SDK: Stel de laagste Android-versie in die uw app ondersteunt.
Bevestig vervolgens uw keuzes om de projectstructuur te genereren.
-
UI-elementen toevoegen met flexibele lay-outs
Ontwerp bij het toevoegen van UI-elementen met lokalisatie in gedachten. Talen als Duits hebben vaak meer ruimte nodig dan Engels, terwijl Chinese karakters compacter zijn. Vermijd het instellen van vaste breedtes voor tekstelementen, aangezien langere vertalingen in sommige talen de containergrootte kunnen overschrijden.
Overweeg het gebruik van tools zoals ConstraintLayout om UI-elementen in staat te stellen de positie en grootte dynamisch aan te passen op basis van de lengte van de vertaalde tekst.
Hier is een XML-voorbeeld:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/welcome_message"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
Hier wordt de TextView gebruikt om een tekenreeksbron weer te geven (bijv. een welkomstbericht). Door wrap_content voor de breedte te gebruiken, wordt het formaat van het element automatisch aangepast aan de lengte van de vertaalde tekst in plaats van te worden beperkt door een vaste afmeting. Bovendien zorgt de ConstraintLayout ervoor dat de TextView goed gepositioneerd blijft in het scherm, ongeacht de tekstlengte of schermgrootte.
Door vanaf het begin een flexibele lay-out te maken, ziet uw app er geweldig uit, ongeacht de taal waarin deze is gelokaliseerd.
-
Voorbereiden op lokalisatie met geëxternaliseerde tekst
De laatste stap om uw Android-app voor te bereiden op lokalisatie vereist dat u alle gebruikersgerichte tekst opslaat in een afzonderlijk bronbestand in plaats van het hard te coderen. Met een gecentraliseerd bronbestand zoals strings.xml, U hoeft de tekst die verspreid is over uw code niet handmatig te vervangen.
Hier is hoe het te doen:
- Zoek de map "res/values/" in uw projectmap.
- Open de "strings.xml" bestand (als het niet bestaat, maak er dan een).
- Voeg uw tekst toe aan het bestand met behulp van een naam-waardepaar:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="welcome_message">Welkom bij mijn app!</string>
</resources>
Ga terug naar het bestand activity_main.xml en werk de TextView bij om naar de stringbron te verwijzen:
<TextView
android:text="@string/welcome_message"
Door uw project op deze manier te organiseren, wordt uw Android-app geïnternationaliseerd, zodat u eenvoudig de inhoud kunt afbakenen die in een andere taal moet worden gelokaliseerd.
Een Android-app lokaliseren in 4 stappen
Nu u uw Android-app heeft voorbereid, is het tijd om het stapsgewijze lokalisatieproces door te nemen, van het instellen van taalspecifieke bronnen tot het dynamisch wijzigen van de landinstelling van de Android-app.
-
Breid strings.xml uit voor lokalisatie
In de voorbereidingsfase heb je een strings.xml bestand gemaakt om alle tekst in je Android-app te beheren. Nu is het tijd om dit uit te breiden door taalspecifieke versies van het bestand te maken voor elke ondersteunde taal.
Maak eerst nieuwe mappen voor elke doeltaal in de res-directory van uw project. Gebruik een mapnaam met de juiste taalcode (bijv. "res/values-es/" voor Spaans en "res/values-fr/" voor Frans).
Kopieer uw standaard strings.xml-bestand naar elke map. Vertaal vervolgens de tekst handmatig voor elke taal. In het standaard Engelse bestand kan bijvoorbeeld het volgende staan:
<TextView
<string name="hello_world">Hello, World!string>
De Spaanse versie in "values-es/strings.xml". zou zijn:
<TextView
<string name="hello_world">¡Hola, Mundo!string>
Nadat u deze taalspecifieke XML-bestanden heeft gemaakt, kiest Android automatisch de juiste versie van strings.xml op basis van de taalinstellingen van het apparaat van de gebruiker.
-
Omgaan met meervouden voor nauwkeurige vertalingen
Meervouden zijn lastig omdat elke taal er anders mee omgaat. 'één item' is bijvoorbeeld enkelvoud in het Engels, maar elk ander getal is meervoud, of het nu 'nul items' of 'tweehonderd items' is. Talen als Russisch, Welsh en Tsjechisch gebruiken echter specifiekere regels voor meervouden op basis van het getal.
Ga als volgt te werk om meervoudstekenreeksen in strings.xml voor Engelste definiëren:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<plurals name="item_count">
<item quantity="one">%d item</item>
<item quantity="Overige">%d artikelen</item>
</plurals>
</resources>
Dit is goed voor de volgende hoeveelheidswaarden:
- Eén: Wordt gebruikt voor enkelvoudige vormen (bijv. één item).
- Ander: Wordt gebruikt voor meervoudsvormen (bijv. nul items, twee items, drie items).
Engels vereist alleen "één" en "andere", maar andere talen hebben meer classificaties. Om dit te beheren, biedt Android een tag in strings.xml. Android ondersteunt tags voor nul, één, twee, weinig, veel en andere. Hier volgen voorbeelden van talen die elke tag gebruiken:
- Het Arabisch heeft een speciale grammaticale overeenkomst voor nul.
- Het Russisch behandelt elk getal dat eindigt op "1" anders, tenzij het eindigt op "11".
- Het Welsh gebruikt een duidelijk meervoud als er twee van iets zijn.
- Talen als Tsjechisch en Maltees maken onderscheid tussen kleine getallen en grote aantallen.
- Chinees maakt geen onderscheid.
Ga als volgt te werk om de meervoudsreeks in Kotlin op te halen en op te maken:
val itemCount = 3
val message = resources.getQuantityString(R.plurals.item_count, itemCount, itemCount)
In deze code wordt verstaan onder: R.plurals.item_count is de meervoudsaanduiding van de bron. De eerste itemCount selecteert de meervoudstekenreeks op basis van de meervoudsregels van de landinstelling van het apparaat en de tweede itemCount vervangt de tijdelijke aanduiding%d.
Dit zijn bijvoorbeeld de uitgangen voor Engels:
- Voor itemCount = 1: "1 artikel"
- Voor itemCount = 3: "3 artikelen"
-
Tijdelijke aanduidingen gebruiken voor dynamische waarden
Apps geven vaak gepersonaliseerde of dynamische inhoud weer, zoals de naam van een gebruiker of het aantal meldingen dat ze hebben. In plaats van deze inhoud te hardcoderen, kunt u tijdelijke aanduidingen in uw tekenreeksen gebruiken, zoals:
<resources>
<string name="welcome_message">Welkom, %1$s! Je hebt %2$d nieuwe berichten.</string>
</resources>
Dit is hoe het werkt:
- %1$s is een tijdelijke aanduiding voor een tekenreeks (zoals een naam).
- %2$d is een tijdelijke aanduiding voor een getal (zoals het aantal berichten).
Wanneer de app wordt uitgevoerd, worden deze tijdelijke aanduidingen dynamisch vervangen door waarden die door de gebruiker worden ingevoerd en hun dynamische gegevens.
-
Contextuele hints toevoegen
Vertalers weten niet altijd hoe een tekenreeks in uw app wordt gebruikt. Een woord als 'menu' kan bijvoorbeeld een vervolgkeuzelijst, een voedsellijst van een restaurant of een instellingenpagina betekenen. Om verwarring te voorkomen, kunt u opmerkingen rechtstreeks in uw strings.xml toevoegen:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- This string is used as a label for the navigation menu →
<string name="menu_label">Menu</string>
<!-- This string is used for the settings button in the app →
<string name="settings_label">Settings</string>
</resources>
Deze opmerkingen vertellen de vertaler dat het woord "menu" verwijst naar een navigatiefunctie in de app, niet naar een restaurantmenu.
Lokalisatie testen in Android
Het testen van uw gelokaliseerde Android-app is cruciaal om ervoor te zorgen dat deze in verschillende talen en regio's werkt. Door te testen op emulators en echte apparaten, kunt u problemen opsporen en een app leveren die natuurlijk en functioneel aanvoelt voor gebruikers over de hele wereld.
Waarom testen op echte apparaten?
Echte apparaten bieden de beste simulatie van hoe gebruikers met uw app zullen omgaan. Ze laten u zien hoe vertaalde tekst eruitziet op een echt telefoonscherm, of het nu te lang is of wordt afgekapt.
Waarom testen met emulators?
Emulators zijn een praktische manier om uw app in verschillende configuraties te testen. Hiermee kunt u snel schakelen tussen talen en regio's om vertalingen, lay-outaanpassingen en het gedrag van de gebruikersinterface te controleren.
Door beide methoden te combineren, kunt u optimale functionaliteit en gebruikerservaring behouden in meerdere talen en landinstellingen.
Hoe Smartling voor Android-lokalisatie te gebruiken
Smartling haalt de complexiteit uit Android-lokalisatie. Met AI-aangedreven tools, naadloze Android XML-bestandsintegraties en een team van deskundige vertalers biedt Smartling meerdere diensten om het hele vertaalproces van begin tot eind te stroomlijnen en handmatige workflows te automatiseren.
Uw bedrijf kan de automatiseringssystemen en datagestuurde inzichten van Smartling gebruiken om sneller te lokaliseren en merkconsistentie te behouden op wereldwijde markten, zodat u uw concurrenten voor kunt blijven en een ongeëvenaarde gebruikerservaring kunt bieden.
Klaar om slimmer te lokaliseren, niet harder? Download ons gratis eBook '10 strategieën om de vertaalefficiëntie te verbeteren'. U leert hoe u de snelheid, kwaliteit en kosten van vertalingen kunt verbeteren met bruikbare strategieën en voorbeelden uit de praktijk.
Als u in contact wilt komen met Android-gebruikers in verschillende landen en culturen, moet u uw app lokaliseren om meerdere talen te ondersteunen. Dit proces begint met de internationalisering van Android (i18n), die de basis legt voor naadloze lokalisatie.
Het internationaliseren van uw Android-app betekent dat u deze zo moet ontwerpen dat deze geschikt is voor meerdere talen zonder technische wijzigingen. Dit zorgt ervoor dat uw app vertrouwd aanvoelt voor gebruikers uit een andere regio of cultuur, waardoor de bruikbaarheid toeneemt en de deur wordt geopend naar nieuwe markten. Het proces hoeft maar één keer te worden uitgevoerd, waardoor u tijd en geld bespaart bij elke volgende lokalisatie.
Deze stapsgewijze handleiding leidt u door het proces van internationalisering en lokalisatie van uw Android-app. U leert hoe u uw app voorbereidt, dynamische inhoud verwerkt en test in verschillende talen en landinstellingen.
Hoe bereid je je voor op lokalisatie van Android-apps?
Internationalisatie bereidt uw Android app voor op lokalisatie. Dit proces legt een sterke basis binnen Android Studio om ervoor te zorgen dat uw app meerdere talen en regio's ondersteunt. Zo kunt u beginnen:
-
Installeer Android Studio
Begin met het downloaden en installeren van Android Studio. Android Studio is de officiële ontwikkelomgeving voor Android en biedt alles wat je nodig hebt om je app te internationaliseren, te lokaliseren en te testen.
-
Een nieuw Android-project maken
Open Android Studio en maak een nieuw project. Het sjabloon "Lege activiteit" biedt een eenvoudig startpunt.
Configureer vervolgens uw projectinstellingen als volgt:
- Naam: Voer de naam van uw app in (bijv. "LocalizedApp").
- Naam van de verpakking: Gebruik een unieke ID zoals 'com.example.localizedappi18n'.
- Taal: Selecteer Kotlin (aanbevolen) of Java.
- Minimum SDK: Stel de laagste Android-versie in die uw app ondersteunt.
Bevestig vervolgens uw keuzes om de projectstructuur te genereren.
-
UI-elementen toevoegen met flexibele lay-outs
Ontwerp bij het toevoegen van UI-elementen met lokalisatie in gedachten. Talen als Duits hebben vaak meer ruimte nodig dan Engels, terwijl Chinese karakters compacter zijn. Vermijd het instellen van vaste breedtes voor tekstelementen, aangezien langere vertalingen in sommige talen de containergrootte kunnen overschrijden.
Overweeg het gebruik van tools zoals ConstraintLayout om UI-elementen in staat te stellen de positie en grootte dynamisch aan te passen op basis van de lengte van de vertaalde tekst.
Hier is een XML-voorbeeld:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/welcome_message"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
Hier wordt de TextView gebruikt om een tekenreeksbron weer te geven (bijv. een welkomstbericht). Door wrap_content voor de breedte te gebruiken, wordt het formaat van het element automatisch aangepast aan de lengte van de vertaalde tekst in plaats van te worden beperkt door een vaste afmeting. Bovendien zorgt de ConstraintLayout ervoor dat de TextView goed gepositioneerd blijft in het scherm, ongeacht de tekstlengte of schermgrootte.
Door vanaf het begin een flexibele lay-out te maken, ziet uw app er geweldig uit, ongeacht de taal waarin deze is gelokaliseerd.
-
Voorbereiden op lokalisatie met geëxternaliseerde tekst
De laatste stap om uw Android-app voor te bereiden op lokalisatie vereist dat u alle gebruikersgerichte tekst opslaat in een afzonderlijk bronbestand in plaats van het hard te coderen. Met een gecentraliseerd bronbestand zoals strings.xml, U hoeft de tekst die verspreid is over uw code niet handmatig te vervangen.
Hier is hoe het te doen:
- Zoek de map "res/values/" in uw projectmap.
- Open de "strings.xml" bestand (als het niet bestaat, maak er dan een).
- Voeg uw tekst toe aan het bestand met behulp van een naam-waardepaar:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="welcome_message">Welkom bij mijn app!</string>
</resources>
Ga terug naar het bestand activity_main.xml en werk de TextView bij om naar de stringbron te verwijzen:
<TextView
android:text="@string/welcome_message"
Door uw project op deze manier te organiseren, wordt uw Android-app geïnternationaliseerd, zodat u eenvoudig de inhoud kunt afbakenen die in een andere taal moet worden gelokaliseerd.
Een Android-app lokaliseren in 4 stappen
Nu u uw Android-app heeft voorbereid, is het tijd om het stapsgewijze lokalisatieproces door te nemen, van het instellen van taalspecifieke bronnen tot het dynamisch wijzigen van de landinstelling van de Android-app.
-
Breid strings.xml uit voor lokalisatie
In de voorbereidingsfase heb je een strings.xml bestand gemaakt om alle tekst in je Android-app te beheren. Nu is het tijd om dit uit te breiden door taalspecifieke versies van het bestand te maken voor elke ondersteunde taal.
Maak eerst nieuwe mappen voor elke doeltaal in de res-directory van uw project. Gebruik een mapnaam met de juiste taalcode (bijv. "res/values-es/" voor Spaans en "res/values-fr/" voor Frans).
Kopieer uw standaard strings.xml-bestand naar elke map. Vertaal vervolgens de tekst handmatig voor elke taal. In het standaard Engelse bestand kan bijvoorbeeld het volgende staan:
<TextView
<string name="hello_world">Hello, World!string>
De Spaanse versie in "values-es/strings.xml". zou zijn:
<TextView
<string name="hello_world">¡Hola, Mundo!string>
Nadat u deze taalspecifieke XML-bestanden heeft gemaakt, kiest Android automatisch de juiste versie van strings.xml op basis van de taalinstellingen van het apparaat van de gebruiker.
-
Omgaan met meervouden voor nauwkeurige vertalingen
Meervouden zijn lastig omdat elke taal er anders mee omgaat. 'één item' is bijvoorbeeld enkelvoud in het Engels, maar elk ander getal is meervoud, of het nu 'nul items' of 'tweehonderd items' is. Talen als Russisch, Welsh en Tsjechisch gebruiken echter specifiekere regels voor meervouden op basis van het getal.
Ga als volgt te werk om meervoudstekenreeksen in strings.xml voor Engelste definiëren:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<plurals name="item_count">
<item quantity="one">%d item</item>
<item quantity="Overige">%d artikelen</item>
</plurals>
</resources>
Dit is goed voor de volgende hoeveelheidswaarden:
- Eén: Wordt gebruikt voor enkelvoudige vormen (bijv. één item).
- Ander: Wordt gebruikt voor meervoudsvormen (bijv. nul items, twee items, drie items).
Engels vereist alleen "één" en "andere", maar andere talen hebben meer classificaties. Om dit te beheren, biedt Android een tag in strings.xml. Android ondersteunt tags voor nul, één, twee, weinig, veel en andere. Hier volgen voorbeelden van talen die elke tag gebruiken:
- Het Arabisch heeft een speciale grammaticale overeenkomst voor nul.
- Het Russisch behandelt elk getal dat eindigt op "1" anders, tenzij het eindigt op "11".
- Het Welsh gebruikt een duidelijk meervoud als er twee van iets zijn.
- Talen als Tsjechisch en Maltees maken onderscheid tussen kleine getallen en grote aantallen.
- Chinees maakt geen onderscheid.
Ga als volgt te werk om de meervoudsreeks in Kotlin op te halen en op te maken:
val itemCount = 3
val message = resources.getQuantityString(R.plurals.item_count, itemCount, itemCount)
In deze code wordt verstaan onder: R.plurals.item_count is de meervoudsaanduiding van de bron. De eerste itemCount selecteert de meervoudstekenreeks op basis van de meervoudsregels van de landinstelling van het apparaat en de tweede itemCount vervangt de tijdelijke aanduiding%d.
Dit zijn bijvoorbeeld de uitgangen voor Engels:
- Voor itemCount = 1: "1 artikel"
- Voor itemCount = 3: "3 artikelen"
-
Tijdelijke aanduidingen gebruiken voor dynamische waarden
Apps geven vaak gepersonaliseerde of dynamische inhoud weer, zoals de naam van een gebruiker of het aantal meldingen dat ze hebben. In plaats van deze inhoud te hardcoderen, kunt u tijdelijke aanduidingen in uw tekenreeksen gebruiken, zoals:
<resources>
<string name="welcome_message">Welkom, %1$s! Je hebt %2$d nieuwe berichten.</string>
</resources>
Dit is hoe het werkt:
- %1$s is een tijdelijke aanduiding voor een tekenreeks (zoals een naam).
- %2$d is een tijdelijke aanduiding voor een getal (zoals het aantal berichten).
Wanneer de app wordt uitgevoerd, worden deze tijdelijke aanduidingen dynamisch vervangen door waarden die door de gebruiker worden ingevoerd en hun dynamische gegevens.
-
Contextuele hints toevoegen
Vertalers weten niet altijd hoe een tekenreeks in uw app wordt gebruikt. Een woord als 'menu' kan bijvoorbeeld een vervolgkeuzelijst, een voedsellijst van een restaurant of een instellingenpagina betekenen. Om verwarring te voorkomen, kunt u opmerkingen rechtstreeks in uw strings.xml toevoegen:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- This string is used as a label for the navigation menu →
<string name="menu_label">Menu</string>
<!-- This string is used for the settings button in the app →
<string name="settings_label">Settings</string>
</resources>
Deze opmerkingen vertellen de vertaler dat het woord "menu" verwijst naar een navigatiefunctie in de app, niet naar een restaurantmenu.
Lokalisatie testen in Android
Het testen van uw gelokaliseerde Android-app is cruciaal om ervoor te zorgen dat deze in verschillende talen en regio's werkt. Door te testen op emulators en echte apparaten, kunt u problemen opsporen en een app leveren die natuurlijk en functioneel aanvoelt voor gebruikers over de hele wereld.
Waarom testen op echte apparaten?
Echte apparaten bieden de beste simulatie van hoe gebruikers met uw app zullen omgaan. Ze laten u zien hoe vertaalde tekst eruitziet op een echt telefoonscherm, of het nu te lang is of wordt afgekapt.
Waarom testen met emulators?
Emulators zijn een praktische manier om uw app in verschillende configuraties te testen. Hiermee kunt u snel schakelen tussen talen en regio's om vertalingen, lay-outaanpassingen en het gedrag van de gebruikersinterface te controleren.
Door beide methoden te combineren, kunt u optimale functionaliteit en gebruikerservaring behouden in meerdere talen en landinstellingen.
Hoe Smartling voor Android-lokalisatie te gebruiken
Smartling haalt de complexiteit uit Android-lokalisatie. Met AI-aangedreven tools, naadloze Android XML-bestandsintegraties en een team van deskundige vertalers biedt Smartling meerdere diensten om het hele vertaalproces van begin tot eind te stroomlijnen en handmatige workflows te automatiseren.
Uw bedrijf kan de automatiseringssystemen en datagestuurde inzichten van Smartling gebruiken om sneller te lokaliseren en merkconsistentie te behouden op wereldwijde markten, zodat u uw concurrenten voor kunt blijven en een ongeëvenaarde gebruikerservaring kunt bieden.
Klaar om slimmer te lokaliseren, niet harder? Download ons gratis eBook '10 strategieën om de vertaalefficiëntie te verbeteren'. U leert hoe u de snelheid, kwaliteit en kosten van vertalingen kunt verbeteren met bruikbare strategieën en voorbeelden uit de praktijk.
Als u in contact wilt komen met Android-gebruikers in verschillende landen en culturen, moet u uw app lokaliseren om meerdere talen te ondersteunen. Dit proces begint met de internationalisering van Android (i18n), die de basis legt voor naadloze lokalisatie.
Het internationaliseren van uw Android-app betekent dat u deze zo moet ontwerpen dat deze geschikt is voor meerdere talen zonder technische wijzigingen. Dit zorgt ervoor dat uw app vertrouwd aanvoelt voor gebruikers uit een andere regio of cultuur, waardoor de bruikbaarheid toeneemt en de deur wordt geopend naar nieuwe markten. Het proces hoeft maar één keer te worden uitgevoerd, waardoor u tijd en geld bespaart bij elke volgende lokalisatie.
Deze stapsgewijze handleiding leidt u door het proces van internationalisering en lokalisatie van uw Android-app. U leert hoe u uw app voorbereidt, dynamische inhoud verwerkt en test in verschillende talen en landinstellingen.
Hoe bereid je je voor op lokalisatie van Android-apps?
Internationalisatie bereidt uw Android app voor op lokalisatie. Dit proces legt een sterke basis binnen Android Studio om ervoor te zorgen dat uw app meerdere talen en regio's ondersteunt. Zo kunt u beginnen:
-
Installeer Android Studio
Begin met het downloaden en installeren van Android Studio. Android Studio is de officiële ontwikkelomgeving voor Android en biedt alles wat je nodig hebt om je app te internationaliseren, te lokaliseren en te testen.
-
Een nieuw Android-project maken
Open Android Studio en maak een nieuw project. Het sjabloon "Lege activiteit" biedt een eenvoudig startpunt.
Configureer vervolgens uw projectinstellingen als volgt:
- Naam: Voer de naam van uw app in (bijv. "LocalizedApp").
- Naam van de verpakking: Gebruik een unieke ID zoals 'com.example.localizedappi18n'.
- Taal: Selecteer Kotlin (aanbevolen) of Java.
- Minimum SDK: Stel de laagste Android-versie in die uw app ondersteunt.
Bevestig vervolgens uw keuzes om de projectstructuur te genereren.
-
UI-elementen toevoegen met flexibele lay-outs
Ontwerp bij het toevoegen van UI-elementen met lokalisatie in gedachten. Talen als Duits hebben vaak meer ruimte nodig dan Engels, terwijl Chinese karakters compacter zijn. Vermijd het instellen van vaste breedtes voor tekstelementen, aangezien langere vertalingen in sommige talen de containergrootte kunnen overschrijden.
Overweeg het gebruik van tools zoals ConstraintLayout om UI-elementen in staat te stellen de positie en grootte dynamisch aan te passen op basis van de lengte van de vertaalde tekst.
Hier is een XML-voorbeeld:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/welcome_message"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
Hier wordt de TextView gebruikt om een tekenreeksbron weer te geven (bijv. een welkomstbericht). Door wrap_content voor de breedte te gebruiken, wordt het formaat van het element automatisch aangepast aan de lengte van de vertaalde tekst in plaats van te worden beperkt door een vaste afmeting. Bovendien zorgt de ConstraintLayout ervoor dat de TextView goed gepositioneerd blijft in het scherm, ongeacht de tekstlengte of schermgrootte.
Door vanaf het begin een flexibele lay-out te maken, ziet uw app er geweldig uit, ongeacht de taal waarin deze is gelokaliseerd.
-
Voorbereiden op lokalisatie met geëxternaliseerde tekst
De laatste stap om uw Android-app voor te bereiden op lokalisatie vereist dat u alle gebruikersgerichte tekst opslaat in een afzonderlijk bronbestand in plaats van het hard te coderen. Met een gecentraliseerd bronbestand zoals strings.xml, U hoeft de tekst die verspreid is over uw code niet handmatig te vervangen.
Hier is hoe het te doen:
- Zoek de map "res/values/" in uw projectmap.
- Open de "strings.xml" bestand (als het niet bestaat, maak er dan een).
- Voeg uw tekst toe aan het bestand met behulp van een naam-waardepaar:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="welcome_message">Welkom bij mijn app!</string>
</resources>
Ga terug naar het bestand activity_main.xml en werk de TextView bij om naar de stringbron te verwijzen:
<TextView
android:text="@string/welcome_message"
Door uw project op deze manier te organiseren, wordt uw Android-app geïnternationaliseerd, zodat u eenvoudig de inhoud kunt afbakenen die in een andere taal moet worden gelokaliseerd.
Een Android-app lokaliseren in 4 stappen
Nu u uw Android-app heeft voorbereid, is het tijd om het stapsgewijze lokalisatieproces door te nemen, van het instellen van taalspecifieke bronnen tot het dynamisch wijzigen van de landinstelling van de Android-app.
-
Breid strings.xml uit voor lokalisatie
In de voorbereidingsfase heb je een strings.xml bestand gemaakt om alle tekst in je Android-app te beheren. Nu is het tijd om dit uit te breiden door taalspecifieke versies van het bestand te maken voor elke ondersteunde taal.
Maak eerst nieuwe mappen voor elke doeltaal in de res-directory van uw project. Gebruik een mapnaam met de juiste taalcode (bijv. "res/values-es/" voor Spaans en "res/values-fr/" voor Frans).
Kopieer uw standaard strings.xml-bestand naar elke map. Vertaal vervolgens de tekst handmatig voor elke taal. In het standaard Engelse bestand kan bijvoorbeeld het volgende staan:
<TextView
<string name="hello_world">Hello, World!string>
De Spaanse versie in "values-es/strings.xml". zou zijn:
<TextView
<string name="hello_world">¡Hola, Mundo!string>
Nadat u deze taalspecifieke XML-bestanden heeft gemaakt, kiest Android automatisch de juiste versie van strings.xml op basis van de taalinstellingen van het apparaat van de gebruiker.
-
Omgaan met meervouden voor nauwkeurige vertalingen
Meervouden zijn lastig omdat elke taal er anders mee omgaat. 'één item' is bijvoorbeeld enkelvoud in het Engels, maar elk ander getal is meervoud, of het nu 'nul items' of 'tweehonderd items' is. Talen als Russisch, Welsh en Tsjechisch gebruiken echter specifiekere regels voor meervouden op basis van het getal.
Ga als volgt te werk om meervoudstekenreeksen in strings.xml voor Engelste definiëren:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<plurals name="item_count">
<item quantity="one">%d item</item>
<item quantity="Overige">%d artikelen</item>
</plurals>
</resources>
Dit is goed voor de volgende hoeveelheidswaarden:
- Eén: Wordt gebruikt voor enkelvoudige vormen (bijv. één item).
- Ander: Wordt gebruikt voor meervoudsvormen (bijv. nul items, twee items, drie items).
Engels vereist alleen "één" en "andere", maar andere talen hebben meer classificaties. Om dit te beheren, biedt Android een tag in strings.xml. Android ondersteunt tags voor nul, één, twee, weinig, veel en andere. Hier volgen voorbeelden van talen die elke tag gebruiken:
- Het Arabisch heeft een speciale grammaticale overeenkomst voor nul.
- Het Russisch behandelt elk getal dat eindigt op "1" anders, tenzij het eindigt op "11".
- Het Welsh gebruikt een duidelijk meervoud als er twee van iets zijn.
- Talen als Tsjechisch en Maltees maken onderscheid tussen kleine getallen en grote aantallen.
- Chinees maakt geen onderscheid.
Ga als volgt te werk om de meervoudsreeks in Kotlin op te halen en op te maken:
val itemCount = 3
val message = resources.getQuantityString(R.plurals.item_count, itemCount, itemCount)
In deze code wordt verstaan onder: R.plurals.item_count is de meervoudsaanduiding van de bron. De eerste itemCount selecteert de meervoudstekenreeks op basis van de meervoudsregels van de landinstelling van het apparaat en de tweede itemCount vervangt de tijdelijke aanduiding%d.
Dit zijn bijvoorbeeld de uitgangen voor Engels:
- Voor itemCount = 1: "1 artikel"
- Voor itemCount = 3: "3 artikelen"
-
Tijdelijke aanduidingen gebruiken voor dynamische waarden
Apps geven vaak gepersonaliseerde of dynamische inhoud weer, zoals de naam van een gebruiker of het aantal meldingen dat ze hebben. In plaats van deze inhoud te hardcoderen, kunt u tijdelijke aanduidingen in uw tekenreeksen gebruiken, zoals:
<resources>
<string name="welcome_message">Welkom, %1$s! Je hebt %2$d nieuwe berichten.</string>
</resources>
Dit is hoe het werkt:
- %1$s is een tijdelijke aanduiding voor een tekenreeks (zoals een naam).
- %2$d is een tijdelijke aanduiding voor een getal (zoals het aantal berichten).
Wanneer de app wordt uitgevoerd, worden deze tijdelijke aanduidingen dynamisch vervangen door waarden die door de gebruiker worden ingevoerd en hun dynamische gegevens.
-
Contextuele hints toevoegen
Vertalers weten niet altijd hoe een tekenreeks in uw app wordt gebruikt. Een woord als 'menu' kan bijvoorbeeld een vervolgkeuzelijst, een voedsellijst van een restaurant of een instellingenpagina betekenen. Om verwarring te voorkomen, kunt u opmerkingen rechtstreeks in uw strings.xml toevoegen:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- This string is used as a label for the navigation menu →
<string name="menu_label">Menu</string>
<!-- This string is used for the settings button in the app →
<string name="settings_label">Settings</string>
</resources>
Deze opmerkingen vertellen de vertaler dat het woord "menu" verwijst naar een navigatiefunctie in de app, niet naar een restaurantmenu.
Lokalisatie testen in Android
Het testen van uw gelokaliseerde Android-app is cruciaal om ervoor te zorgen dat deze in verschillende talen en regio's werkt. Door te testen op emulators en echte apparaten, kunt u problemen opsporen en een app leveren die natuurlijk en functioneel aanvoelt voor gebruikers over de hele wereld.
Waarom testen op echte apparaten?
Echte apparaten bieden de beste simulatie van hoe gebruikers met uw app zullen omgaan. Ze laten u zien hoe vertaalde tekst eruitziet op een echt telefoonscherm, of het nu te lang is of wordt afgekapt.
Waarom testen met emulators?
Emulators zijn een praktische manier om uw app in verschillende configuraties te testen. Hiermee kunt u snel schakelen tussen talen en regio's om vertalingen, lay-outaanpassingen en het gedrag van de gebruikersinterface te controleren.
Door beide methoden te combineren, kunt u optimale functionaliteit en gebruikerservaring behouden in meerdere talen en landinstellingen.
Hoe Smartling voor Android-lokalisatie te gebruiken
Smartling haalt de complexiteit uit Android-lokalisatie. Met AI-aangedreven tools, naadloze Android XML-bestandsintegraties en een team van deskundige vertalers biedt Smartling meerdere diensten om het hele vertaalproces van begin tot eind te stroomlijnen en handmatige workflows te automatiseren.
Uw bedrijf kan de automatiseringssystemen en datagestuurde inzichten van Smartling gebruiken om sneller te lokaliseren en merkconsistentie te behouden op wereldwijde markten, zodat u uw concurrenten voor kunt blijven en een ongeëvenaarde gebruikerservaring kunt bieden.
Klaar om slimmer te lokaliseren, niet harder? Download ons gratis eBook '10 strategieën om de vertaalefficiëntie te verbeteren'. U leert hoe u de snelheid, kwaliteit en kosten van vertalingen kunt verbeteren met bruikbare strategieën en voorbeelden uit de praktijk.
Tags: Websites en webapplicaties Blog