ryptimalgames.com

What is EasyTranslate?

EasyTranslate is a lightweight and intuitive localization system for Unity.
It allows developers to easily manage text translations for any game or application using simple CSV files — no complex databases or JSON formats required.
With a clean and visual Editor window, you can create and manage language datasets directly inside Unity, link them to your UI elements, and switch languages at runtime with a single line of code.

Characteristics:

  • Fast setup: Start localizing your project in minutes.

  • 🧩 No external dependencies: Everything runs inside Unity.

  • 🗂️ CSV-based workflow: Edit your translations with Excel, Google Sheets, or any text editor.

  • Optimized performance: Translations are cached in memory for O(1) lookups.

  • 🔄 Runtime language switching: Change language instantly, with automatic UI updates.

  • 🧠 Dynamic text support: Easily insert variables like player names, scores, or levels using {0}, {1}, etc.

  • 🧱 Editor tools included: Built-in Translation Manager for dataset creation and editing.

Creating Your Translation CSV

Before using EasyTranslate, you must create a CSV file that contains all your translations. This file defines every piece of text that your project will use, along with its translations for each language.

The CSV format is simple, human-readable, and fully compatible with tools like Excel, Google Sheets, or any text editor. You can include as many languages as you need — simply add more columns (e.g. Italian, German, Portuguese). Each new column represents one language available at runtime.

 Important Format Rules

  • All translations must be enclosed in double quotes"text".
  • The first column (ID) defines the unique identifier for each text (for example: A1, MENU_START, DIALOG_1).
  • Use {0}, {1}, {2}… for dynamic parameters replaced at runtime.
  • Avoid accents or spaces in language names (use Spanish, not Español).
  • You can have multiple CSV files for different categories (UI, Dialogs, Menus, etc.).

Once your CSV file is ready, import it into your Unity project (anywhere inside the Assets/ folder).

Creating a Translation Dataset

Open it from the main menu: Tools → EasyTranslate → Translation Manager.

 Creating a New Translation

Once the Translation Manager window is open, click Create New Translation.
A small window will appear where you can define your dataset:

  • Key: The unique name of your translation dataset (for example, GameTexts or MenuTexts).

  • CSV File: Select the CSV file that contains your translations.

After confirming, EasyTranslate will automatically create a new .asset file inside your project.
This file stores all translation data from your CSV and can be used by your UI texts at runtime.

Assigning Translations to UI Text

Use ET_StaticTraduction for texts that never change at runtime, such as menu buttons, labels, or titles.
This component automatically displays the correct translation for each language, without the need for extra code.

Setting up Static Translations

Use ET_StaticTraduction for UI texts that never change during gameplay — like menu buttons, titles, or labels.

  1. Add ET_StaticTraduction to a TextMeshProUGUI object.
  2. In the Inspector, set:
    • Dataset Key: The name of your dataset (e.g. GameTexts)
    • Translation ID: The text ID from your CSV (e.g. A3)
  3. Done! The text will automatically display the correct translation based on the active language.

💡 Tip: Perfect for static UI elements like “Start”, “Exit”, or “Options”.

Dynamic Translations

Dynamic translations are texts that change during runtime, such as dialogue lines, score displays, or messages that include player names or variables.
Unlike static texts, these are not tied to a fixed UI label — they are generated through code using translation requests.

Use dynamic translations when the text content can change during gameplay — for example, scores, dialogue lines, or player messages.


Example: Translating a dynamic text with one parameter

 

  • DatasetKey: The name of the dataset created in the Translation Manager.

  • TranslationID: The text ID from your CSV file.

  • Parameters: (Optional) Values that replace placeholders like {0}, {1}, etc.

    💡 Notes:

    • If your text doesn’t use parameters, you can omit the third argument.

    • If you pass an empty parameter array or include more parameters than required, EasyTranslate simply ignores the extra values without throwing errors.

Detecting Language Changes

You can subscribe to ET_TranslationManager.OnLanguageChanged to be notified whenever the active language changes.
This allows you to update your UI texts automatically.

Changing the Language

To change the active language in your project, simply call:

The method receives a numeric parameter that represents the position of the language column in your CSV file.
Languages are counted starting from 1, and the maximum number depends on how many translations your CSV contains.

For example:
If your CSV includes English, Spanish, and French —
then you would use 1 for English, 2 for Spanish, and 3 for French.

When you call SetLanguage(), EasyTranslate will:

  • Update the current language globally.

  • Automatically notify all scripts and UI components subscribed to OnLanguageChanged.

  • Instantly refresh all visible texts using the new language.

Scroll al inicio