> For the complete documentation index, see [llms.txt](https://bizachi-dev.gitbook.io/languagesystem-pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bizachi-dev.gitbook.io/languagesystem-pro/getting-started/publish-your-docs-3.md).

# GlobalExternal Mode

## GlobalExternal Mode

In **GlobalExternal Mode**, a single global language file is used to store translations for all languages in one place. This file must be placed in the `StreamingAssets/Languages` folder and should contain all translations for all supported languages. This is a good option if you prefer to manage all translations in a single file rather than having separate files for each language.

#### Preparing the Global Language File:

1. Inside the `StreamingAssets/Languages` folder, create a global language file (e.g., `globalLanguages.json`, `globalLanguages.xml`, or `globalLanguages.csv`).
2. The global file should follow this format:

```json
{
  "TextEntries": [
    {
      "TextID": "greeting",
      "Translations": [
        {
          "LanguageID": "en",
          "TranslatedText": "Hello World"
        },
        {
          "LanguageID": "pt-br",
          "TranslatedText": "Olá Mundo"
        }
      ]
    },
    {
      "TextID": "farewell",
      "Translations": [
        {
          "LanguageID": "en",
          "TranslatedText": "Goodbye"
        },
        {
          "LanguageID": "pt-br",
          "TranslatedText": "Adeus"
        }
      ]
    }
  ]
}
```

* **TextID**: The unique identifier for each text entry.
* **Translations**: This list holds translations for each `TextID`, where each entry has a `LanguageID` (e.g., `en`, `pt-br`) and the corresponding `TranslatedText`.

> Note: The system will load this file during game initialization and use it to switch between languages.

#### Using WarpText with GlobalExternal Mode:

As with other modes, the `WarpText` component is used to display text in your game based on the `TextID`.

1. Add the `WarpText` component to any `Text` or `TextMeshProUGUI` object in your scene.
2. Set the `TextID` field in the `WarpText` component to match the ID from the global language file (e.g., `greeting`, `farewell`).

When the game starts, the LanguageSystem Pro will load the global file from `StreamingAssets/Languages` and automatically update the text in real time based on the selected language.

***

#### File Formats Supported:

The global language file can be in any of the following formats:

* **JSON**: `globalLanguages.json`
* **XML**: `globalLanguages.xml`
* **CSV**: `globalLanguages.csv`

You can choose whichever format suits your workflow. The system will automatically detect and load the correct file during runtime.

***

#### Switching Languages:

To change the language in **GlobalExternal Mode**, the system will reload the `TranslatedText` values from the global file based on the selected language. You can implement a dropdown or a similar method to allow users to switch languages dynamically.

<figure><img src="https://3626215024-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FF9jo80etwnAiJ4U7LlGC%2Fuploads%2FvO2eDz7bb5J7Tcrf9Jx1%2FGlobalExternal%20Files.png?alt=media&amp;token=aac5c0dd-a6a8-47f4-8ff8-7157b5e88fec" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3626215024-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FF9jo80etwnAiJ4U7LlGC%2Fuploads%2F8S7NwSsaovZlWhhzWwqG%2FGlobalExternal%20Files.png?alt=media&amp;token=4ffa9e62-91ec-4334-bc32-e54d6e8c8121" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3626215024-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FF9jo80etwnAiJ4U7LlGC%2Fuploads%2FmNXN2SBtwNxQXgoIxvuJ%2FTextWarp.png?alt=media&amp;token=a29d2607-4007-4c2a-89bb-85ef48454992" alt=""><figcaption></figcaption></figure>

> Make sure to follow this process for all texts that you want to be translated within your game.

> **Reminder: LanguageManagerEditor Tool**
>
> We offer a **free LanguageManagerEditor tool**, specifically designed for the LanguageSystem Pro format. It has a friendly interface and supports easy import, editing, and export of files in CSV, JSON, and XML formats. You can use this tool to export global files for the **InternalDatabase** and **GlobalExternal** modes or individual files per language for **ExternalFiles** mode.
>
> For more details on using this editor, see the LanguageManagerEditor section.
