Skip to content

feat: update translations via @LingoDotDev#22776

Closed
calcom-bot wants to merge 1 commit intomainfrom
lingo.dev/main
Closed

feat: update translations via @LingoDotDev#22776
calcom-bot wants to merge 1 commit intomainfrom
lingo.dev/main

Conversation

@calcom-bot
Copy link
Collaborator

Hey team,

Lingo.dev here with fresh translations!

In this update

  • Added missing translations
  • Performed brand voice, context and glossary checks
  • Enhanced translations using Lingo.dev Localization Engine

Next Steps

  • Review the changes
  • Merge when ready

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jul 28, 2025

Walkthrough

This change updates and adds permission description strings in the localization files for over 30 languages. The modifications introduce new localization keys related to OAuth client management and directory synchronization, including labels, descriptions, creation prompts, deletion messages, and admin-only management notices. Additionally, new permission descriptions for viewing, creating, updating, and deleting organization attributes are added. Existing permission description strings for managing roles, event types, teams, and bookings have been refined to explicitly specify that these management actions apply within the context of organizational teams or the organization itself, clarifying the scope of these permissions. No changes were made to application logic, exported entities, or control flow; the updates are strictly textual within JSON localization files.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Complexity label: Simple
Rationale:
The changes consist of numerous low-complexity textual updates across multiple localization files, involving additions and refinements of permission and feature description strings. There is no impact on code logic, control flow, or exported entities. The review effort mainly involves verifying the accuracy and consistency of localization content across languages, which, although voluminous, does not require deep technical analysis or testing.

Possibly related PRs

  • feat: enable PBAC checking on organization settings page #22467: Implements backend and frontend permission-based access control (PBAC) logic and permission checks for organization settings pages, including attributes and directory sync; the current PR’s localization changes directly complement and support the permission features introduced in this PR.

📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 15870c1 and 5311f93.

⛔ Files ignored due to path filters (1)
  • i18n.lock is excluded by !**/*.lock
📒 Files selected for processing (36)
  • apps/web/public/static/locales/ar/common.json (5 hunks)
  • apps/web/public/static/locales/az/common.json (5 hunks)
  • apps/web/public/static/locales/bg/common.json (5 hunks)
  • apps/web/public/static/locales/bn/common.json (5 hunks)
  • apps/web/public/static/locales/ca/common.json (5 hunks)
  • apps/web/public/static/locales/cs/common.json (5 hunks)
  • apps/web/public/static/locales/da/common.json (5 hunks)
  • apps/web/public/static/locales/de/common.json (5 hunks)
  • apps/web/public/static/locales/el/common.json (5 hunks)
  • apps/web/public/static/locales/es-419/common.json (5 hunks)
  • apps/web/public/static/locales/es/common.json (5 hunks)
  • apps/web/public/static/locales/et/common.json (5 hunks)
  • apps/web/public/static/locales/eu/common.json (5 hunks)
  • apps/web/public/static/locales/fi/common.json (5 hunks)
  • apps/web/public/static/locales/fr/common.json (5 hunks)
  • apps/web/public/static/locales/he/common.json (5 hunks)
  • apps/web/public/static/locales/hu/common.json (5 hunks)
  • apps/web/public/static/locales/it/common.json (5 hunks)
  • apps/web/public/static/locales/ja/common.json (5 hunks)
  • apps/web/public/static/locales/km/common.json (5 hunks)
  • apps/web/public/static/locales/ko/common.json (5 hunks)
  • apps/web/public/static/locales/nl/common.json (5 hunks)
  • apps/web/public/static/locales/no/common.json (5 hunks)
  • apps/web/public/static/locales/pl/common.json (5 hunks)
  • apps/web/public/static/locales/pt-BR/common.json (5 hunks)
  • apps/web/public/static/locales/pt/common.json (5 hunks)
  • apps/web/public/static/locales/ro/common.json (5 hunks)
  • apps/web/public/static/locales/ru/common.json (5 hunks)
  • apps/web/public/static/locales/sk-SK/common.json (5 hunks)
  • apps/web/public/static/locales/sr/common.json (5 hunks)
  • apps/web/public/static/locales/sv/common.json (5 hunks)
  • apps/web/public/static/locales/tr/common.json (5 hunks)
  • apps/web/public/static/locales/uk/common.json (5 hunks)
  • apps/web/public/static/locales/vi/common.json (5 hunks)
  • apps/web/public/static/locales/zh-CN/common.json (5 hunks)
  • apps/web/public/static/locales/zh-TW/common.json (5 hunks)
✅ Files skipped from review due to trivial changes (3)
  • apps/web/public/static/locales/sk-SK/common.json
  • apps/web/public/static/locales/zh-CN/common.json
  • apps/web/public/static/locales/et/common.json
🚧 Files skipped from review as they are similar to previous changes (33)
  • apps/web/public/static/locales/da/common.json
  • apps/web/public/static/locales/fr/common.json
  • apps/web/public/static/locales/sv/common.json
  • apps/web/public/static/locales/fi/common.json
  • apps/web/public/static/locales/tr/common.json
  • apps/web/public/static/locales/ca/common.json
  • apps/web/public/static/locales/hu/common.json
  • apps/web/public/static/locales/pl/common.json
  • apps/web/public/static/locales/pt-BR/common.json
  • apps/web/public/static/locales/es/common.json
  • apps/web/public/static/locales/ja/common.json
  • apps/web/public/static/locales/cs/common.json
  • apps/web/public/static/locales/eu/common.json
  • apps/web/public/static/locales/no/common.json
  • apps/web/public/static/locales/ru/common.json
  • apps/web/public/static/locales/pt/common.json
  • apps/web/public/static/locales/bg/common.json
  • apps/web/public/static/locales/ar/common.json
  • apps/web/public/static/locales/ko/common.json
  • apps/web/public/static/locales/zh-TW/common.json
  • apps/web/public/static/locales/az/common.json
  • apps/web/public/static/locales/vi/common.json
  • apps/web/public/static/locales/el/common.json
  • apps/web/public/static/locales/it/common.json
  • apps/web/public/static/locales/ro/common.json
  • apps/web/public/static/locales/de/common.json
  • apps/web/public/static/locales/es-419/common.json
  • apps/web/public/static/locales/bn/common.json
  • apps/web/public/static/locales/he/common.json
  • apps/web/public/static/locales/nl/common.json
  • apps/web/public/static/locales/sr/common.json
  • apps/web/public/static/locales/km/common.json
  • apps/web/public/static/locales/uk/common.json
✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch lingo.dev/main

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.
  • 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.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

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 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.

@vercel
Copy link

vercel bot commented Jul 28, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

2 Skipped Deployments
Name Status Preview Comments Updated (UTC)
cal ⬜️ Ignored (Inspect) Aug 4, 2025 5:01pm
cal-eu ⬜️ Ignored (Inspect) Aug 4, 2025 5:01pm

@graphite-app graphite-app bot requested review from a team July 28, 2025 11:55
@CLAassistant
Copy link

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.


Lingo.dev seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.
You have signed the CLA already but the status is still pending? Let us recheck it.

@keithwillcode keithwillcode added core area: core, team members only foundation labels Jul 28, 2025
@dosubot dosubot bot added the i18n area: i18n, translations label Jul 28, 2025
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🔭 Outside diff range comments (2)
apps/web/public/static/locales/et/common.json (1)

3300-3340: Duplicate pbac_desc_* keys risk runtime collisions

Keys pbac_desc_manage_roles, pbac_desc_manage_event_types, pbac_desc_manage_teams, and pbac_desc_manage_bookings already exist earlier in the file (look around the 2950-3000 region).
JSON does not forbid duplicate keys, but the LAST occurrence silently overrides the earlier one at load time – easy to miss and painful to debug.

-  "pbac_desc_manage_roles": "Kõik toimingud rollidega organisatsiooni meeskondades",
+  "pbac_desc_manage_roles_org": "Kõik toimingud rollidega organisatsiooni meeskondades",

Either rename the new keys or drop the older ones to keep the file single-sourced and deterministic.

apps/web/public/static/locales/km/common.json (1)

1-3422: Potential duplicate-key shadowing & JSON-size issues
The file now contains > 3 400 individual key/value pairs in a single object. While syntactically valid, two practical risks pop up:

  1. Duplicate keys silently override earlier values at parse-time (the last one wins). I spot accidental re-definitions such as "event_name" / "event_name_in_calendar" vs later "event_name" (around 928 + 930) and "users" (1563 + 1564). If the i18n loader you use is strict this will throw; if not, earlier strings become unreachable at runtime.
  2. The monolithic JSON tops 300 KB; every page-load ships the whole blob even if only a handful of keys are needed. That hurts TTFB on low-bandwidth clients.
-  "event_name": "ឈ្មោះព្រឹត្តិការណ៍",
+  "event_name": "ឈ្មោះព្រឹត្តិការណ៍",          // KEEP-  "event_name": "ឈ្មោះព្រឹត្តិការណ៍",          // <- remove or rename

Consider:
• Running a duplicate-key check in CI (jq -c 'path(..|objects)|select(length>1)' …).
• Splitting locales into feature-scoped chunks and lazy-loading with i18next backend or next-intl.
• Moving long dev-only comments (e.g. ADD_NEW_STRINGS_ABOVE_THIS_LINE…) to a separate .md to keep the JSON pure.

🧹 Nitpick comments (20)
apps/web/public/static/locales/sv/common.json (2)

3308-3314: Avoid double-“team” phrasing in new PBAC strings

For the four newly-added keys the wording reads “…inom organisationens team”, e.g.

"pbac_desc_manage_roles": "Alla åtgärder för roller inom organisationens team"

Because the entity (roles / händelsetyper / bookings / team) is already scoped to the organisation, adding “inom organisationens team” is redundant and can be confusing (it sounds like a team inside a team).

Suggested phrasing (keep the same pattern used elsewhere such as pbac_desc_manage_organizations):

- "pbac_desc_manage_roles": "Alla åtgärder för roller inom organisationens team",
+ "pbac_desc_manage_roles": "Alla åtgärder för roller inom organisationen",

- "pbac_desc_manage_event_types": "Alla åtgärder för händelsetyper inom organisationens team",
+ "pbac_desc_manage_event_types": "Alla åtgärder för händelsetyper inom organisationen",

- "pbac_desc_manage_teams": "Alla åtgärder för team inom organisationens team",
+ "pbac_desc_manage_teams": "Alla åtgärder för team inom organisationen",

- "pbac_desc_manage_bookings": "Alla åtgärder för bokningar inom organisationens team",
+ "pbac_desc_manage_bookings": "Alla åtgärder för bokningar inom organisationen",

3341-3346: Consistency: translate “Reset-interval” key the same way

"rr_reset_interval_description" now uses “Bestämmer hur ofta …”.
Earlier keys in this file that describe scheduler intervals use “Avgör hur ofta …” (e.g. "rr_distribution_method_balanced_description").

For consistency across the sv locale, consider adopting the existing wording:

- "rr_reset_interval_description": "Bestämmer hur ofta bokningsräknaren för Round Robin återställs för att säkerställa en balanserad fördelning.",
+ "rr_reset_interval_description": "Avgör hur ofta bokningsräknaren för Round Robin återställs för att säkerställa en balanserad fördelning.",
apps/web/public/static/locales/vi/common.json (1)

3313-3314: Untranslated string and key-collision risk

The newly added key "pbac_desc_manage_event_types" is left in English.
• Translate it (e.g. “Tất cả hành động trên các loại sự kiện trong các nhóm của tổ chức”).
• Verify there isn’t another "pbac_desc_manage_event_types" earlier in the file; duplicate keys break i18n at runtime.

apps/web/public/static/locales/pt/common.json (1)

3308-3314: Unify terminology – use “equipas” to stay consistent with European-PT vocabulary

Throughout this file the string set uses the European Portuguese term “equipa(s)” (e.g. “Gerir esta equipa”, “Membro da equipa”).
The two newly-added entries switch to the Brazilian form “equipe(s)”, breaking consistency.

-"pbac_desc_manage_roles": "Todas as ações em funções em todas as equipes da organização",
+"pbac_desc_manage_roles": "Todas as ações em funções em todas as equipas da organização",

-"pbac_desc_manage_event_types": "Todas as ações em tipos de eventos em todas as equipes da organização",
+"pbac_desc_manage_event_types": "Todas as ações em tipos de eventos em todas as equipas da organização",
apps/web/public/static/locales/es-419/common.json (1)

3308-3336: Redundant wording in four new permission descriptions

The sentence pattern “Todas las acciones en X a través de los equipos de la organización” repeats the word equipos and reads slightly awkward in Spanish (“… en equipos … a través de los equipos…”).
Consider a lighter formulation that avoids the double use, e.g.:

- "pbac_desc_manage_roles": "Todas las acciones en roles a través de los equipos de la organización",
+ "pbac_desc_manage_roles": "Todas las acciones sobre roles en todos los equipos de la organización",

- "pbac_desc_manage_event_types": "Todas las acciones en tipos de eventos a través de los equipos de la organización",
+ "pbac_desc_manage_event_types": "Todas las acciones sobre tipos de eventos en todos los equipos de la organización",

- "pbac_desc_manage_teams": "Todas las acciones en equipos a través de los equipos de la organización",
+ "pbac_desc_manage_teams": "Todas las acciones sobre equipos en toda la organización",

- "pbac_desc_manage_bookings": "Todas las acciones en reservas a través de los equipos de la organización",
+ "pbac_desc_manage_bookings": "Todas las acciones sobre reservas en todos los equipos de la organización",

This preserves the clarified scope (“todos los equipos de la organización”) while reading more naturally.
No functional impact—purely a copy tweak.

apps/web/public/static/locales/da/common.json (1)

3308-3313: Consider harmonising terminology for “roles” vs “rolle”.

In other entries we use singular when describing one thing (e.g. “en rolle”), while here we use the plural “roller”. Double-check the English source (“All actions on roles…”) and ensure a consistent Danish phrasing across the PBAC section (either “…på roller…” or “…på rolle-ressourcer…” everywhere).

apps/web/public/static/locales/it/common.json (3)

3306-3310: Uniformare la preposizione (“tra” → “in”) per coerenza.

Per le descrizioni analoghe viene usato “in tutti i team” (o simile).
Valutare di sostituire

"Tutte le azioni sui ruoli tra i team dell'organizzazione"

con

-"Tutte le azioni sui ruoli tra i team dell'organizzazione"
+"Tutte le azioni sui ruoli in tutti i team dell'organizzazione"

per mantenere coerenza terminologica.


3310-3316: Allineare la terminologia delle descrizioni.

La frase:

"Tutte le azioni sui tipi di evento tra i team dell'organizzazione"

potrebbe seguire lo stesso schema suggerito sopra (“in tutti i team …”) per evitare ambiguità:

-"Tutte le azioni sui tipi di evento tra i team dell'organizzazione"
+"Tutte le azioni sui tipi di evento in tutti i team dell'organizzazione"

3332-3338: Traduzione coerente con le altre voci.

Analogamente alle osservazioni precedenti, prendere in considerazione:

-"Tutte le azioni sulle prenotazioni tra i team dell'organizzazione"
+"Tutte le azioni sulle prenotazioni in tutti i team dell'organizzazione"

per mantenere uniformità stilistica.

apps/web/public/static/locales/ja/common.json (1)

3308-3337: Phrase “組織チーム全体での …” reads awkwardly

“組織チーム全体での” literally glues two nouns and can sound unnatural to native readers.
Consider one of the following to make the scope clearer:

- "組織チーム全体でのロールに関するすべてのアクション"
+ "組織およびチーム全体に対するロールのすべてのアクション"

Apply the same construction to the three parallel strings introduced for event-types, teams and bookings:

- "組織チーム全体でのイベントタイプに関するすべてのアクション"
+ "組織およびチーム全体に対するイベントタイプのすべてのアクション"

- "組織チーム全体でのチームに関するすべてのアクション"
+ "組織およびチーム全体に対するチームのすべてのアクション"

- "組織チーム全体での予約に関するすべてのアクション"
+ "組織およびチーム全体に対する予約のすべてのアクション"

This keeps the wording consistent with earlier entries (e.g., “組織全体で …”) and removes the slightly forced compound.
No functional impact—purely a localisation polish.

apps/web/public/static/locales/de/common.json (1)

3308-3337: Wording is repetitive – suggest clearer phrasing

The four newly-added permission descriptions read
„… über alle Organisationsteams hinweg“.
Because the resource itself is already “Teams”, the phrase becomes a bit tautological:

"Alle Aktionen für Teams über alle Organisationsteams hinweg"

Consider simplifying to avoid the double “Teams”. For example:

-"Alle Aktionen für Teams über alle Organisationsteams hinweg"
+"Alle Aktionen für Teams in der gesamten Organisation"

Apply the same pattern to the three neighbouring entries (pbac_desc_manage_roles, pbac_desc_manage_event_types, pbac_desc_manage_bookings) for cleaner, consistent wording.
No functional impact, purely a translation nit.

apps/web/public/static/locales/es/common.json (2)

3308-3314: Inconsistent phrasing and missing article in the new permission descriptions

The newly-added strings use the pattern
"Todas las acciones sobre roles …" / "… sobre tipos de eventos …"
whereas most of the file still follows
"Todas las acciones **en** los …".

Besides the preposition, the article los/las is now missing (“sobre roles”, “sobre tipos de eventos”). For smooth, idiomatic Spanish and consistency across the permission texts, change these lines to e.g.:

-"pbac_desc_manage_roles": "Todas las acciones sobre roles en los equipos de la organización",
+"pbac_desc_manage_roles": "Todas las acciones sobre los roles en los equipos de la organización",

-"pbac_desc_manage_event_types": "Todas las acciones sobre tipos de eventos en los equipos de la organización",
+"pbac_desc_manage_event_types": "Todas las acciones sobre los tipos de eventos en los equipos de la organización",

Apply the same article/preposition fix to the other manage_ permission strings you just introduced.


3336-3337: Add definite article for grammatical correctness

"Todas las acciones sobre reservas en los equipos de la organización""Todas las acciones sobre **las** reservas …" to keep wording parallel to the other entries.

apps/web/public/static/locales/nl/common.json (1)

3308-3336: Improve wording for PBAC descriptions

The newly added Dutch strings read a bit literal (“Alle acties op …”) and the compound “organisatieteams” is uncommon. A more idiomatic phrasing is:

-"pbac_desc_manage_roles": "Alle acties op rollen binnen organisatieteams",
-"pbac_desc_manage_event_types": "Alle acties op gebeurtenistypes binnen organisatieteams",
-"pbac_desc_manage_teams": "Alle acties op teams binnen organisatieteams",
-"pbac_desc_manage_bookings": "Alle acties op boekingen binnen organisatieteams"
+"pbac_desc_manage_roles": "Alle acties voor rollen binnen teams van de organisatie",
+"pbac_desc_manage_event_types": "Alle acties voor gebeurtenistypes binnen teams van de organisatie",
+"pbac_desc_manage_teams": "Alle acties voor teams binnen de organisatie",
+"pbac_desc_manage_bookings": "Alle acties voor boekingen binnen teams van de organisatie"

This:

  1. Replaces the atypical “op” with “voor” to match common Dutch usage.
  2. Breaks the compound noun into “teams van de organisatie”, which reads more naturally.
  3. Keeps terminology consistent with other Dutch locale entries.
apps/web/public/static/locales/fi/common.json (1)

3308-3314: Check wording-consistency of organisation-scope strings

The new permission descriptions ( pbac_desc_manage_event_types, pbac_desc_manage_teams ) end with “organisaation tiimien välillä”.
Earlier sibling entries (e.g. pbac_desc_manage_roles at 3309) use exactly the same suffix, but Finnish style-guides normally prefer “organisaation tiimeissä” (≈ “inside the organisation’s teams”) instead of “between”.

Sticking to one preposition across all PBAC strings avoids user-visible jitter. Please double-check with the reference EN text and, if needed, update all four keys in one sweep.

apps/web/public/static/locales/he/common.json (2)

3311-3315: Minor Hebrew wording nit-pick

"כל הפעולות על סוגי אירועים בכל צוותי הארגון" is technically fine, but sounds slightly clunky.
Consider “כל הפעולות על סוגי-האירועים בכל צוותי הארגון” to avoid the double article and read more naturally.


3319-3323: Consistency with previous PBAC strings

pbac_desc_manage_teams should mirror the wording used earlier for the singular operations, e.g. the existing “עדכון הגדרות צוות” uses “צוות”.
For full consistency use either “צוותים בארגון” or “בכל צוותי הארגון” everywhere – right now some strings use “בצוותים של הארגון” and some “בכל צוותי הארגון”.

apps/web/public/static/locales/uk/common.json (3)

3308-3308: Translation scope sounds too narrow

"Усі дії з ролями в командах організації" implies that role-management is limited only to team roles, whereas the English key ­- manage roles ­- generally covers every role at org level as well.
Consider either:

  1. dropping “в командах”, or
  2. adding a second string for the organisation scope and keeping this one team-specific.

This avoids under-translation and remains consistent with the neighbouring permission descriptions.


3313-3313: Inconsistent term: “події” vs “заходи”

Earlier keys (_create_event_types, _view_event_types, …) use “типів заходів”, but here we switch to “типами подій”. Mixing the two nouns in the same block looks sloppy and may confuse translators later.

-"pbac_desc_manage_event_types": "Усі дії з типами подій у командах організації",
+"pbac_desc_manage_event_types": "Усі дії з типами заходів у командах організації",

3336-3336: Check declension agreement

"…з бронюваннями в командах організації" – “з бронюваннями” is grammatically correct, just confirm you really want the instrumental case here (дІї з бронюваннями).
If the intent is “над бронюваннями” or “із бронюваннями”, adjust accordingly.

Only a grammar nitpick – logic & JSON syntax are fine.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 19d7764 and 646043a.

⛔ Files ignored due to path filters (1)
  • i18n.lock is excluded by !**/*.lock
📒 Files selected for processing (36)
  • apps/web/public/static/locales/ar/common.json (2 hunks)
  • apps/web/public/static/locales/az/common.json (2 hunks)
  • apps/web/public/static/locales/bg/common.json (2 hunks)
  • apps/web/public/static/locales/bn/common.json (2 hunks)
  • apps/web/public/static/locales/ca/common.json (2 hunks)
  • apps/web/public/static/locales/cs/common.json (2 hunks)
  • apps/web/public/static/locales/da/common.json (2 hunks)
  • apps/web/public/static/locales/de/common.json (2 hunks)
  • apps/web/public/static/locales/el/common.json (2 hunks)
  • apps/web/public/static/locales/es-419/common.json (2 hunks)
  • apps/web/public/static/locales/es/common.json (2 hunks)
  • apps/web/public/static/locales/et/common.json (2 hunks)
  • apps/web/public/static/locales/eu/common.json (2 hunks)
  • apps/web/public/static/locales/fi/common.json (2 hunks)
  • apps/web/public/static/locales/fr/common.json (2 hunks)
  • apps/web/public/static/locales/he/common.json (2 hunks)
  • apps/web/public/static/locales/hu/common.json (2 hunks)
  • apps/web/public/static/locales/it/common.json (2 hunks)
  • apps/web/public/static/locales/ja/common.json (2 hunks)
  • apps/web/public/static/locales/km/common.json (2 hunks)
  • apps/web/public/static/locales/ko/common.json (2 hunks)
  • apps/web/public/static/locales/nl/common.json (2 hunks)
  • apps/web/public/static/locales/no/common.json (2 hunks)
  • apps/web/public/static/locales/pl/common.json (2 hunks)
  • apps/web/public/static/locales/pt-BR/common.json (2 hunks)
  • apps/web/public/static/locales/pt/common.json (2 hunks)
  • apps/web/public/static/locales/ro/common.json (2 hunks)
  • apps/web/public/static/locales/ru/common.json (2 hunks)
  • apps/web/public/static/locales/sk-SK/common.json (2 hunks)
  • apps/web/public/static/locales/sr/common.json (2 hunks)
  • apps/web/public/static/locales/sv/common.json (2 hunks)
  • apps/web/public/static/locales/tr/common.json (2 hunks)
  • apps/web/public/static/locales/uk/common.json (2 hunks)
  • apps/web/public/static/locales/vi/common.json (2 hunks)
  • apps/web/public/static/locales/zh-CN/common.json (2 hunks)
  • apps/web/public/static/locales/zh-TW/common.json (2 hunks)
🧰 Additional context used
🧠 Learnings (29)
📓 Common learnings
Learnt from: bandhan-majumder
PR: calcom/cal.com#22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.233Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.
apps/web/public/static/locales/ru/common.json (1)

Learnt from: bandhan-majumder
PR: #22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.233Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.

apps/web/public/static/locales/ar/common.json (1)

Learnt from: bandhan-majumder
PR: #22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.233Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.

apps/web/public/static/locales/zh-TW/common.json (1)

Learnt from: bandhan-majumder
PR: #22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.233Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.

apps/web/public/static/locales/sr/common.json (1)

Learnt from: bandhan-majumder
PR: #22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.233Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.

apps/web/public/static/locales/es/common.json (1)

Learnt from: bandhan-majumder
PR: #22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.233Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.

apps/web/public/static/locales/bn/common.json (1)

Learnt from: bandhan-majumder
PR: #22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.233Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.

apps/web/public/static/locales/it/common.json (1)

Learnt from: bandhan-majumder
PR: #22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.233Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.

apps/web/public/static/locales/hu/common.json (1)

Learnt from: bandhan-majumder
PR: #22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.233Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.

apps/web/public/static/locales/fr/common.json (1)

Learnt from: bandhan-majumder
PR: #22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.233Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.

apps/web/public/static/locales/es-419/common.json (1)

Learnt from: bandhan-majumder
PR: #22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.233Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.

apps/web/public/static/locales/ca/common.json (1)

Learnt from: bandhan-majumder
PR: #22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.233Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.

apps/web/public/static/locales/de/common.json (1)

Learnt from: bandhan-majumder
PR: #22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.233Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.

apps/web/public/static/locales/pt/common.json (2)

Learnt from: CR
PR: calcom/cal.com#0
File: .cursor/rules/review.mdc:0-0
Timestamp: 2025-07-28T11:50:23.917Z
Learning: Applies to docs/api-reference/v2/openapi.json : When docs changes are made in /docs/api-reference/v2/openapi.json, ensure 'summary' fields are short, concise, do not end with a period, and are written in proper American English

Learnt from: bandhan-majumder
PR: #22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.233Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.

apps/web/public/static/locales/sv/common.json (1)

Learnt from: bandhan-majumder
PR: #22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.233Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.

apps/web/public/static/locales/zh-CN/common.json (1)

Learnt from: bandhan-majumder
PR: #22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.233Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.

apps/web/public/static/locales/uk/common.json (1)

Learnt from: bandhan-majumder
PR: #22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.233Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.

apps/web/public/static/locales/eu/common.json (1)

Learnt from: bandhan-majumder
PR: #22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.233Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.

apps/web/public/static/locales/fi/common.json (1)

Learnt from: bandhan-majumder
PR: #22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.233Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.

apps/web/public/static/locales/az/common.json (1)

Learnt from: bandhan-majumder
PR: #22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.233Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.

apps/web/public/static/locales/he/common.json (1)

Learnt from: bandhan-majumder
PR: #22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.233Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.

apps/web/public/static/locales/ro/common.json (1)

Learnt from: bandhan-majumder
PR: #22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.233Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.

apps/web/public/static/locales/pl/common.json (1)

Learnt from: bandhan-majumder
PR: #22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.233Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.

apps/web/public/static/locales/cs/common.json (2)

Learnt from: bandhan-majumder
PR: #22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.233Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.

Learnt from: CR
PR: calcom/cal.com#0
File: .cursor/rules/review.mdc:0-0
Timestamp: 2025-07-28T11:50:23.917Z
Learning: Applies to docs/api-reference/v2/openapi.json : When docs changes are made in /docs/api-reference/v2/openapi.json, ensure 'summary' fields are short, concise, do not end with a period, and are written in proper American English

apps/web/public/static/locales/pt-BR/common.json (2)

Learnt from: bandhan-majumder
PR: #22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.233Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.

Learnt from: CR
PR: calcom/cal.com#0
File: .cursor/rules/review.mdc:0-0
Timestamp: 2025-07-28T11:50:23.917Z
Learning: Applies to docs/api-reference/v2/openapi.json : When docs changes are made in /docs/api-reference/v2/openapi.json, ensure 'summary' fields are short, concise, do not end with a period, and are written in proper American English

apps/web/public/static/locales/bg/common.json (1)

Learnt from: bandhan-majumder
PR: #22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.233Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.

apps/web/public/static/locales/sk-SK/common.json (1)

Learnt from: bandhan-majumder
PR: #22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.233Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.

apps/web/public/static/locales/el/common.json (1)

Learnt from: bandhan-majumder
PR: #22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.233Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.

apps/web/public/static/locales/km/common.json (1)

Learnt from: bandhan-majumder
PR: #22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.233Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.

🔇 Additional comments (28)
apps/web/public/static/locales/no/common.json (1)

3308-3314: LGTM – translation update looks consistent

The newly-added PBAC description strings use the same phrasing pattern adopted elsewhere in this file ( «Alle handlinger på … på tvers av organisasjonsteam» ).
No structural or placeholder issues detected.

apps/web/public/static/locales/pl/common.json (1)

3308-3313: Translations LGTM

Now-added strings read naturally and remain consistent with the surrounding PBAC descriptions.
No further action required.

apps/web/public/static/locales/cs/common.json (1)

3308-3314: Consistent phrasing – looks good

The newly-added pbac_desc_manage_roles and pbac_desc_manage_event_types strings mirror the style used for the surrounding permission descriptions (imperative, no trailing period, “napříč týmy organizace”). No localisation, punctuation or JSON-syntax issues spotted.

apps/web/public/static/locales/sr/common.json (1)

3308-3314: Consistent contextualization looks good

Both updated strings now clearly specify that the actions are scoped “u timovima organizacije”, matching the pattern introduced across other languages in this PR.
JSON syntax and placeholders remain intact, so no issues here.

apps/web/public/static/locales/tr/common.json (1)

3308-3336: Translations look consistent – no action needed.

Strings for the new PBAC descriptions were added/updated and syntax is correct (double-quoted keys/values, trailing commas intact).
Nothing else to flag here.

apps/web/public/static/locales/zh-CN/common.json (1)

3308-3336: Translations look consistent – no action required

The four newly-added permission-description strings (pbac_desc_manage_roles, pbac_desc_manage_event_types, pbac_desc_manage_teams, pbac_desc_manage_bookings) follow the same wording pattern already used throughout this file (“对组织团队中…的所有操作”). No typos, placeholder mismatches, or glossary-violations detected.

apps/web/public/static/locales/ko/common.json (2)

3304-3310: Translations LGTM

The newly-added pbac_desc_manage_roles string looks accurate, context-aware, and is syntactically correct JSON (comma placement is fine). No further action required.


3310-3316: Consistent wording – looks good

pbac_desc_manage_event_types follows the same wording pattern («조직 팀 전체의 …») as the other PBAC descriptions—this keeps the UI consistent. JSON syntax also remains valid.

apps/web/public/static/locales/sk-SK/common.json (1)

3308-3314: Confirm new permission-description keys exist in all locale files.

The newly-added keys pbac_desc_manage_roles and pbac_desc_manage_event_types extend the PBAC matrix.
Please make sure:

  1. The same keys are present in the source/​default locale (usually en/common.json) so extraction tools don’t treat them as orphaned.
  2. Every other locale received a placeholder translation to avoid runtime fall-back to English or missing-string warnings.

Nothing else to flag – spelling and JSON syntax look good.

apps/web/public/static/locales/ru/common.json (1)

3308-3313: Translations added correctly

The new PBAC description keys (pbac_desc_manage_roles, pbac_desc_manage_event_types) follow the existing naming convention, the JSON syntax is valid, and the Russian phrasing is consistent with neighbouring strings. No further action required.

apps/web/public/static/locales/vi/common.json (1)

3308-3310: Missing Vietnamese translation + potential duplicate key

"pbac_desc_manage_roles" is still in English (“All actions on roles in organisation teams”).

  1. Please provide the Vietnamese translation to keep the file consistent.
  2. Double-check the rest of the file for an earlier occurrence of the same key – JSON silently keeps the last duplicate and drops the previous one, which leads to hard-to-detect data-loss bugs.
apps/web/public/static/locales/bg/common.json (1)

3308-3313: Ensure consistency with other PBAC descriptions

Other PBAC “manage_” strings use the wording “в цялата организация” (e.g. pbac_desc_manage_teams on line 3321).
The new/modified translations here end with “в екипите на организацията”, which introduces a subtle difference that may confuse users and breaks the pattern.

Consider aligning the phrasing for these two keys with the rest of the section, e.g.:

-  "pbac_desc_manage_roles": "Всички действия върху роли в екипите на организацията",
+  "pbac_desc_manage_roles": "Всички действия върху роли в цялата организация",

-  "pbac_desc_manage_event_types": "Всички действия върху типове събития в екипите на организацията",
+  "pbac_desc_manage_event_types": "Всички действия върху типове събития в цялата организация",

This keeps the messaging uniform and avoids implying a narrower scope than intended.
[ suggest_nitpick ]

apps/web/public/static/locales/el/common.json (1)

3308-3314: LGTM – translations read well and follow existing patterns

The newly-added permission descriptions (“pbac_desc_manage_roles” and “pbac_desc_manage_event_types”) are clear, gender-correct in Greek, and consistent with neighbouring keys. No structural or placeholder issues spotted.

apps/web/public/static/locales/it/common.json (1)

3319-3323: Formulazione poco naturale e ripetitiva (“team … team”).

La stringa:

"pbac_desc_manage_teams": "Tutte le azioni sui team tra i team dell'organizzazione"

contiene una ripetizione (“team … team”) che suona forzata in italiano.
Proposta più scorrevole:

-"pbac_desc_manage_teams": "Tutte le azioni sui team tra i team dell'organizzazione"
+"pbac_desc_manage_teams": "Tutte le azioni su tutti i team dell'organizzazione"
apps/web/public/static/locales/ar/common.json (1)

3308-3314: Translation wording is consistent – no issues found

The newly-added permission descriptions for managing roles and event types follow the same structure/terminology as the surrounding strings ( «جميع الإجراءات على … عبر فرق المؤسسة» ), so nothing to fix here.

apps/web/public/static/locales/fr/common.json (1)

3308-3322: Translations look good

The three newly-added permission descriptions follow the existing French style, reuse the same placeholders, and keep the sentence pattern consistent with neighbouring strings.
No variables were introduced or removed, so nothing else to verify.

apps/web/public/static/locales/pt-BR/common.json (2)

3308-3308: Refine wording for natural Portuguese

Current phrase "Todas as ações em funções em todas as equipes da organização" repete a preposição “em” e soa pouco natural.
Sugestão:

-"Todas as ações em funções em todas as equipes da organização"
+"Todas as ações sobre funções de todas as equipes da organização"

Alternativamente: Todas as ações relativas às funções de todas as equipes da organização.
[ suggest_nitpick ]


3313-3313: Adjust wording for clarity

A mesma construção aparece aqui. Recomendo:

-"Todas as ações em tipos de eventos em todas as equipes da organização"
+"Todas as ações sobre tipos de evento de todas as equipes da organização"

Isso elimina a repetição “em … em …” e mantém coerência terminológica (“tipo de evento” no singular).
[ suggest_nitpick ]

apps/web/public/static/locales/hu/common.json (1)

3308-3313: Check for un-intentional duplicate keys
These two freshly-added keys – pbac_desc_manage_roles and pbac_desc_manage_event_types – already existed earlier in the file in most locale sets.
If an accidental second occurrence sneaks in during merge conflict resolution, JSON parsers will keep the last value silently, masking the first. Please run a quick duplicate-key check (e.g. jq -cM 'paths(scalars) as $p | select($p|length==1) | $p[0]' … | sort | uniq -d) before shipping.

apps/web/public/static/locales/eu/common.json (1)

3308-3336: All new PBAC strings added correctly – nothing blocking.

The newly-added permission-description keys (pbac_desc_manage_roles, pbac_desc_manage_event_types, pbac_desc_manage_teams, pbac_desc_manage_bookings) are:

  1. JSON-valid (commas + quote pairs are correct)
  2. Unique – no duplicate keys found above in the file
  3. Grammatically consistent with the earlier Basque phrasing (“Erakundeko talde guztietako … ekintza guztiak”)

No action required.

apps/web/public/static/locales/he/common.json (1)

3306-3310: No duplicate pbac_desc_manage_roles translation key found
I ran a grep over apps/web/public/static/locales/he/common.json and only located a single occurrence at line 3308. There are no earlier entries that would be overridden. You can safely merge this change.

apps/web/public/static/locales/az/common.json (1)

3306-3313: Translations look consistent and JSON syntax is intact

The newly-added permission descriptions for roles and event-types are well-translated, keep the same grammatical structure as neighbouring strings, and the trailing commas are in place – so the JSON will still parse correctly.

No action needed.

apps/web/public/static/locales/bn/common.json (1)

3300-3305: Translations look consistent – double-check for accidental key duplication

Both new strings read naturally and mirror the English meaning (“all actions on roles / event types across all organisation teams”).
Just make sure there is no earlier occurrence of pbac_desc_manage_roles or pbac_desc_manage_event_types that might leave duplicates after the merge – JSON won’t fail to parse, but only the last value will be kept, which can hide outdated text.
Otherwise, nothing to fix here.

apps/web/public/static/locales/ro/common.json (2)

3308-3314: Potential duplication / ordering issue for new PBAC keys

pbac_desc_manage_roles, pbac_desc_manage_event_types and the neighbouring “manage_xxx” strings are inserted a few lines above their peers (pbac_desc_manage_teams, pbac_desc_manage_bookings etc.).
If the file is alphabetically ordered (as the rest appears to be) these keys should sit after the corresponding pbac_desc_update_* entries — otherwise downstream tooling that relies on lexical ordering (merge-drivers, localisation diff tools, etc.) will always detect a diff.

-  "pbac_desc_update_event_types": "...",
-  "pbac_desc_manage_event_types": "..."
+  "pbac_desc_update_event_types": "...",
+  "pbac_desc_manage_event_types": "..."

Just move the new "pbac_desc_manage_*" blocks so the key-order remains stable. No functional change – only positioning.
[tag: suggest_nitpick]


3308-3338: Wording consistency – consider “în cadrul …”

Most Romanian strings elsewhere use the pattern “în cadrul organizației/echipelor” (e.g. pbac_desc_manage_organizations).
The new lines read “în echipele organizației”. For consistency and smoother Romanian it would be:

-"Toate acțiunile legate de roluri în echipele organizației"
+"Toate acțiunile legate de roluri în cadrul echipelor organizației"

Apply the same tweak to the four newly-added sentences.
[tag: suggest_nitpick]

apps/web/public/static/locales/uk/common.json (1)

3321-3321: Minor wording tweak for clarity

"Усі дії з командами в межах організації" reads well, but the shorter form used above (“в командах організації”) is already clear and avoids repetition. Aligning both strings keeps the style uniform.

Not blocking – mentioning for future consistency only.

apps/web/public/static/locales/zh-TW/common.json (1)

3308-3313: Duplicate translation keys break the JSON contract

pbac_desc_update_event_types and pbac_desc_delete_event_types are declared twice (see lines 3308-3309 and again at 3311-3312). JSON objects must contain unique keys – on parse the latter occurrence silently overwrites the former, which is almost certainly not what you want.

Diff suggestion – keep the first pair and drop the duplicates:

-  "pbac_desc_update_event_types": "更新活動類型",
-  "pbac_desc_delete_event_types": "刪除活動類型",

Do the same audit for any other keys you added in this hunk to ensure each identifier is unique within the file.

⛔ Skipped due to learnings
Learnt from: bandhan-majumder
PR: calcom/cal.com#22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.233Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.
apps/web/public/static/locales/ca/common.json (1)

3308-3314: Duplicate translation key – pbac_desc_manage_event_types appears twice

The key is defined at 3308 and again at 3313 with the same value.
Most JSON loaders keep the last occurrence and silently discard the earlier one, so you’ll end up with an unpredictable/hidden override and a noisy diff history.

-  "pbac_desc_manage_event_types": "Totes les accions sobre tipus d'esdeveniments en els equips de l'organització",

Delete one of the duplicates (or merge if you intended different wording).
Do the same sweep for the other pbac_desc_* blocks to ensure uniqueness.

Likely an incorrect or invalid review comment.

Comment on lines 3321 to 3333
"pbac_desc_manage_teams": "Totes les accions sobre equips en els equips de l'organització",
"pbac_desc_create_organization": "Crear organització",
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

More duplicate keys – pbac_desc_manage_teams & pbac_desc_manage_bookings

pbac_desc_manage_teams (line 3321) and pbac_desc_manage_bookings (line 3336) are already defined earlier in the same file.
Having multiple definitions of the same key in one JSON file is invalid according to the spec and will bite you during i18n extraction / merge‐tooling.

Search & purge the extras:

-  "pbac_desc_manage_teams": "Totes les accions sobre equips en els equips de l'organització",
-  "pbac_desc_manage_bookings": "Totes les accions sobre reserves en els equips de l'organització",

After cleanup, run a quick jq . common.json (or equivalent) to ensure the file is still valid.

Also applies to: 3336-3337

🤖 Prompt for AI Agents
In apps/web/public/static/locales/ca/common.json around lines 3321-3322 and
3336-3337, there are duplicate keys `pbac_desc_manage_teams` and
`pbac_desc_manage_bookings` that appear earlier in the file. To fix this, search
the entire file for all occurrences of these keys and remove the duplicate
entries, keeping only one unique definition per key. After cleanup, validate the
JSON file using a tool like `jq . common.json` to ensure it remains valid and
correctly formatted.

@graphite-app
Copy link

graphite-app bot commented Jul 28, 2025

Graphite Automations

"Add consumer team as reviewer" took an action on this PR • (07/28/25)

1 reviewer was added to this PR based on Keith Williams's automation.

"Add foundation team as reviewer" took an action on this PR • (07/28/25)

1 reviewer was added to this PR based on Keith Williams's automation.

"Add ready-for-e2e label" took an action on this PR • (07/28/25)

1 label was added to this PR based on Keith Williams's automation.

emrysal
emrysal previously approved these changes Jul 28, 2025
emrysal
emrysal previously approved these changes Jul 28, 2025
@github-actions github-actions bot force-pushed the lingo.dev/main branch 4 times, most recently from 6e7d9f4 to 3e1951c Compare August 4, 2025 13:02
@emrysal
Copy link
Contributor

emrysal commented Aug 5, 2025

Old, closing.

@emrysal emrysal closed this Aug 5, 2025
auto-merge was automatically disabled August 5, 2025 00:18

Pull request was closed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core area: core, team members only foundation i18n area: i18n, translations ready-for-e2e

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants