Translate & Guess: Build a Flag Quiz with Expo and Tolgee
Vaishali
Posted on October 25, 2024
Introduction
In today’s globalized world, apps that support multiple languages enhance user experience and accessibility. In this tutorial, I’ll guide you through the development of a simple yet engaging quiz app built with Expo, where users guess the country name based on a displayed flag. We’ll integrate Tolgee, an open-source localization library, to provide seamless translations in English, Italian, Japanese, and Korean. Whether you're a beginner or an intermediate developer, this tutorial will help you learn how to set up multilingual support in a React Native app.
Steps to Create and Set Up Your Flag Quiz App
-
Create a New Folder
- Start by creating a new folder for your project.
mkdir flag-quiz-app
-
Navigate to the Folder
- Change your working directory to the newly created folder.
cd flag-quiz-app
-
Install Dependencies
- Install the major libraries you'll need for your app. In this case, you'll be using Expo, Tailwind CSS (or NativeWind), and Tolgee for localization.
npx create-expo-app .
npm install nativewind tolgee
-
Set Up Dependencies
- Follow the documentation for each library to set them up correctly in your project:
- Expo Documentation: Expo Docs
- Tailwind CSS Setup: NativeWind Documentation
- Tolgee Setup: Tolgee Docs
- Follow the documentation for each library to set them up correctly in your project:
Integrating Tolgee for Localization
-
Tolgee is an open-source library that provides easy-to-implement localization.
- Setting Up Tolgee: Sign up at Tolgee.io and create a new project. Note down your API key for the project.
-
Integrate Tolgee into Your App:
In
App.js
, set up Tolgee and wrap your app in the TolgeeProvider:
import React from 'react'; import { TolgeeProvider, Tolgee } from '@tolgee/react'; import { NavigationContainer } from '@react-navigation/native'; import QuizScreen from './screens/Quiz'; const tolgee = Tolgee() .use({ apiKey: 'YOUR_API_KEY', apiUrl: 'https://app.tolgee.io' }) .init(); export default function App() { return ( <TolgeeProvider tolgee={tolgee}> <NavigationContainer> <QuizScreen /> </NavigationContainer> </TolgeeProvider> ); }
-
Translate Text in the Quiz App:
- Wrap translatable strings with
T
from Tolgee to make them dynamic. - For example, replace button titles with Tolgee keys:
- Wrap translatable strings with
import { T } from '@tolgee/react'; <Button title={<T keyName="countryA" />} onPress={() => checkAnswer('Country A')} />
-
Add Translations on Tolgee.io:
- Head to your project in Tolgee.io, where you can add translations for each key. For example:
-
Key:
countryA
-
Translations:
Country A
in English,Paese A
in Italian, etc.
Conclusion
Congratulations! You’ve built a multilingual flag quiz app using Expo and Tolgee. By following this guide, you’ve learned the basics of setting up a quiz app, integrating translations, and adding language-switching support with Tolgee. This framework and localization setup can now serve as a foundation for adding even more features, languages, and levels.
For the complete source code, visit my GitHub and don't forget to star my repo: GitHub Repo Link.
Posted on October 25, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.