Skip to content

Getting Started

Welcome to Chamelingo! Thank you for choosing Chamelingo as your localization solution!

We're excited to help you on your journey to create new games and apps that can be enjoyed by people all around the world. If you experience any issues or have any feedback, please don't hesitate to create a bug report or feature request at:

https://deadlockdevelopment.github.io/report-issue/

We're trying to make Chamelingo as bug-free and easy to use as possible, so we appreciate your feedback!

Sincerely, your DeadLock Development Team!


Quick Start Guide

1. Open Project Settings

Navigate to your Chamelingo settings:

Edit -> Project Settings -> Chamelingo
OpenProjectSettings


2. Select Data Access Type

Choose your preferred data storage format:

  • JSON (One File Per Language)
    Ideal for small projects and easy manual editing

  • CSV (Single File)
    Suitable for larger projects with spreadsheet tools, may become large

  • CSV (Multiple Files)
    One file per language, optimal for large projects using spreadsheets

ConfigureDataAccess

Data Migration

This can be changed anytime. Chamelingo supports automatic data migration between DataAccess Types, but keep in mind that this will take longer if you already have a large translation base.


3. Setup Auto-Translation (Optional)

If you want to use auto-translation, select your preferred service:

  • MyMemory
    Completely free with no setup required, but provides lower quality translations

  • LibreTranslate
    Self-hosted or Free public instance, easy with Docker setup, limited quality

  • Google Translate
    Requires API key and may incur costs, reliable and widely used

  • DeepL Free (Best option in our opinion)
    Requires API key with character limits, needs an account and setup

  • DeepL PRO
    Requires API key and premium subscription, highest quality translations

  • Azure Translator
    Requires API key and may incur costs, reliable enterprise solution

ConfigureTranslationSettings

Auto-Translation Changes

This can be changed anytime. Auto-Translation can be used when creating a new key or in the Translations Tab.


4. Setup Your Languages

Add Languages

Add the languages you want to support in your project

AddSupportedLanguages

Set Default

Set the default/fallback language for your application

SelectDefaultLanguage

Language Support

Language support can be added anytime. Don't forget to translate newly supported languages. Note that in some cases, the standard font may not support special characters, which can lead to unreadable text.


5. Localizing Text Components

Follow these steps to localize a text component:

  1. Add or select a text component in your scene

    AddTMPText

  2. In the Inspector at the top, you'll see the localization status

  3. Click Localize to add the Chamelingo component

    AddLocalization

  4. In the Chamelingo component, select or create a translation key

    KeyNotFound

  5. If you create a new key, the Key Creation Dialog appears

  6. Enter an initial translation for the currently selected language
  7. Optionally, enable Auto Translate if you've configured a translation service to automatically translate to other languages

    KeyCreationDialog

  8. Your text is now localized!

Translation Management

You can also use the Translations tab to manage all your translation keys and texts.

KeyCreationResult

Switching Languages

You can add the provided language selector dropdown: GameObject -> UI -> Chamelingo -> Language Selector

SelectDefaultLanguage


6. Language Selection & Persistence

Chamelingo automatically manages language selection with the following priority:

  1. User's Saved Language - If the user has previously selected a language, it will be used
  2. System Language - If no choice is saved, the device's system language is used
  3. Default Language - If system language isn't supported, your configured default language is used
  4. First Available - If default language isn't found, the first available language is used

Language Persistence

When a user changes language (via Language Selection Dropdown or programmatically), it's saved to PlayerPrefs and persists across app restarts on any device. This means users only need to select their language once, and it will be remembered even after closing and reopening your app.

Programmatic Access

// You can change languages via code using: Chamelingo.LoadLanguage(newCultureInfo); 
// or react to language changes: Chamelingo.Subscribe(OnLanguageChanged);

For more information, check out the API Reference.