Skip to content

Changelog

All notable changes to Chamelingo will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.3.4] - 2026-02-14

Beyond Text Localization

Added

  • PreviewMode - See the translated values in editor mode
  • Added Preview mode section to Translations Tab, where you can now activate and deactivate preview mode and switch the preview language
  • ChamelingoCustomLocalizer Component - Localize any component property or field based on language, not just text
  • Localize Unity Objects (Sprites, Textures, Materials, etc.)
  • Localize primitive types (int, float, string, bool, enums, etc.)
  • Localize Unity value types (Vector2/3/4, Color, Quaternion)
  • Configure language-specific values with default fallbacks
  • Link.xml generation button to prevent code stripping of reflection-accessed properties on IL2CPP platforms (Android, iOS, WebGL)
  • Automatically updates when language changes
  • Dashboard Integration - Custom Localizers now appear in the Dashboard tab alongside text components
  • Shows localization status and validation errors
  • Supports filtering and quick navigation
  • Editing Translation Keys
  • Added support for renaming keys
    • Key references can automatically be updated
  • Added function to copy an existing key and its translations
    • This is handy when you need to create slight variations of a certain key
  • Added quick link button in Chamelingo text components to open the current translation key in the Translations tab for editing

Changed

  • Dashboard terminology updated from "Translated/Not Translated" to "Localized/Not Localized" to reflect expanded capabilities
  • Removed bidirectional editing. Previously you could edit text keys directly inside the text components themselves, but as we developed the preview mode this was more of a pain than a feature and it also led to some confusion, so we decided to remove this feature. Now the Chamelingo component is the single source of truth
  • Composite Texts
  • Text keys in composite texts are no longer bound to the template text and need to be set independently from the template. This eliminates the coupling between the text and the text key. This change was made in order to make renaming text keys easier

Fixed

  • An issue where deleting or adding languages in the file explorer would not trigger OnLanguagesChanged and therefore the UI would not update
  • Compiler warnings due to unused legacy code
  • An issue where creating a new key through the key creation dialog did not automatically populate the input field of the Chamelingo text component
  • An issue where Chamelingo failed to initialize properly without first opening the Project Settings

[1.2.3] - 2026-02-03

Bugfix Patch

Fixed

  • An issue where newly added or removed languages were not displayed in the Hub window until the editor was re-initialized, caused by a missing language change event subscription and the provider cache not being invalidated
  • An issue where the language selection in the project settings window was not usable when the window was docked in a small space

[1.2.1] - 2025-12-15

Initial Unity Asset Store Release

Chamelingo is a comprehensive localization solution for Unity, providing an intuitive workflow for managing translations in your projects.

🎯 Core Features

Chamelingo Hub - Centralized Editor Interface - Welcome tab with quick start guides and documentation links - Dashboard for visualizing and managing all localizable text in scenes and prefabs - Translations tab for managing translation keys and their values across languages - Help tab with troubleshooting guides and comprehensive documentation

Translation Management - Simple text key translations - Composite text support with multiple translation keys in a single string - Text formatting options (uppercase, lowercase, title case, etc.) - Support for TextMeshPro and Legacy Unity Text components - Bidirectional text synchronization between components

Smart Dashboard - Real-time visualization of all text components in active scenes and prefabs - Quick identification of missing translations and localization errors - Double-click navigation to component inspectors - Context menu for adding, removing, or ignoring localization - Filtering options (errors only, missing translations, translated, ignored)

Inspector Integration - Visual decorator on GameObjects with text components - Quick-action buttons for localization management - Clear indication of localization state

Automatic Translation Services - Integrated support for multiple translation services: - MyMemory (free) - LibreTranslate (free/self-hosted) - DeepL (free and pro) - Google Translate - Azure Translator - Secure API key storage in editor preferences - Batch translation of missing keys - Individual key translation support

Language Management - Based on .NET CultureInfo for reliability and standards compliance - Dual-list interface (Inactive/Supported languages) - Default language configuration - Runtime language switching - Automatic language detection based on system culture

Data Access & Persistence - Flexible data access configuration - Translation file management - Migration system for handling breaking changes - Manual save functionality for precise control

Developer Tools - IgnoreLocalization component for flagging excluded GameObjects - Facade API for runtime translation access (Chamelingo.Translate("key")) - Configurable log levels for debugging - Comprehensive editor unit tests

Sample Content - Showcase scene demonstrating all features - Language selection dropdown prefab - Sample scripts for quick integration - Setup utilities for sample translation data

🔧 Technical Details

  • Distribution: Full source code included for easy debugging and modification
  • Code Organization: Internal classes for clean public API surface
  • Compatibility: Unity 6000.0.31f1 and above

âš¡ Performance

Optimized caching strategies ensure responsive editor performance even in large projects: - Stress Tested: Successfully tested with over 1,300 text components and 74 languages in a single scene - Zero Lag: No noticeable performance loss during editor operations or runtime language switching - Efficient Caching: Smart caching mechanisms minimize repeated lookups and translations


Pre-Release History

Click to expand development history (versions 0.0.1 - 0.7.1) ## [0.7.1] - 2025-12-07 ### Fixed - An issue where Unity got stuck when trying to create the resource folder, resulting in creating 1000+ empty folders - The Dashboard didn't show GameObjects that have the same name and were at the same path or in the prefabs - An issue where the language dropdown was empty in the auto-translation action of the translation keys in the Translations tab due to initialization order - An exception that was thrown when the project settings were not created at the moment - Resulting package included empty folders with orphaned meta files - Package containing incorrect README and CHANGELOG files from project root - Invalid script references in showcase sample scene and language dropdown prefab ### Changed - After installation of Chamelingo, the Hub now opens and shows the Welcome tab - When initializing project and runtime settings, English now gets added to the supported languages so that we're not starting at 0 - When executing auto-translation in the Translations tab, the current key gets saved first so we don't accidentally translate an old value - Further optimization of the Welcome tab - The Dashboard now updates after changes in the scene hierarchy ### Added - Language selection dropdown prefab - Comprehensive Help tab with quick troubleshooting and links to all documentation on our website - Clean README to the package ## [0.6.1] - 2025-12-04 ### Fixed - An issue where a null exception was thrown when building, playing, and returning to the editor - DataAccess errors that occurred when deleting translation files directly within the Explorer ### Changed - Auto translation features are now only visible when a translation service is configured - Made most classes internal to provide a cleaner interface for users - Refactored pipeline to reduce code redundancy ### Added - Settings button in the Chamelingo window to quickly open Chamelingo project settings - Sample scene loader script that initially creates translations needed for the sample Showcase scene - Facade class to enable users to interact with a clean API (e.g., `Chamelingo.Translate("key")`) - Discard button in the translation tab to allow users to undo unwanted changes - Button to set up sample translation keys with translations (uses the same method as the sample scene setup) ## [0.5.1] - 2025-12-04 ### Fixed - Fixed exception thrown on project load when attempting to access a null dictionary key ### Changed - Distribution model updated to use precompiled assemblies - Runtime and Editor code now shipped as compiled DLLs for improved performance and faster import times - All necessary Unity meta files preserved for proper asset tracking and reference stability - Sample scripts remain as editable source code for learning and customization - Reduces compilation time when importing the package into new projects ## [0.4.2] - 2025-12-03 ### Fixed - Fixed an issue where decorator wasn't detecting the correct localization state - Fixed decorator not showing ignore button ## [0.4.1] - 2025-12-03 ### Fixed - Fixed an issue where the textkey itself got replaced when translating the text at runtime ### Changed - Optimized layout of Key Creation dialog - Removed some unnecessary infoboxes in the Chamelingo editor ### Removed - Translation Window - The clunky translation window was replaced by the Translations tab ### Addedd - Chamelingo Hub - New editor window where all Chamelingo functions are in one place - Multiple tabs: Welcome, Dashboard, Translations, Help - Dashboard: - Shows all text components of active scene and in prefabs - Shows missing localization on text components (TMP and legacy texts) - Shows errors, such as missing translation keys or references - Allows to quickly open the desired component inspector by double-click - Allows to add, remove, or ignore localization via right-click context menu - User can filter to only see errors, missing translations, translated texts, or ignored texts - Translations: - Replaces the old translation key window - Improved, simplified layout for more user-friendly usage - IgnoreLocalization component - MonoBehaviour that flags a GameObject as ignored for localization and includes a note field - Inspector Decorator - Decorator shown on top of every GameObject that contains a text component, displaying the localization state and providing action buttons to quickly add, remove, or ignore localization ## [0.3.1] - 2025-12-01 ### Changed - Chamelingo Text component and TMP / Legacy Text components now update each other bidirectionally - When the text in the TMP / Text component changes, the text key / composite text gets updated as well and vice versa ### Added - Text casing options for translated text keys: - None - First Letter Uppercase - First Letter Lowercase - All Uppercase - All Lowercase - Title Case - Text key dropdown in Chamelingo text components for easier selection of existing keys - Support for legacy text components (Toggle, etc.) - Context menu also shows the add localization option - Default language option in project settings and improved initial language selection at runtime - If a language selection was saved, it will be used at runtime - If no selection was saved, the system attempts to use CurrentCulture.Parent as the language - If CurrentCulture.Parent is not supported, it defaults to the configured default language - Log level setting in project settings - Controls which logs are shown in the console, both in editor and at runtime ## [0.2.4] - 2025-11-30 ### Changed - Improved editor performance massively by optimizing caching strategies - Refactored the key creation window for a sleeker look and feel ### Added - Support for automatic translations - Users can now configure the automatic translation service in the project settings - Supported services: - MyMemory - LibreTranslate - DeepL (free and pro) - Google Translate - Azure Translator - **Security:** API keys are stored in editor preferences for secure persistence - Added auto-translation section in the Chamelingo inspector, providing the ability to translate the selected key or all missing translations - Added editor unit tests for previously untested logic ## [0.2.3] - 2025-11-27 ### Added - Sample scene showcasing the runtime features of Chamelingo - Demonstrates different types of translations: simple keys, composite text, etc. ### Changed - DataAccess dropdown setting now displays the display names of the available data access types - Cleaned up editor project files - Using the Chamelogger logging extension throughout the solution for consistent logging ## [0.2.2] - 2025-11-22 ### Fixed - Migration prompt was always shown even when a migration was not needed - The prompt now only appears when changes affect saved translations, making them unusable - When changes are pending that require migration, language settings are hidden and an info message prompts the user to save or discard the changed settings first ## [0.2.1] - 2025-11-16 ### Changed - Language settings now use two separate lists (Inactive Languages and Supported Languages) for improved readability - Users can now clearly see which languages their application supports at a glance - Languages can be moved between lists using arrow buttons instead of individual checkboxes ## [0.1.2] - 2025-11-16 ### Changed - **Breaking Change:** Replaced custom language definitions with .NET CultureInfo for improved reliability and reduced complexity - Old translations may not work if the language code differs from .NET CultureInfo tags (CultureTypes.NeutralCultures) - When switching versions, ensure language codes are compatible or update them manually in the translation files ### Fixed - Fixed exception when applying data access settings to new instances due to mismatched array lengths - Fixed translations not updating when changing the supported languages - Fixed translations not being saved unless switching to a different key by adding a manual save button ## [0.0.1] - 2025-11-14 ### Added - Initial package release migrated from deprecated legacy repository