Overview
ImageGlass supports multiple languages through language pack files. The application currently ships with over 40 language translations, making it accessible to users worldwide. You can contribute new translations or improve existing ones through the Crowdin platform or by creating language pack files directly.Available Languages
ImageGlass currently includes translations for:- Arabic (Egypt)
- Armenian
- Bulgarian
- Catalan
- Chinese (Simplified)
- Chinese (Traditional)
- Croatian
- Czech
- Danish
- Dutch
- Finnish
- French
- German
- Greek
- Hebrew
- Hungarian
- Indonesian
- Irish
- Italian
- Japanese
- Korean
- Kurdish (Kurmanji)
- Kyrgyz
- Lithuanian
- Malay
- Norwegian (Bokmål)
- Persian
- Polish
- Portuguese
- Portuguese (Brazilian)
- Romanian
- Russian
- Serbian (Cyrillic)
- Serbian (Latin)
- Slovak
- Slovenian
- Spanish
- Swedish
- Thai
- Turkish
- Ukrainian
- Vietnamese
Language File Format
Language packs use the.iglang.json format - a structured JSON file containing all translatable strings.
File Structure
Metadata Section
| Property | Type | Required | Description |
|---|---|---|---|
Code | string | Yes | Language code (e.g., “en-US”, “fr-FR”, “ja-JP”) |
EnglishName | string | Yes | English name of the language (e.g., “French”, “Japanese”) |
LocalName | string | Yes | Native name of the language (e.g., “Français”, “日本語”) |
Author | string | Yes | Name of the translator or translation team |
MinVersion | string | Yes | Minimum ImageGlass version required (e.g., “9.3”) |
Items Section
TheItems section contains key-value pairs where:
- Key: The translation identifier (e.g.,
FrmMain.MnuOpenFile) - Value: The translated string in the target language
Key Format
Keys follow the pattern:ComponentName.ElementName[.Property]
Examples:
FrmMain.MnuOpenFile- Main form, Open File menu itemFrmSettings.Nav._General- Settings form, General navigation itemFrmMain.MnuSave._Success- Main form, Save menu success message_.ImageOrderBy._Name- Global constant, sort by name option
Translation Categories
1. Menu Items
Menu items from the main window, context menus, and submenus.2. Toolbar Actions
3. Settings and Dialogs
4. Messages and Notifications
5. Global Constants
Reusable strings and constants used throughout the application.6. Tooltips and Descriptions
Translation Guidelines
Best Practices
- Consistency: Use consistent terminology throughout the translation
- Context: Consider the UI context when translating
- Length: Keep translations similar in length to avoid UI layout issues
- Formality: Maintain appropriate formality level for your language
- Placeholders: Preserve placeholders like
{0},{1}in the exact same position
Special Characters
Ellipsis (…)
Use ellipsis (…) for actions that open dialogs or require additional input:Placeholders
Maintain placeholders for dynamic content:Keyboard Shortcuts
Do not translate keyboard shortcut indicators:Special Formatting
\n- Line break (preserve)\r\n- Windows line break (preserve)- HTML entities if present (preserve)
Common Translation Patterns
Confirmation Messages
Error Messages
Success Messages
Progress Messages
Contributing Translations
Method 1: Crowdin (Recommended)
Crowdin is the easiest way to contribute translations with a user-friendly interface and collaboration features.Getting Started
- Visit the ImageGlass Crowdin page
- Create a free Crowdin account or sign in
- Select your language from the list
- Start translating strings
Translation Workflow
- Browse Strings: View all translatable strings in the interface
- Translate: Enter your translation in the text box
- Review Context: See screenshots and context information
- Vote: Vote on translations by other contributors
- Discuss: Use comments to discuss translations with other contributors
Crowdin Features
- Translation Memory: Suggests previously translated similar strings
- Machine Translation: Provides suggestions from MT engines
- Glossary: Maintains consistent terminology
- Quality Checks: Identifies potential issues (placeholders, length, etc.)
- Screenshots: Visual context for UI strings
Proofreading
Experienced translators can become proofreaders to:- Review and approve translations
- Ensure quality and consistency
- Manage translation discussions
Method 2: Manual Translation
For developers or those who prefer working directly with files.Step 1: Get the Template
- Download an existing
.iglang.jsonfile as a template - Or export strings from Crowdin
Step 2: Create Your Language File
- Copy an existing language file (e.g.,
French.iglang.json) - Rename to your language (e.g.,
Spanish.iglang.json) - Update the metadata section:
Step 3: Translate Strings
Translate each value in theItems section, keeping keys unchanged:
Step 4: Validate Your File
- Ensure valid JSON syntax (use a JSON validator)
- Check all placeholders are preserved
- Test special characters and encoding (UTF-8)
- Verify string lengths for UI compatibility
Step 5: Test Your Translation
- Install the language pack (see installation section below)
- Switch ImageGlass to your language
- Review all UI elements
- Check for truncation or layout issues
- Test with different window sizes
Step 6: Submit Your Translation
- Create a pull request on GitHub
- Or email the file to: [email protected]
- Include your name/handle for credits
Installing Language Packs
Using the UI
- Open ImageGlass Settings
- Navigate to Language
- Click Install new language pack…
- Select your
.iglang.jsonfile - The language will appear in the language dropdown
- Select your language to apply it
Using Command Line (igcmd)
- Per-user:
%AppData%\ImageGlass\Languages\ - System-wide:
<ImageGlass Install Dir>\Languages\
Testing Your Language Pack
- Install the language pack
- Open ImageGlass Settings → Language
- Select your language from the Display language dropdown
- Restart ImageGlass if needed
- Navigate through all menus and dialogs
- Verify translations appear correctly
Language Code Reference
Use standard language-region codes:| Code | Language |
|---|---|
| en-US | English (United States) |
| fr-FR | French (France) |
| de-DE | German (Germany) |
| es-ES | Spanish (Spain) |
| it-IT | Italian (Italy) |
| ja-JP | Japanese (Japan) |
| ko-KR | Korean (Korea) |
| zh-CN | Chinese (Simplified) |
| zh-TW | Chinese (Traditional) |
| pt-BR | Portuguese (Brazil) |
| pt-PT | Portuguese (Portugal) |
| ru-RU | Russian (Russia) |
| ar-EG | Arabic (Egypt) |
Translation Tips by Section
Main Window (FrmMain)
The primary application window with menus, toolbar, and viewer. Key areas:- File operations (open, save, print)
- Image navigation (next, previous, first, last)
- View options (zoom, rotate, flip)
- Tools and actions
Settings Window (FrmSettings)
Configuration dialogs and preferences. Key areas:- Navigation tabs (General, Appearance, Viewer, etc.)
- Settings labels and descriptions
- Button labels
- Help text
Tool Windows
Specialized tool dialogs:- FrmCrop: Crop tool interface
- FrmResize: Resize image dialog
- FrmColorPicker: Color picker tool
- FrmExportFrames: Frame export dialog
- FrmSlideshow: Slideshow controls
Global Strings (_.*)
Common UI elements used throughout:- Button labels (OK, Cancel, Yes, No)
- Common actions (Save, Close, Delete)
- Messages (Error, Warning, Success)
Quality Assurance
Self-Review Checklist
- All placeholders (
{0},{1}, etc.) preserved - Ellipsis (…) used consistently for dialogs
- No untranslated strings
- Consistent terminology throughout
- Appropriate formality level
- No grammatical errors
- Text length suitable for UI
- Valid JSON syntax
- UTF-8 encoding without BOM
Testing Checklist
- Language installs successfully
- Language appears in dropdown
- All menu items translated
- All dialogs translated
- No text truncation
- No layout issues
- Special characters display correctly
- Keyboard shortcuts work
Updating Existing Translations
Language packs may need updates when:- New features are added to ImageGlass
- New strings are introduced
- Existing translations need improvement
Update Process
- Check Crowdin for new strings in your language
- Translate any missing strings
- Review and improve existing translations
- Submit updates via Crowdin or pull request
Version Compatibility
TheMinVersion field specifies the minimum ImageGlass version:
- If new strings are added, update
MinVersion - Older ImageGlass versions will fall back to English for missing strings
Community and Support
Getting Help
- Crowdin Discussions: Ask questions in the Crowdin project
- GitHub Issues: Report translation issues on GitHub
- Email: Contact [email protected]
Translation Credits
All translators are credited in:- The application About dialog
- The GitHub repository
- Release notes
Join the Community
- Become a translator on Crowdin
- Help review and improve translations
- Assist other translators
- Test language packs before release
Exporting Language Packs
You can export your current language configuration:- Open ImageGlass Settings → Language
- Click Export language pack…
- Save the
.iglang.jsonfile - Share with others or submit as contribution
Technical Details
File Encoding
Language files must use UTF-8 encoding without BOM to support all characters properly.JSON Validation
Use these tools to validate your JSON:- JSONLint
- VS Code with JSON validation
- Online JSON validators
File Size
Typical language pack file sizes:- Compressed: ~30-50 KB
- Uncompressed: ~30-50 KB (JSON text)
- Missing translations (smaller)
- Encoding issues (larger)
- Formatting issues
Best Practices Summary
- Use Crowdin for easy collaboration and quality checks
- Stay consistent with terminology and style
- Test thoroughly before submitting
- Preserve formatting and special characters
- Consider context when translating
- Respect length to avoid UI issues
- Communicate with other translators
- Update regularly as new strings are added
Resources
- ImageGlass Crowdin Project
- GitHub Repository
- Contributing Guidelines
- Existing language files:
Setup/Assets/Language/in source code
FAQ
Can I create a translation for a language variant?
Yes! You can create region-specific translations (e.g.,en-GB for British English, pt-BR for Brazilian Portuguese).