# 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="https://500245377-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIkpthLdCmCVdIgYrsYJ8%2Fuploads%2FvXacQe3mDEp8jgIg6hXm%2Fimage.png?alt=media&#x26;token=2a6d0626-0c2a-4a2b-93d5-84c65c8676c4" 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="https://500245377-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIkpthLdCmCVdIgYrsYJ8%2Fuploads%2Fzh1sWXLE7WYqcdR6s3NM%2Fimage.png?alt=media&#x26;token=0a21d9ba-de8e-4295-a802-1d852a6288dc" alt=""><figcaption></figcaption></figure>
