Dutch is no longer offered as a UI culture or translation target. The
ISO 639-3 "nld" entry and LanguageBySoftwareRelease rows are kept
intact since that lookup also tags the actual original language of a
catalog item (e.g. a release genuinely published in Dutch), which is
unrelated to UI translation support.
- Remove "nl"/"nld" from supported-culture lists (Startup.cs,
EmailCulture.cs), all two-letter-to-ISO-639-3 mapping switches
(UiLanguage, LanguageResolver, SoftwareBrowsingService, SeoMeta),
the TranslationService language dictionary, the auto-translation
disclaimer map, and the AllowedLanguageCodes whitelist in all 10
*SuggestionApplier classes (plus their doc comments).
- Delete the 48 *.nl.resx resource files across Marechai and
Marechai.Email.
- Add migration RemoveDutchTranslations to delete any existing
LanguageCode='nld' rows from the 18 per-entity translation tables
(descriptions, synopses, and Software*Translation tables).
Introduce a server-only Translation:MaxParallelTranslations option and bind it through IOptionsMonitor so background translation concurrency can be changed live without a restart.
Add shared BackgroundTranslationSettings helpers to normalize the configured value, pause background translation work when the value is 0, and coordinate bounded translation waves across workers and providers.
Update all short-text translation providers to translate missing rows in bounded waves while preserving existing batch-flush semantics, truncation rules, logging, and cache upserts.
Update DescriptionTranslationWorker to schedule bounded waves during slumber while still allowing in-flight translations to finish and save before yielding back to the primary TranslationWorker.
Refresh the ITranslationProvider contract comments to reflect bounded provider-level parallelism and add the default appsettings entry for MaxParallelTranslations = 1.
- Updated SoftwareAttributesService to include language parameter in DistinctKeys and DistinctValues API calls.
- Enhanced SoftwareService to pass language parameter when fetching software specifications and attributes for specific software and releases.
- Removed a large number of unused genre entries from French and Italian resource files for SoftwareService.
- Updated SoftwareService to include language parameter when fetching genres from the API.
- Removed TranslationService registration from the DI container in Register.cs.
- Added MarechaiTranslation service registration in Startup.cs for improved translation handling.
- Updated _Imports.razor to include the new Translation namespace.