# 8. 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 6 languages in this app for demo purposes. English, Spanish, Arabic, Hindi, Bangla & French.

{% 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-ES.json** file and edit only **right-side values**.

<figure><img src="https://193695234-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FuVX9DkcSpz5pWRDwpVCd%2Fuploads%2F0OqvTtCFopqEfsOShDPl%2Fcode.png?alt=media&#x26;token=b2d2e704-b855-402e-bb4e-91c56426cfc0" 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 <**language\_code>-\<country\_code>.json** name. Now go to the **assets/translations/en-US.json** file and copy everything from this file and paste it to your newly created .json file.

<div align="left"><figure><img src="https://193695234-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FuVX9DkcSpz5pWRDwpVCd%2Fuploads%2Fegc8lF9vtmbY7yWgnWXG%2FScreenshot%202023-07-11%20at%201.06.28%20AM.png?alt=media&#x26;token=708c55c9-7060-4874-87f6-890a01efd49e" alt=""><figcaption></figcaption></figure></div>

* 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/config/language\_config.dart** the file and add your language code to the **language** list.

<figure><img src="https://193695234-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FuVX9DkcSpz5pWRDwpVCd%2Fuploads%2FNGeabW7OStweC76wSoeG%2FScreenshot%202023-07-11%20at%201.12.57%20AM.png?alt=media&#x26;token=be4fbf2d-d108-44b7-8a83-1407514901cf" alt=""><figcaption></figcaption></figure>

Your code should look like this:

```
"<Language_Name>": [<'Language_Code'>, <'COUNTRY_CODE'> ]
```

* 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/config/language\_config.dart** file and remove the list item that you want to remove from the **langauges** list.
> * 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/language\_config.dart** file and replace the **startLocale** and the **fallbackLocale** values with your own local values.

***

## Disable Multi-Language Feature

You can disable the multi-language feature directly from the Newsfreak Configs Plugin. If you do that, changing language option will be hidden from the app and the app will run with the default language.
