Skip to content

Lang: Add Tamil (ta) UI translation#814

Open
sedhuait wants to merge 3 commits into
cyanfish:masterfrom
sedhuait:tamil-support
Open

Lang: Add Tamil (ta) UI translation#814
sedhuait wants to merge 3 commits into
cyanfish:masterfrom
sedhuait:tamil-support

Conversation

@sedhuait

@sedhuait sedhuait commented May 7, 2026

Copy link
Copy Markdown

Summary

Adds Tamil (ta, தமிழ்) as a first-class UI language in NAPS2.

  • Registers ta in LanguageNames.resx (alphabetically between sv and th) so Tamil appears in the Settings → Language
    picker.
  • Adds NAPS2.Lib/Lang/po/ta.po as the source-of-truth translation file with all 445 source strings translated (~100% coverage).
  • Generates the four derived .ta.resx files (UiStrings, MiscResources, SettingsResources, SdkResources) via the
    existing NAPS2.Tools resx --lang ta command. Entry counts and structure match the Hindi peer files exactly.

No code changes — the build picks up the new resources via existing csproj globs and the CultureHelper.GetAllCultures()
reflection-based registry. Verified by building NAPS2.App.Mac for osx-arm64 and confirming
Contents/MonoBundle/ta/NAPS2.{Lib,Sdk}.resources.dll are produced and load at runtime.

format-string/hotkey-marker integrity were also verified mechanically.

What's deliberately not included

  • No Crowdin push. If/when this is accepted upstream, the maintainer can push ta.po to Crowdin so future translations
    follow the normal flow.
  • No edit to the Debug-only EmbeddedResource Include block in NAPS2.Lib.csproj (which currently lists only
    fr/he/pt-BR for build-speed reasons). Tamil is included in Release and DebugLang builds, matching how
    hi/si/th/etc. are handled.
  • No CHANGELOG.md entry. Per repo convention, individual language additions aren't called out.

Test plan

  • dotnet build NAPS2.Lib and NAPS2.Sdk succeed under DebugLang (Tamil included)
  • dotnet run --project NAPS2.Tools -- resx --lang ta is idempotent (re-running produces zero diff against committed
    .ta.resx files)
  • Tamil satellite assemblies appear at bin/.../ta/NAPS2.{Lib,Sdk}.resources.dll
  • Format placeholder counts ({0}, {1}, …) match between English templates and Tamil resx — no FormatException risk
  • All #: reference comments and msgid order in ta.po match templates.pot exactly
  • Translation coverage 100% (445/445), well above the 5% INCLUDE_THRESHOLD
  • Mac app bundle (NAPS2.app, arm64) launches and exposes "தமிழ்" in the language picker
  • Native-speaker review of translations

Files

Status File
modified NAPS2.Lib/Lang/LanguageNames.resx
added NAPS2.Lib/Lang/po/ta.po
added NAPS2.Lib/Lang/Resources/UiStrings.ta.resx
added NAPS2.Lib/Lang/Resources/MiscResources.ta.resx
added NAPS2.Lib/Lang/Resources/SettingsResources.ta.resx
added NAPS2.Sdk/Lang/Resources/SdkResources.ta.resx

Commits

  • 849dcfc1e Lang: Add Tamil (ta) to LanguageNames
  • 56beea2ad Lang: Add Tamil translation source (ta.po)
  • 2611dc4d1 Lang: Generate Tamil resx files from ta.po

sedhuait added 3 commits May 6, 2026 15:02
Registers Tamil in the language picker. The actual translation strings
land in subsequent commits.
Locally authored .po file with machine-generated first-pass translations
for all 445 source strings. Translations need a native-speaker review
pass before official release.
Auto-generated by 'NAPS2.Tools resx --lang ta'. Source of truth is ta.po.
@cyanfish

cyanfish commented May 7, 2026

Copy link
Copy Markdown
Owner

Hi, I've added Tamil to translate.naps2.com. Please upload translations there and the code will be automatically updated as part of the release process.

@sedhuait

sedhuait commented May 7, 2026

Copy link
Copy Markdown
Author

@cyanfish : upload option is disabled. is there a way to upload ta.po file directly ?
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants