Logo

Localization Settings

The central configuration asset for the localization system

Overview

Localization Settings is a ScriptableObject that acts as the brain of the system. It stores references to all your languages, tables, and global configuration options.

You can access your settings file via the project window, or by navigating to Tools -> Evo Localization -> Open Localization Settings (if you have created one).


Configuration

Languages

This list defines the languages available in your application. Each entry links to a LocalizationLanguage asset. You can add, remove, and create new language assets directly from this list.

PropertyDescription
IDUnique identifier (e.g., "en-US", "ja").
NameDisplay name (e.g., "English").
Localized NameNative name (e.g., "日本語").
IconOptional flag or icon texture.

Tables

This list defines the categorization of your localized content (e.g., UI, Dialog, Items). Each entry links to a LocalizationTable asset.

PropertyDescription
IDUnique identifier for the table (e.g., "Subtitles").
Sheet GIDUnique numeric Google Sheet tab ID (0 is valid). Leave empty to exclude the table from Google Sheets sync.

Settings

Global behaviors for the localization system.

PropertyDescription
Default LanguageThe language used when the game starts for the first time or if a key is missing.
Get System LanguageIf no saved selection is used, matches Application.systemLanguage to a language's languageName without regard to case. If no match is found, uses the default language.
Save Language SelectionAutomatically saves the selected language to PlayerPrefs and loads it on the next session.
Enable LogsPrints debug information to the console when keys are missing or events occur.

Google Sheets

In the Integrations section, enable Google Sheets to configure:

PropertyDescription
Spreadsheet IDThe spreadsheet ID or full HTTPS Google Sheets edit URL.
Update ModeManual, Once (default), or Continuous runtime pulls.
Update Interval (sec)Unscaled delay after each Continuous pull completes; defaults to 300 seconds, minimum 30 seconds.
PullImports into project assets outside Play Mode; downloads into memory in Play Mode.
PushOpens the authenticated editor push workflow outside Play Mode.

Enable the integration before the runtime manager initializes. Runtime pulls do not save changes to project assets.

See the Google Sheets page for details.


CSV Import / Export

You can bulk edit data by exporting tables to CSV.

Expand a Table entry in the list

Click Export CSV to save the current data

Edit the file in Excel or Google Sheets

Click Import CSV to merge changes back into the asset


Scripting API

While you rarely need to fetch settings at runtime, you can access them via the LocalizationManager.

AccessingSettings.cs
using UnityEngine;
using Evo.Localization;

public class AccessingSettings : MonoBehaviour
{
    void Start()
    {
        // Get the singleton settings
        var settings = LocalizationManager.GetSettings();

        if (settings != null)
        {
            Debug.Log($"Default Language: {settings.defaultLanguageID}");
            Debug.Log($"Total Tables: {settings.tables.Count}");
        }
        
        // You can also load default settings statically
        var staticSettings = LocalizationSettings.GetDefault();
    }
}

On this page