Frequently Asked Questions
Common questions and answers about Chamelingo.
General Questions
What is Chamelingo?
Chamelingo is a complete localization solution for Unity that simplifies translating your game into multiple languages. It provides an editor interface, automatic translation integration, and flexible text management.
Does Chamelingo work with TextMeshPro?
Yes! Chamelingo has dedicated components for both TextMeshPro (ChamelingoTMP) and legacy Unity Text (ChamelingoUnityText).
Can I use Chamelingo in commercial projects?
Yes, Chamelingo is licensed per Unity account and can be used in unlimited commercial and non-commercial projects.
Setup & Configuration
Which data format should I choose: JSON or CSV?
Choose JSON if: - You have a small to medium-sized project - You want easy manual editing - You prefer simple file structure
Choose CSV if: - You work with spreadsheet tools (Excel, Google Sheets) - You have large translation databases - You collaborate with external translators
You can switch formats anytime—Chamelingo handles the migration automatically.
Can I change the data format after I've started?
Yes! Chamelingo automatically migrates your translations when you change data formats in Project Settings.
Do translation files need to be included in builds?
Yes, translation files in Assets/Resources/Translations must be included in your build. They are automatically included when building your game.
Translation Services
Are translation API keys secure?
Yes. API keys are stored in EditorPrefs (Windows Registry on Windows), not in your project files. This means: - Keys are never committed to version control - Keys are not accessible in builds - Each developer must configure their own API key - DeadLock Development never has access to your keys
Do I need a translation service to use Chamelingo?
No. Translation services are optional. You can manually enter all translations or import them from external sources. Auto-translation is a convenience feature.
Which translation service should I use?
We recommend DeepL Free for most users: - High quality translations - 500,000 characters/month free - Easy setup with just an API key
For production projects with high volume, DeepL PRO offers the best quality.
Will auto-translation overwrite my existing translations?
Yes, when you use the auto-translate feature, it will replace existing translations without confirmation. Always back up important translations before using bulk translate operations.
What happens if my translation service quota is exceeded?
Chamelingo will log an error in the Unity Console. Your existing translations remain intact, but new auto-translations will fail until your quota resets or you upgrade your plan.
Language Management
Why does Chamelingo use language codes like "en" instead of "en-US"?
Chamelingo uses IETF BCP 47 neutral culture codes (e.g., en, de, fr) rather than region-specific codes. This simplifies localization for most games where regional differences aren't critical. Most games don't need separate translations for "English (US)" vs "English (UK)".
How does language selection work at runtime?
Chamelingo automatically selects languages with this priority: 1. User's previously saved language choice 2. Device system language 3. Your configured default language 4. First available language
The selection is saved to PlayerPrefs and persists across app restarts.
Can I add or remove languages after release?
Yes. Adding languages won't affect existing translations. When removing languages, enable the backup option in Project Settings to create .bckp files you can restore later if needed.
Using Chamelingo
Why are my translations showing as empty strings?
Common causes: - The translation key exists but has no text for the current language - The language is not properly configured in Project Settings - Translation files are missing or not in the correct location
Check the Translations View for missing translations.
How do I localize text that changes at runtime?
Use Composite Text with runtime parameters:
// Set parameter value
textComponent.SetParameter("playerName", "Alice");
textComponent.SetParameter("score", "1250");
Or use Component References to automatically pull values from other components.
Can I localize text that includes player names or dynamic values?
Yes, use Composite Text. Create a template like {greeting}, {playerName}! and configure the parameters.
How do I ignore certain text components from localization?
Right-click the component in the Dashboard and select "Ignore Component". You can add a note explaining why it shouldn't be localized.
What's the difference between Normal and Composite Text mode?
- Normal Mode: Simple one-to-one translation. Static text that doesn't change.
- Composite Text Mode: Templates with multiple parameters. For dynamic text with runtime values, player names, scores, etc.
Working with External Translators
Can I export translations for external translators?
Yes. Translations are stored as JSON or CSV files in Assets/Resources/Translations. You can send these files to translators and import them back.
What format is best for external translation workflows?
CSV is generally easier for translators: - CSV (Single File): All languages in one spreadsheet—good for small projects - CSV (Multiple Files): One file per language—better for large projects and parallel translation
Will importing translations overwrite my existing work?
Chamelingo detects when files are added or modified and updates accordingly. Make backups before importing large translation batches.
Performance
Does Chamelingo impact runtime performance?
Chamelingo has minimal runtime overhead: - Translation lookups are dictionary-based (O(1) complexity) - Text updates only happen on language change or parameter update - No continuous polling unless you explicitly enable it for Component References
Should I use polling or events for Component References?
Use events whenever possible (UnityEvent
How large can my translation database be?
Chamelingo handles thousands of translation keys efficiently. File size depends on your data format and number of languages, but even large projects (5000+ keys, 20+ languages) work smoothly.
Troubleshooting
The Chamelingo Hub won't open
Try these steps: 1. Check Unity Console for errors 2. Restart Unity 3. Reimport the Chamelingo package 4. Check that you're using Unity 2021.3 or later
Translation keys aren't showing in the dropdown
The dropdown filters based on your input. Clear the input field to see all available keys. If keys are still missing, check that they're created in the Translations View.
Language dropdown is empty
Ensure you've added languages in Project Settings → Languages.
Auto-translation isn't working
Check these common issues: - Translation service is configured correctly - API key is valid and has quota remaining - Source language has translation text - Check Unity Console for specific error messages
Components show as "Error" in the Dashboard
Common causes: - Missing or invalid translation key - Broken component references in composite text - Configuration conflicts
Check the Inspector Decorator for the specific error message.
Best Practices
What's the recommended naming convention for translation keys?
Use hierarchical dot notation:
menu.start
menu.settings
ui.health
ui.score
dialog.welcome.title
dialog.welcome.message
This keeps keys organized and easy to manage as your project grows.
Should I translate everything?
No. Some text doesn't need localization: - Debug labels - Developer-only UI - Placeholder text that will be replaced
Use the "Ignore" feature for these components and add notes for your team.
How often should I test language switching?
Test regularly during development, especially after: - Adding new translation keys - Changing composite text templates - Modifying language configurations - Before any release or milestone
Integration
Can I use Chamelingo with other localization systems?
Chamelingo is designed as a complete solution. Using multiple localization systems simultaneously is not recommended and may cause conflicts.
Does Chamelingo support pluralization?
Not currently. This feature is planned for a future update. For now, create separate translation keys for singular/plural cases.
Does Chamelingo support right-to-left (RTL) languages?
Chamelingo handles text translation but doesn't automatically handle RTL layout. You'll need to handle layout changes separately, typically with Unity's UI system or TextMeshPro RTL support.
Support
Where can I get help?
- Documentation: Getting Started | User Guide | API Reference
- Report Issues: Issue Tracker
- System Info: Use the Copy button in Help View when reporting issues
How do I report a bug?
- Open Chamelingo Hub → Help tab
- Copy system information using the copy button
- Go to our Issue Tracker
- Describe the issue and paste your system information
Are updates free?
Yes, updates are provided free through the Unity Asset Store for all customers.
Still Have Questions?
Check the complete documentation: - Getting Started Guide - User Guide - API Reference - Technical Documentation
Or report an issue if you need further assistance.