dms_tailscalectl/tailscalectl/i18n
Ebeneezer (Hermes Agent) 108e77a024 feat: show public IP from Tailscale endpoints (#54)
Derive public IPv4 from Self.Addrs (or active exit-node peer Addrs when
an exit node is selected). Display click-to-copy under the status row.
No external HTTP probe — status JSON only.

Version 0.2.2. Unit tests + live status parse verification.

Written by AI agent working for @jtmorris. Model: Grok 4.5.
2026-07-15 01:31:46 -07:00
..
en.json feat: show public IP from Tailscale endpoints (#54) 2026-07-15 01:31:46 -07:00
README.md docs: sync README/manifest to v0.2.1 behavior and i18n keys 2026-07-15 01:11:59 -07:00

I18n for tailscalectl

This plugin is fully instrumented with I18n.tr(...) (from qs.Common) for all user-facing strings.

  • Source keys are the American English strings defined in lib.js (returned by getStrings(), plus bases from errorMessage() / formatError()).
  • Call sites in TailscaleWidget.qml wrap them: I18n.tr(TailscaleLib.getStrings().foo) or I18n.tr(TailscaleLib.getStrings().copied).arg(text).
  • Today: falls back to the key (perfect en-US).
  • Future: Drop additional xx.json here (or contribute keys to DMS core translations) when a loader or extraction process supports per-plugin locales.

Current keys (source of truth)

See getStrings() and errorMessage() in lib.js for the canonical list.

Example en.json (for documentation / future tools) lives beside this README.

Notes

  • Symbols/glyphs ("×", "↗", "—") are intentionally left as literals in the UI (not run through I18n as they are not linguistic content).
  • Plugin name/description in plugin.json and technical IDs ("tailscalectl") remain English.
  • This follows DMS dms-plugin-dev best practice for future-proofing even when only en is shipped.

Written by AI agent working for @jtmorris. Model: Grok 4.5.