# 7. Multi-Language Setup

{% hint style="success" %}
You can skip this setup for now. This is not a mandatory setup to run this app.
{% endhint %}

So, we have used 3 languages in this app. English, Spanish & Arabic.

{% hint style="info" %}
You can add as many languages as you want. The multi-language feature is only for all of the static texts in the app. It's static and not related to the database.
{% endhint %}

{% hint style="info" %}
English is the default & Starting Language. You can change the default language too if you want.
{% endhint %}

## Editing An Existing Language

If your language is already available on the list and you want to make some changes, then follow the steps below:

Example: If your want to change some text in the Spanish language, then open the **assets/translations/es.json** file and edit only **right-side values**.

<figure><img src="/files/05LHf2o2MJUIoZmhvAwL" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
Don't edit the keys (Left side values)
{% endhint %}

## Adding A New Language

If you want to add a new language that is not available in the default list, follow the steps below:

* First, go to the **assets/translations** folder from your IDE. Add a .json file here with **your\_language\_code.json** name. Now go to the **assets/translations/en.json** file and copy everything from this file and paste to **your\_language\_code.json** file.

<figure><img src="https://lh5.googleusercontent.com/PBY8hwflzFzUAEHObG2vsduBi4uKOgDngk_Bb076z3raTCLGWZqfJgSMMYcXR5XgSRPI_GFUjri-x8vzGRk9jsaj1ULyudyxyiV3PmfAdS8vKUxfIi6Xy7WfaC8gfW-98KGZcBVQ0Hlzkc2RKyFbHH1QSrtjJmbB8tBbj4UZgDJzDDdhJ9z6J4bMQpRn" alt=""><figcaption></figcaption></figure>

* Now, Rename the all right-side strings. Look at the **es.json** file and you will understand what to do.

{% hint style="warning" %}
Don't edit the keys (Left side values)
{% endhint %}

* Now go to **lib/main.dart** file and add your language code to **supportedLocals**.

<figure><img src="https://lh5.googleusercontent.com/Vv9X2qixd-2TIpD_QWNfRXC0S4B1mLF76ClwSbZKrqYwCGlQf1St_meLkJ4dZGo54A6zstqfGaagElEf1Ytw58qxHpu3suNj4mizB4P5cLnS8KkdI8rhLCvNyCUCakRtEvc3wk76W1Yfk-YcNpapwA" alt=""><figcaption></figcaption></figure>

Your code should look like this:

```
supportedLocales: [Locale('en'), Locale('es'), Locale('your_language_code')],
```

* Now go to **lib/config/config.dart** file and add your Language name at the bottom of the list by adding a comma.

<figure><img src="https://lh5.googleusercontent.com/Y2Pw9R0eVDanhxfn0kAS5EXqiUy8Mh0vrYOliS_st3o7USWYc9IkOfBwtxR_c-cNqx8ESnxxDkh5JUFYXem-KQrVYLVL-mL5MKIp8DKgepg9ZL8W989CICQ2wE9A-ZjZ5GYUM7g6kTKq7mo9-G5XUg" alt=""><figcaption></figcaption></figure>

* Now go to **lib/widgets/language.dart** file and enable the disabled lines by removing slashes and rename **your\_language\_code** and **language\_name** that you added to the list.

<figure><img src="https://lh5.googleusercontent.com/W16vGpdD63I5yk6ns7VKEM5d03uR1W56fLycNj3_-cYC5EzVDg0QSuX9h2Ki9A4SN9KszVQ2oIZNL0GkZ6Oy-kP3-bIVjBJdGyK9sp4MnfZIlyWhBbq82-QfFLxSy5EZdv7FJ4hFEZN3TsRqUwZ27w" alt=""><figcaption></figcaption></figure>

* For Android, you don’t have to do anything.
* For iOS, go to **ios/Runner/Info.plist** and add your language code in a string. Look at the picture below.

<figure><img src="https://lh5.googleusercontent.com/EkhzVmyi31RxPNhRSkzSNl3ZVnt6_x9erkBZcWohRlAzqmdV_H7x_mppnwBB8yDksaME_2YaJtdoVy3Ky6-pW4lHgKaKYwqkfaj6KKVT_YSkhxM5hn4ntwit3SlN_7qLWDjcA4-61l4p3ICWk5gPGw" alt=""><figcaption></figcaption></figure>

* Add  **\<string>your\_language\_code\</string>** inside the array. That's it

## Removing An Existing Language

To remove any language that is available in the list, please follow the steps below:

> * Go to the **asset/translations** folder and delete the your\_language\_code.json file that you want. (You shouldn't delete the en.json file because this is the default language).
> * Now go to **lib/main.dart** and remove the locale from the **supportedLocale** line.
> * Go to **lib/widgets/language.dart** file and remove the **else if** section of language code that you want to delete.
> * And finally go to **ios/Runner/Info.plist** and remove the string. That’s it. (Only for iOS)

## Start Locale Setup

English ('en') is added as the start language of the app by default. If you want to add any other language as a Start Language then go to the **lib/main.dart** file and replace the **startLocale** and the **fallbackLocale** with your language code. That's it.

<figure><img src="/files/U9pwL4HDYKwDM88QBiQK" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://doc.travelhour.mrb-lab.com/app/7.-multi-language-setup.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
