- Enhanced Windows 11 native installer with GPU detection and DirectX 12 support - Add cross-platform GUI detection utilities for improved platform handling - Implement localization infrastructure foundation with i18n support - Create comprehensive cross-platform deployment guide - Add Inuktitut and Cree syllabics support framework - Enhanced Arch Linux installation with desktop environment detection - Implement Windows 11 DPI awareness and display scaling support - Add automated cross-platform testing framework
3.3 KiB
3.3 KiB
VideoTools Localization Strategy and Implementation Guide
Overview
This document provides a comprehensive guide to VideoTools' localization system, including implementation details, contribution guidelines, and cultural considerations.
Quick Start
Architecture
- Primary System: VideoTools-controlled localization via go-i18n
- Fyne Integration: Minimal, only for system dialogs
- Strategy: Module-by-module localization with cultural respect
Language Priority
- English (en-CA) - Source language
- French (fr-CA) - Canadian official language
- Indigenous Languages - Inuktitut, Cree (human-reviewed)
- Global Languages - Future expansion
Implementation Guide
File Structure
localization/
├── en-CA/
│ ├── meta.json
│ ├── common.json
│ ├── convert.json
│ └── [module files]
├── fr-CA/
│ └── [same structure]
├── iu/
│ ├── meta.json
│ ├── common.syllabics.json
│ ├── common.roman.json
│ └── [dual-script modules]
└── cr/
└── [dual-script structure]
Key Naming Convention
[module].[category].[item]
Examples:
convert.output.format- Output format labelplayer.controls.play- Play buttonerror.file.not_found- File not found errorcommon.button.ok- Generic OK button
Usage in Code
// Primary localization
btn := widget.NewButton(localization.T("convert.start"), onClick)
// Optional generic (whitelisted only)
cancelBtn := widget.NewButton(localization.Generic("Cancel"), onClick)
Localization Rules
Brand Protection
- VT: Never translated, never localized
- VideoTools: Translated by meaning only for non-Latin scripts
Terminology
- Movie: Digital files (MP4, MKV, MOV)
- Film: Physical media (8mm, 16mm, 35mm)
- Never use these terms interchangeably
Script Handling
- Indigenous languages: Dual-script support (syllabics + romanized)
- No machine translation for Indigenous languages
- Human review required for all Indigenous translations
Testing
Automated Tests
- Translation completeness checking
- Key consistency validation
- UI layout expansion testing (pseudo-languages)
- Script rendering validation
Manual Tests
- In-context translation verification
- Module-by-module validation
- Language switching functionality
Contributing
Translation Guidelines
- Follow key naming conventions
- Provide context for ambiguous terms
- Maintain terminology consistency
- Include cultural notes where relevant
Indigenous Languages
- Must include reviewer credit/approval
- Dual-script preferred when possible
- Cultural appropriateness review required
Configuration
Language Preference
{
"language": "en-CA",
"secondaryScript": false,
"autoDetect": true
}
Fallback Chain
- User-selected language
- User-selected language + secondary script
- English (en-CA)
- Emergency fallback string
Resources
For complete policy details, see: localization-policy.md
For module-specific localization guides, see: