Skip to content
This repository was archived by the owner on Jul 31, 2025. It is now read-only.

chore: update translations from crowdin - #44

Merged
Derek Kaser (dkaser) merged 1 commit into
mainfrom
locale
May 21, 2025
Merged

chore: update translations from crowdin#44
Derek Kaser (dkaser) merged 1 commit into
mainfrom
locale

Conversation

@dkaser

@dkaser Derek Kaser (dkaser) commented May 21, 2025

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Added full localization support for Italian, Japanese, Korean, Dutch, Norwegian, Polish, Brazilian Portuguese, Portuguese (Portugal), Swedish, and Ukrainian languages in the Tailscale plugin.
    • Expanded and improved German, Spanish, French, and Chinese translations with new UI terms, settings descriptions, help texts, and status indicators.
    • Enhanced clarity and detail in help and warning messages across multiple languages.
  • Style

    • Improved consistency and phrasing in existing translations for better user experience.

@coderabbitai

coderabbitai Bot commented May 21, 2025

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

This 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

File(s) Change Summary
src/usr/local/emhttp/plugins/tailscale/locales/it_IT.json
ja_JP.json
ko_KR.json
nl_NL.json
no_NO.json
pl_PL.json
pt_BR.json
pt_PT.json
sv_SE.json
uk_UA.json
Added new localization files providing comprehensive Italian, Japanese, Korean, Dutch, Norwegian, Polish, Brazilian Portuguese, Portuguese (Portugal), Swedish, and Ukrainian translations for all plugin UI elements, settings, help texts, info labels, warnings, lock management, and status page fields.
src/usr/local/emhttp/plugins/tailscale/locales/de_DE.json
es_ES.json
fr_FR.json
zh_CN.json
Expanded and updated existing German, Spanish, French, and Chinese localization files with new translation keys, improved descriptions, context explanations, and new sections for advanced settings, authentication, exit node usage, and status page terms. Added or refined translations for actions, settings, help, info, warnings, and status indicators.

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
Loading

Poem

🐇
New tongues abound, the plugin sings,
From Dutch to Korean, so many things!
Settings refined, status clear,
Every user’s voice we hear.
Around the world, in every den,
Tailscale speaks to rabbits—and men!
🌍✨

Note

⚡️ AI Code Reviews for VS Code, Cursor, Windsurf

CodeRabbit 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.
Learn more here.


Note

⚡️ Faster reviews with caching

CodeRabbit 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 Review - Disable Cache at either the organization or repository level. If you prefer to disable all data retention across your organization, simply turn off the Data Retention setting under your Organization Settings.
Enjoy the performance boost—your workflow just got faster.

✨ Finishing Touches
🧪 Generate Unit Tests
  • Create PR with Unit Tests
  • Commit Unit Tests in branch locale
  • Post Copyable Unit Tests in Comment

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.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need 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)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai auto-generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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

📥 Commits

Reviewing files that changed from the base of the PR and between 001e4ea and ae6aa56.

📒 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 new ja_JP.json file 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 issue

Localize "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",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue

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.

Suggested change
"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.

Comment on lines +17 to +25
"disable": "禁用",
"enable": "启用",
"sign": "登录",
"login": "登录",
"add": "添加",
"remove": "移除",
"tailnet": "Tailnet",
"configuration": "配置",
"needs_login": "此设备需要登录 Tailscale。登录后请刷新此页面以查看状态。",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue

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.

Comment on lines +39 to +47
"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",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue

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",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue

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.

Suggested change
"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",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue

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.

Suggested change
"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.

@dkaser
Derek Kaser (dkaser) merged commit 46a9cf6 into main May 21, 2025
@dkaser
Derek Kaser (dkaser) deleted the locale branch May 21, 2025 04:31
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant