41 lines
1.8 KiB
Markdown
41 lines
1.8 KiB
Markdown
|
|
# 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):
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"Tailscale": "Tailscale",
|
|||
|
|
"Connected": "Connected",
|
|||
|
|
"Disconnected": "Disconnected",
|
|||
|
|
"Exit node: ": "Exit node: ",
|
|||
|
|
"None": "None",
|
|||
|
|
"Copied %1 to clipboard": "Copied %1 to clipboard",
|
|||
|
|
"Invalid exit node hostname": "Invalid exit node hostname",
|
|||
|
|
"Failed to connect to Tailscale": "Failed to connect to Tailscale",
|
|||
|
|
"Failed to disconnect from Tailscale": "Failed to disconnect from Tailscale",
|
|||
|
|
"Failed to set exit node": "Failed to set exit node",
|
|||
|
|
"Failed to read Tailscale status": "Failed to read Tailscale status",
|
|||
|
|
"Error copying to clipboard": "Error copying to clipboard",
|
|||
|
|
"Tailscale command failed": "Tailscale command failed"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 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-build-0.1.
|