chore: update translations from crowdin - #44
Conversation
📝 WalkthroughWalkthroughThis update introduces new and expanded localization files for the Tailscale plugin, adding full language support for Italian, Japanese, Korean, Dutch, Norwegian, Polish, Brazilian Portuguese, Portuguese (Portugal), Swedish, and Ukrainian. Existing German, Spanish, French, and Chinese localizations were significantly enhanced with new translation keys, refined descriptions, and improved context for advanced networking, authentication, and status features. Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant Plugin_UI
participant Locale_File
User->>Plugin_UI: Selects language or interacts with UI
Plugin_UI->>Locale_File: Loads appropriate locale JSON
Locale_File-->>Plugin_UI: Provides translated strings for UI, settings, help, status
Plugin_UI-->>User: Displays UI in selected language with updated/expanded translations
Poem
Note ⚡️ AI Code Reviews for VS Code, Cursor, WindsurfCodeRabbit now has a plugin for VS Code, Cursor and Windsurf. This brings AI code reviews directly in the code editor. Each commit is reviewed immediately, finding bugs before the PR is raised. Seamless context handoff to your AI code agent ensures that you can easily incorporate review feedback. Note ⚡️ Faster reviews with cachingCodeRabbit now supports caching for code and dependencies, helping speed up reviews. This means quicker feedback, reduced wait times, and a smoother review experience overall. Cached data is encrypted and stored securely. This feature will be automatically enabled for all accounts on May 30th. To opt out, configure ✨ Finishing Touches🧪 Generate Unit Tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Actionable comments posted: 5
🧹 Nitpick comments (1)
src/usr/local/emhttp/plugins/tailscale/locales/zh_CN.json (1)
52-63: Nitpick: Tone adjustment for “donate” context
The Chinese string"如果这个插件帮助到您,可以考虑捐赠哦。"ends with the colloquial particle “哦.” Consider removing “哦” for a more formal and consistent tone across help texts.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (14)
src/usr/local/emhttp/plugins/tailscale/locales/de_DE.json(5 hunks)src/usr/local/emhttp/plugins/tailscale/locales/es_ES.json(5 hunks)src/usr/local/emhttp/plugins/tailscale/locales/fr_FR.json(4 hunks)src/usr/local/emhttp/plugins/tailscale/locales/it_IT.json(1 hunks)src/usr/local/emhttp/plugins/tailscale/locales/ja_JP.json(1 hunks)src/usr/local/emhttp/plugins/tailscale/locales/ko_KR.json(1 hunks)src/usr/local/emhttp/plugins/tailscale/locales/nl_NL.json(1 hunks)src/usr/local/emhttp/plugins/tailscale/locales/no_NO.json(1 hunks)src/usr/local/emhttp/plugins/tailscale/locales/pl_PL.json(1 hunks)src/usr/local/emhttp/plugins/tailscale/locales/pt_BR.json(1 hunks)src/usr/local/emhttp/plugins/tailscale/locales/pt_PT.json(1 hunks)src/usr/local/emhttp/plugins/tailscale/locales/sv_SE.json(1 hunks)src/usr/local/emhttp/plugins/tailscale/locales/uk_UA.json(1 hunks)src/usr/local/emhttp/plugins/tailscale/locales/zh_CN.json(5 hunks)
🔇 Additional comments (52)
src/usr/local/emhttp/plugins/tailscale/locales/ko_KR.json (1)
1-142: New Korean locale file is valid and consistent
All translation keys match other locales, placeholders (%s) are correctly used, and the JSON is syntactically correct.src/usr/local/emhttp/plugins/tailscale/locales/nl_NL.json (1)
1-142: New Dutch locale file is valid and consistent
The structure mirrors other locales, translation keys align, and there are no syntax errors.src/usr/local/emhttp/plugins/tailscale/locales/uk_UA.json (1)
1-142: New Ukrainian locale file is valid and consistent
All keys are present, placeholders are correct, and the JSON parses without errors.src/usr/local/emhttp/plugins/tailscale/locales/pl_PL.json (1)
1-142: New Polish locale file is valid and consistent
Key set and structure match other locales, and there are no JSON syntax issues.src/usr/local/emhttp/plugins/tailscale/locales/de_DE.json (6)
17-25: Approve new root‐level UI action keys
The added translations for "disable", "enable", "login", "add", "remove", "tailnet", "configuration", and the login prompt ("needs_login") are correct, consistent with the plugin’s terminology, and preserve JSON syntax.
39-47: Approve settings key expansions
Translations for "outbound_network" ("Erweiterte Netzwerkoptionen"), "subnets" ("Tailscale-Subnetze zulassen"), "dns" ("Tailscale-DNS-Einstellungen zulassen"), and "reauthenticate" ("Erneut authentifizieren") are accurate and align with the updated English labels.
52-63: Approve context descriptions
The explanatory texts for DNS, subnets, outbound network, donate, and reauthenticate accurately reflect the English source, preserve punctuation, and include no broken HTML or JSON.
97-102: Approve info section additions
New info keys ("run_ssh", "advertise_exit_node", "use_exit_node", "exit_node_local", "unapproved", "connected_via") and their German translations are consistent, clear, and follow existing style.
112-112: Approve simplified NetBIOS warning
The removal of the HTML anchor in the NetBIOS warning key is intentional (per summary) and the German text reads cleanly without markup.
125-142: Approve comprehensive status_page section
All new status_page keys are translated correctly, preserve the original key ordering, and maintain JSON validity.src/usr/local/emhttp/plugins/tailscale/locales/ja_JP.json (1)
1-142: Approve addition of full Japanese locale
The newja_JP.jsonfile defines a complete set of keys matching other locales, is valid JSON, and the translations appear consistent and contextually accurate.src/usr/local/emhttp/plugins/tailscale/locales/zh_CN.json (4)
39-47: Approve settings key translations
Translations for"outbound_network","subnets","dns", and"reauthenticate"are accurate and preserve the intended permission semantics.
97-102: Approve info section additions
New info keys (run_ssh,advertise_exit_node,use_exit_node,exit_node_local,unapproved,connected_via) are correctly translated and mirror other locales.
112-112: Approve NetBIOS warning anchor
The HTML link in the NetBIOS warning is consistent with other locales and correctly formatted for the WebGUI.
125-142: Approve status_page section
The status_page translations cover all new keys and maintain JSON syntax and context fidelity.src/usr/local/emhttp/plugins/tailscale/locales/es_ES.json (6)
17-25: Approve root‐level action key additions
Translations for "disable", "enable", "login", "add", "remove", "tailnet", "configuration", and the login prompt are accurate and stylistically consistent.
39-47: Approve settings key translations
The new settings keys ("outbound_network", "subnets", "dns", "reauthenticate") are properly translated, preserving meaning and tone.
52-63: Approve context expansion
Context descriptions for DNS, subnets, outbound network, donate, and reauthenticate match the English intent with correct Spanish phrasing.
97-102: Approve info section expansions
Info keys (run_ssh,advertise_exit_node,use_exit_node,exit_node_local,unapproved,connected_via) and their values are accurate and idiomatic.
112-112: Approve NetBIOS warning
The embedded HTML in the NetBIOS message is valid, and the Spanish text correctly warns about SMB settings.
124-142: Approve status_page translations
All new status page labels are correctly translated and maintain consistent formatting.src/usr/local/emhttp/plugins/tailscale/locales/fr_FR.json (5)
17-25: Approve root‐level action verbs
Translations for "disable", "enable", "login", "add", "remove", "tailnet", "configuration", and the login prompt are clear and context-appropriate.
52-63: Approve expanded context texts
Context descriptions (DNS, subnets, outbound network, donate, reauthenticate) correctly mirror the English originals and are grammatically sound.
97-102: Approve info section additions
New info keys and their translations align with other locales and maintain consistency in style.
111-111: Approve NetBIOS warning anchor
The HTML link usage is consistent with the plugin’s other locale files and correctly formatted for French.
125-142: Approve status_page translations
All status_page entries are translated correctly and maintain JSON validity.src/usr/local/emhttp/plugins/tailscale/locales/pt_BR.json (7)
2-27: Comprehensive UI action and status translations look correct.
The basic keys for actions ("yes","no","apply", etc.) and top-level status messages ("needs_login","tailscale_disabled","tailscale_lock") are accurately translated into Brazilian Portuguese and are consistent with other locales.
28-65: Settings section translations are accurate and complete.
All"settings"keys, including nested contextual explanations, are correctly rendered in Brazilian Portuguese and maintain clarity and context alignment.
66-81: Help section translation is thorough.
The"help"entries, including the HTML list in"certificates_instructions", are translated correctly and preserve formatting and instructional clarity.
82-109: Informational labels are well translated.
The"info"block accurately covers status indicators and node lock metadata. Terminology such as"health","gateway", and"exit_node"are consistent with Brazilian usage.
110-114: Warning messages are clear and context-appropriate.
The"warnings"entries correctly convey urgency and guidance for key expiration, NetBIOS conflicts, and lock state.
115-124: Lock management translations are accurate.
The"lock"block provides clear instructions on signing nodes and describing lock states, properly localized for Brazilian Portuguese readers.
125-141: Status page section is properly localized.
All"status_page"keys, including"exit_node","tx_bytes","rx_bytes", and action labels, are translated and formatted correctly for Brazilian Portuguese.src/usr/local/emhttp/plugins/tailscale/locales/pt_PT.json (6)
2-27: Core UI actions and notices are correctly translated.
Primary keys ("yes","no","apply", etc.) and top-level notices ("needs_login","tailscale_disabled","tailscale_lock") use accurate European Portuguese terminology.
28-65: Settings keys and contextual descriptions are well localized.
All"settings"entries and nested"context"descriptions match the intended feature semantics in Portuguese (Portugal).
66-81: Help texts maintain clarity and formatting.
The"help"section, including list items in"certificates_instructions", is properly localized and preserves instructional formatting.
82-109: Informational fields are consistent with plugin terminology.
The"info"block entries correctly translate status indicators ("online","version","lock") and node metadata for the Portuguese (Portugal) audience.
110-114: Warning messages are contextually appropriate.
The"warnings"translations clearly warn about key expiration, NetBIOS conflicts, and lock state without ambiguity.
115-124: Node lock UI strings are accurate.
Lock-related instructions in the"lock"block use clear, idiomatic Portuguese and correctly reflect the signing workflow.src/usr/local/emhttp/plugins/tailscale/locales/sv_SE.json (7)
2-27: Basic UI and status translations are correct.
Keys for core actions ("yes","no","apply", etc.) and status notices are accurately rendered in Swedish.
28-65: Settings section is well translated.
All"settings"keys and nested"context"descriptions reflect proper Swedish network terminology and maintain consistency.
66-81: Help instructions preserve clarity.
The"help"block, including HTML list items, is localized correctly for Swedish users.
82-109: Informational labels align with plugin features.
The"info"entries accurately convey status, version, and lock metadata in Swedish.
110-114: Warnings convey critical alerts properly.
The"warnings"section clearly communicates expiration and lock warnings in Swedish.
115-124: Lock UI strings are consistent.
Entries in the"lock"block accurately describe signing states and actions for Swedish readers.
126-126:⚠️ Potential issueLocalize
"exit_node"into Swedish.
The value is still in English. It should be translated, for example:- "exit_node": "Exit Node", + "exit_node": "Exit-nod",Likely an incorrect or invalid review comment.
src/usr/local/emhttp/plugins/tailscale/locales/no_NO.json (6)
2-27: Fundamental UI strings correctly localized.
Primary action keys and status messages are accurately translated into Norwegian.
28-65: Settings and context descriptions are clear.
The"settings"block and nested"context"entries are well adapted to Norwegian terminology.
66-81: Help texts maintain instructional fidelity.
The"help"section provides clear, localized guidance with correct formatting.
82-109: Informational section is properly translated.
The"info"block uses appropriate Norwegian terms for status, version, and lock details.
110-114: Warnings are contextually accurate.
The"warnings"translations clearly alert users about expiration and lock concerns.
115-124: Lock management entries are correct.
The"lock"block accurately describes signing workflows and lock states in Norwegian.
| "run_ssh": "Tailscale SSH", | ||
| "advertise_exit_node": "Esegui come Exit Node", | ||
| "use_exit_node": "Usa Exit Node", | ||
| "exit_node_local": "Consenti accesso LAN durante l\\'uso di Exit Node", |
There was a problem hiding this comment.
Invalid escape sequence in JSON string
The backslash before the apostrophe in l\'uso is not a valid JSON escape and will cause a parse error. Remove the backslash so the apostrophe stands alone.
- "exit_node_local": "Consenti accesso LAN durante l\\'uso di Exit Node",
+ "exit_node_local": "Consenti accesso LAN durante l'uso di Exit Node",📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "exit_node_local": "Consenti accesso LAN durante l\\'uso di Exit Node", | |
| "exit_node_local": "Consenti accesso LAN durante l'uso di Exit Node", |
🤖 Prompt for AI Agents
In src/usr/local/emhttp/plugins/tailscale/locales/it_IT.json at line 100, the
string contains an invalid escape sequence with a backslash before the
apostrophe in "l\'uso". Remove the backslash so the apostrophe is unescaped,
making the string valid JSON.
| "disable": "禁用", | ||
| "enable": "启用", | ||
| "sign": "登录", | ||
| "login": "登录", | ||
| "add": "添加", | ||
| "remove": "移除", | ||
| "tailnet": "Tailnet", | ||
| "configuration": "配置", | ||
| "needs_login": "此设备需要登录 Tailscale。登录后请刷新此页面以查看状态。", |
There was a problem hiding this comment.
Critical: Incorrect translation for “sign” key
The root-level "sign" key is translated as "登录" (login). It should reflect cryptographic signing, e.g. "签名" or "签署", to distinguish from the "login" action.
🤖 Prompt for AI Agents
In src/usr/local/emhttp/plugins/tailscale/locales/zh_CN.json around lines 17 to
25, the translation for the "sign" key is incorrectly set to "登录", which means
login. Change the translation for "sign" to a term that reflects cryptographic
signing, such as "签名" or "签署", to clearly distinguish it from the "login" key.
| "outbound_network": "Options réseau avancées", | ||
| "subnets": "Autoriser les sous-réseaux Tailscale", | ||
| "dns": "Autoriser les paramètres DNS Tailscale", | ||
| "save": "Sauvegarde des Paramètres", | ||
| "restart": "Redémarrer Tailscale", | ||
| "erase": "Effacer la configuration de Tailscale", | ||
| "diagnostics": "Diagnostics du Plugin", | ||
| "donate": "Faire un Don", | ||
| "reauthenticate": "Réanthentifier", |
There was a problem hiding this comment.
Critical: Typo in “reauthenticate” key
The French value for "reauthenticate" is "Réanthentifier". It should be "Réauthentifier" (with "au") to match standard French spelling.
🤖 Prompt for AI Agents
In src/usr/local/emhttp/plugins/tailscale/locales/fr_FR.json around lines 39 to
47, correct the French translation for the "reauthenticate" key by changing
"Réanthentifier" to "Réauthentifier" to fix the typo and use the proper French
spelling.
| "disabled": "Seu tailnet não possui bloqueio ativado." | ||
| }, | ||
| "status_page": { | ||
| "exit_node": "Exit Node", |
There was a problem hiding this comment.
Translate "exit_node" into Portuguese.
The status-page key "exit_node" remains in English. It should be localized, for example:
- "exit_node": "Exit Node",
+ "exit_node": "Nó de Saída",📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "exit_node": "Exit Node", | |
| "exit_node": "Nó de Saída", |
🤖 Prompt for AI Agents
In src/usr/local/emhttp/plugins/tailscale/locales/pt_PT.json at line 126, the
key "exit_node" is currently untranslated and remains in English. Replace the
English string "Exit Node" with its correct Portuguese translation, such as "Nó
de Saída", to properly localize the status page.
| "disabled": "Tailnettet ditt har ikke lås aktivert." | ||
| }, | ||
| "status_page": { | ||
| "exit_node": "Utgangspunkt", |
There was a problem hiding this comment.
Correct the "exit_node" translation.
Currently translated as "Utgangspunkt" (starting point), which is misleading. It should reflect an exit node, e.g.:
- "exit_node": "Utgangspunkt",
+ "exit_node": "Exit-node",📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "exit_node": "Utgangspunkt", | |
| "exit_node": "Exit-node", |
🤖 Prompt for AI Agents
In src/usr/local/emhttp/plugins/tailscale/locales/no_NO.json at line 126, the
translation for "exit_node" is incorrectly set as "Utgangspunkt," which means
starting point. Update this value to a more accurate Norwegian term that conveys
the meaning of an exit node, such as "Utgangsnode" or a similar appropriate
translation reflecting the concept of an exit node.
Summary by CodeRabbit
New Features
Style