← All updates
Released: January 2, 2026
This release brings translation to metadata generation, improved translation quality, caption display fixes, and UI responsiveness improvements.
NEW FEATURES
### Translated Metadata Generation
- Metadata Tab now supports generating titles, descriptions, and tags in any of the 35 supported languages
- Translation dropdown in Metadata Tab lets you select target language
- Generated metadata is automatically translated using NLLB-200
- Translated metadata is saved alongside original metadata
- Perfect for creators targeting international audiences
### Translated Metadata Upload to YouTube
- Upload Tab now uploads translated metadata to YouTube
- When translated metadata exists, it's automatically included in the upload
- YouTube will display localized titles/descriptions based on viewer's language
- Supports all YouTube-supported languages
### NLLB Translation Model Selection
- Added support for all 3 NLLB-200 model sizes in Application Settings: * NLLB-200 Distilled 600M (~2.5 GB) - Fast, good for high-resource languages * NLLB-200 Distilled 1.3B (~5.5 GB) - Balanced quality/speed (Recommended) * NLLB-200 3.3B (~13 GB) - Best quality, slower
- New Translation section in Application Settings with: * Model size selector dropdown * Download button with progress indicator * Model description and size information
- Models are downloaded to %LOCALAPPDATA%\LokiStudio\Models\nllb\
IMPROVEMENTS
### Non-Blocking Translation (v1.1.1)
- Metadata translation now runs in a background thread
- UI remains fully responsive during translation operations
- Progress updates displayed in real-time
- Cancel support for long-running translation jobs
### Translation Quality
Based on NLLB-200 research, implemented key quality improvements:
1. Sentence-Level Translation
- NLLB-200 is trained on sentence-aligned parallel data - Input text is now automatically split into sentences before translation - Each sentence is translated individually, then rejoined - Significantly improves translation quality for multi-sentence input
2. Anti-Hallucination Protection
- Changed no_repeat_ngram_size default from 0 to 3 - Prevents repetition loops like "the the the" or repeated phrases - Well-documented technique from CTranslate2/fairseq community
3. Sentence Splitting Heuristics
- Splits on standard punctuation: . ! ? - Splits on CJK sentence-ending punctuation - Avoids splitting on abbreviations: Dr., Mr., Ms., vs., Jr., Sr., St., No. - Avoids splitting on decimals: "3.5" stays intact
### Caption Display - One Word Pop Style
- Fixed: Last word no longer hangs awkwardly until next spoken segment
- Added 0.8 second maximum display duration cap for any single word
- Non-last words are bounded by the next word's start time
- Fix applies to both live preview and exported ASS caption files
SUPPORTED TRANSLATION LANGUAGES (35)
Latin Script: English, Spanish, French, German, Italian, Portuguese, Dutch,
Polish, Romanian, Swedish, Danish, Norwegian, Finnish, Czech,
Hungarian, Turkish, Vietnamese, Indonesian, Malay
Cyrillic: Russian, Ukrainian, Bulgarian, Belarusian
Asian: Chinese (Simplified), Japanese, Korean, Thai
Other Scripts: Greek, Arabic, Persian, Hebrew, Hindi, Bengali, Tamil, Urdu
TECHNICAL DETAILS
### Files Modified
- loki_studio-cpp/src/tabs/MetadataTab.h/cpp * Added MetadataTranslationWorker class for background translation * Translation runs in QThread, non-blocking UI * Signal-based progress reporting and file saving
- loki_studio-cpp/src/tabs/UploadTab.cpp * Load and upload translated metadata to YouTube * Support for YouTube's localized metadata API
- loki_studio-cpp/src/services/CaptionService.cpp * formatOneWordPop(): Added maxWordDisplaySec = 0.8f cap * generateAssFile(): Added maxWordDisplayMs = 800 cap for ASS export
- Muninn-Faster-Whisper/include/muninn/translator.h * TranslationOptions::no_repeat_ngram_size default changed to 3
- Muninn-Faster-Whisper/src/translator.cpp * Added split_sentences() function for sentence-level translation * Added join_sentences() function for rejoining translated sentences * Modified translate_batch() to use sentence splitting
- loki_studio-cpp/src/core/AppSettingsManager.h/cpp * Added translationModel setting
- loki_studio-cpp/src/ui/views/ApplicationSettingsView.qml * Added Translation section with model selector
- loki_studio-cpp/src/ui/views/MetadataView.qml * Added translation language dropdown
- loki_studio-cpp/src/tabs/ApplicationSettingsTab.cpp * Added onDownloadTranslationModelClicked() handler * Added onTranslationModelChanged() handler
DOCUMENTATION
- Created Docs/NLLB_Translation_Technical_Guide.md * Comprehensive documentation of NLLB-200 research findings * Best practices for translation quality * Language code mappings * Known issues and solutions
KNOWN ISSUES
- Translation model download requires stable internet connection
- Large models (1.3B, 3.3B) require significant disk space and VRAM
- First translation after model load may take a few seconds to initialize
DEPENDENCIES
No new dependencies added. This release uses the existing:
- CTranslate2 for NLLB inference
- SentencePiece for tokenization
UPGRADE NOTES
- Existing installations will continue using 600M model by default
- Users can upgrade to larger models via Application Settings > Translation
- Translation settings are preserved during upgrade
- Existing metadata files remain compatible
← All updates
·
Source-of-truth changelog on GitHub