feat(ui): add Turkish (tr) locale#355
Merged
Merged
Conversation
Adds Türkçe to the dashboard languages alongside English, German, Spanish, French, Indonesian, Dutch, Portuguese. - messages/tr.json: 620 strings translated (full coverage) - project.inlang/settings.json: tr in locales array - src/stores/locale.ts: LOCALE_LABELS["tr"] = "Türkçe", LOCALE_CODES["tr"] = "TR" - src/lib/locales.test.ts: tr import, key-drift assertion, LOCALES coverage Glossary chosen for technical accuracy and Türkçe convention: - Dashboard -> Pano - Service -> Servis - Worker, Worktree, Horizon, Reverb, Stripe, FrankenPHP, Tinker preserved as-is
Owner
|
Thanks a lot for this, Erhan, really appreciate you taking the time to add Türkçe. Welcome aboard, will merge shortly. |
Contributor
Author
|
Thanks for the quick merge. Honored to land a contribution on lerd, the cleanest local PHP environment I have run on Linux. I’m glad that Turkish has been included. |
Merged
geodro
added a commit
that referenced
this pull request
May 18, 2026
First beta of the 1.21.0 line. The headline is desktop notifications via Web Push (#353), with a per-category settings page polished alongside a dashboard health row (#354). The PHP-FPM image grows a real shell environment, zsh plus starship plus eza, bat, fzf, zoxide, isolated from the host (#358), then loses around 800 MB of build toolchain in a multi-stage split that drops the image from 1.36 GB to 535 MB without losing any of its 68 PHP modules (#364). A new on-demand commands feature surfaces one-shot framework actions across the dashboard, the lerd run CLI, the command palette, and four new MCP tools, all backed by a generalised Dropdown component that replaces every native select in the UI (#363). The site detail header gets a browser-style address bar with the favicon, TLS lock, LAN-share chip, and worktrees promoted from a dropdown to tabs (#365), an Env tab joins Overview, Tinker, and Dumps to show the project .env verbatim (#366), and the tray menu picks up Dump bridge and Notifications toggles that update live via a new KindDumpsStatus event (#373). Postgres grows 17 and 18 alternates alongside a new MySQL 9.7 LTS line, all gated by a canonical-version pin so flipping the yaml canonical no longer silently major-jumps existing installs (#361). Türkçe joins the dashboard languages (#355), a public_dir override lands in .lerd.yaml for projects with a non-standard document root (#370), every git invocation in the tree now flows through internal/git (#356), and worker-failure pushes are batched so a systemd cascade no longer fires six near-identical notifications back to back (#372). Plus the post-1.20.2 fix queue covers the worktree-manager button rendering on non-git sites (#357), TLS certs not refreshing when a secured site's domain set changed (#367), streamed worktree install and a wave of audit follow-ups (#368), and tinker swallowing bare-expression results when the dump bridge was on (#371).
geodro
added a commit
that referenced
this pull request
May 18, 2026
#365's address-bar header for site detail landed with English literals on the TLS toggle, LAN toggle, mobile overflow LAN entry, and the overflow menu's aria-label. The Paraglide message keys all existed already (sites_controls_httpsToggle_on/off, sites_controls_lanToggle_on/off, common_moreActions) and tr.json was complete — the new component just skipped them. Non-English users (tr just shipped in #355) saw English on the most heavily-touched UI of v1.21.0.
geodro
added a commit
that referenced
this pull request
May 18, 2026
…376) * fix(workers): stop host workers from resurrecting after stop (#375) A host worker that the user stopped via the UI or `lerd worker stop` was getting silently revived. Two paths were doing it. On Linux and macOS, every HEAD write inside a worktree (commit, checkout, rebase, branch rename) fires the fsnotify "changed" handler, which was unconditionally calling AutoStartOptedInWorktreeWorkers and re-bootstrapping every opted-in host worker. The fix gates that call to action=="added" via a tiny shouldAutoStartWorkersOnSync helper, so HEAD movement leaves existing units alone. On macOS the launchd heal loop additionally treated a missing plist as drift and recreated it, even though WorkerStopForSite removes the plist precisely to represent user intent. shouldHealOnReason now skips "plist missing" and only heals genuine drift like "not loaded in launchd" or "loaded but no live process". The same report also flagged a separate symptom: when Vite did run, Inertia's wayfinder plugin shelled out to `php artisan wayfinder:generate --with-form` and failed with "/bin/sh: php: command not found". The launchd guard script and the systemd unit for host workers were never putting lerd's bin directory on PATH, so the php/composer/laravel shims couldn't be reached from npm-spawned subprocesses. Both paths now prepend config.BinDir(), and the Linux unit additionally re-adds ~/.local/bin so we don't quietly narrow what systemd-user previously inherited. * fix(ui): localize hardcoded English in site detail address bar #365's address-bar header for site detail landed with English literals on the TLS toggle, LAN toggle, mobile overflow LAN entry, and the overflow menu's aria-label. The Paraglide message keys all existed already (sites_controls_httpsToggle_on/off, sites_controls_lanToggle_on/off, common_moreActions) and tr.json was complete — the new component just skipped them. Non-English users (tr just shipped in #355) saw English on the most heavily-touched UI of v1.21.0.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this adds
Türkçe (Turkish) as the eighth dashboard language.
Files
internal/ui/web/messages/tr.json(new). 620 strings, full coverage ofen.json.internal/ui/web/project.inlang/settings.json."tr"added to thelocalesarray.internal/ui/web/src/stores/locale.ts.LOCALE_LABELS["tr"] = "Türkçe",LOCALE_CODES["tr"] = "TR".internal/ui/web/src/lib/locales.test.ts.tr.jsonimport, drift assertion,LOCALES.toContain('tr').Translation choices
All
{placeholder}interpolations are preserved.Verified
npm run i18n: 0 errors, 0 warningsnpm run check(svelte-check, strict TS): 0 errors, 0 warningsnpx vitest run src/lib/locales.test.ts: 15 / 15 passedOpen to wording changes if anything reads off in Türkçe.