Skip to content

feat(ui): add Turkish localization - #662

Merged
pascalandr merged 3 commits into
NeuralNomadsAI:devfrom
fitzgpt:add-turkish-localization
Aug 26, 2026
Merged

feat(ui): add Turkish localization#662
pascalandr merged 3 commits into
NeuralNomadsAI:devfrom
fitzgpt:add-turkish-localization

Conversation

@fitzgpt

@fitzgpt fitzgpt commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Adds Turkish (tr-TR) as a supported UI language, following the same structure as the existing German/Nepali localization (#523).

What's included

  • packages/ui/src/lib/i18n/messages/tr/ — all 16 message modules + index.ts, mirroring the English files. 1,602/1,602 keys translated (verified against en/: no missing, no extra, every {placeholder} preserved).
  • packages/ui/src/lib/i18n/index.tsxtr added to the Locale union, SUPPORTED_LOCALES, and localeLoaders (lazy import, same as other locales).
  • packages/ui/src/components/locale-selector.tsxTürkçe added to the language options.
  • CONTRIBUTING.md — translation-files row updated to list the current locale set.

Translation conventions

Following the repo's i18n rule ("add to en/ first, then every other locale"), plus the convention visible in existing locales:

  • Developer jargon stays English: session, workspace, instance, provider, agent, prompt, token, diff, commit, worktree, branch, SideCar, plugin.
  • Product names and acronyms stay literal: CodeNomad, OpenCode, GitHub, VS Code, API, CLI, SSH, TLS, TTS/STT.
  • Turkish orthography (İ/ı casing, apostrophe suffixes on jargon: session'ın, agent'ler).

Verification

  • npx tsc --noEmit -p tsconfig.json (packages/ui) — pass
  • npx vite build (packages/ui) — pass (build also exercises mergeMessageParts, so no duplicate keys)
  • Runtime check on vite dev: with a Turkish browser locale the app auto-detects and renders fully in Turkish; the language picker lists and selects Türkçe (screenshots below)

Screenshots

Before — English UI (fresh profile, en-US locale):
before-english

After — Turkish UI (auto-detected from browser locale):
after-turkish

After — language picker with Türkçe selected:
after-picker

@pascalandr
pascalandr self-requested a review August 26, 2026 15:31
@pascalandr pascalandr added the enhancement New feature or request label Aug 26, 2026
pascalandr

This comment was marked as low quality.

@pascalandr
pascalandr dismissed their stale review August 26, 2026 15:50

Reposting with corrected Markdown formatting.

@pascalandr pascalandr left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gatekeeper: two translation errors need correction before merge.

  • packages/ui/src/lib/i18n/messages/tr/remoteAccess.ts:8,12-13 uses bağlanmak (connect), but these strings describe the server binding/listening on all interfaces or localhost. This reverses the networking operation and can mislead users about exposure. Please translate this as listening/binding instead.
  • packages/ui/src/lib/i18n/messages/tr/messaging.ts:24-25 uses basılı tutma (press and hold), but this button toggles holding/pausing automatic follow for long replies; there is no press-and-hold gesture. Please translate the feature state rather than a gesture.

Everything else checked out: 1,602/1,602 keys, placeholders and markup preserved, tr-TR detection works, and UI typecheck/build pass. The Windows CI failure is an unrelated flaky concurrency test.

@fitzgpt

fitzgpt commented Aug 26, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for the careful review! Fixed both — binding now translated as listening, and hold as pausing automatic follow rather than a gesture.

@fitzgpt
fitzgpt force-pushed the add-turkish-localization branch from 6bcd1b2 to 2f370c8 Compare August 26, 2026 16:31

@pascalandr pascalandr left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Both requested translations are fixed, and the follow-up Eklentiler wording is correct. Rechecked the final head: all 1,602 keys and placeholders match, and UI typecheck/build pass.

The remaining Windows failure is the same unrelated concurrency test.

Thanks @fitzgpt !!

@pascalandr
pascalandr merged commit 14586cb into NeuralNomadsAI:dev Aug 26, 2026
4 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants