-
Notifications
You must be signed in to change notification settings - Fork 10.2k
feat: update translations via @LingoDotDev #22894
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎ |
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. |
Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (36)
WalkthroughRenames round_robin_hosts_unavailable_for_booking → round_robin_host_unavailable_for_booking and adds many public localization keys across apps/web/public/static/locales//common.json. New keys cover round-robin groups and rr_load_balancing_disabled_with_groups, OAuth client UI and admin notices, embedding/headless routing strings, PBAC resources and numerous pbac_desc_ entries (workflows, organization attributes, etc.), grouping/booking/stats keys, and an extensive webhook metadata key set. All changes are localization entries only; no runtime logic or non-locale source files were modified. Estimated code review effort🎯 4 (Complex) | ⏱️ ~35 minutes Possibly related PRs
✨ 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. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
CodeRabbit Configuration File (
|
Graphite Automations"Add consumer team as reviewer" took an action on this PR • (08/05/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 • (08/05/25)1 reviewer was added to this PR based on Keith Williams's automation. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
♻️ Duplicate comments (1)
apps/web/public/static/locales/zh-TW/common.json (1)
1843-1844
: 延伸字串同樣需保持一致用詞這兩條權限說明仍使用「用戶端」。為保持一致,請同步改為「客戶端」。
🧹 Nitpick comments (34)
apps/web/public/static/locales/vi/common.json (1)
1843-1845
: Minor typography: missing period at sentence endLines 1843–1845 are full sentences but lack a terminal full-stop “.”.
Adding it keeps style identical to neighbouring admin-only notices (see Line 183-184 etc.).-"Chỉ quản trị viên hoặc chủ sở hữu của tổ chức mới có thể quản lý cài đặt đồng bộ hóa thư mục" +"Chỉ quản trị viên hoặc chủ sở hữu của tổ chức mới có thể quản lý cài đặt đồng bộ hóa thư mục."(Apply same to Line 1845).
apps/web/public/static/locales/ru/common.json (1)
874-878
: Consider the correct case for the direct-object form of “OAuth-client”.In Russian UI strings the object after “создать” normally takes the accusative case.
"create_oauth_client": "Создать OAuth-клиент"
should likely be
"Создать OAuth-клиента"
to be grammatically correct.-"create_oauth_client": "Создать OAuth-клиент", +"create_oauth_client": "Создать OAuth-клиента",apps/web/public/static/locales/uk/common.json (3)
874-877
: Terminology consistency check for OAuth-related stringsLooks good overall, but double-check that the existing UI consistently uses “OAuth клієнт” (singular) vs “OAuth клієнти” (plural).
In English we often mix “OAuth app / client”, so make sure the same Ukrainian term is used everywhere to avoid UI mismatches.No action required if the rest of the locale already follows this wording.
3311-3315
: PBAC resource additions: keep alphabetical groupingThe new
pbac_resource_attributes
+ description keys are appended to the block but break the existing alphabetical order of resources/descriptions set earlier in the file (event_type
,organization
, …).
Consider moving the four lines into the correct sorted position to keep future diffs minimal.No functional impact – purely maintainability.
3319-3324
: Updated “manage_*” descriptions – spelling checkMinor typo: “подій” vs “подій у”. Line 3324 currently reads
"Усі дії з типами подій у командах організації"
where “подій” already conveys genitive; “у” is OK but occasionally omitted elsewhere. Ensure wording is uniform across allpbac_desc_manage_*
entries (roles, teams, event types) to avoid translator noise.If the English originals differ, ignore.
apps/web/public/static/locales/ca/common.json (1)
3311-3316
: Minor typo: atributs not attributs
atributs
is already spelled correctly in the value strings, but the resource key also carries that typo (pbac_resource_attributes
).
If this was copied from the English locale it is fine, but double-check—renaming later is painful.apps/web/public/static/locales/zh-TW/common.json (1)
3311-3316
: 新增 PBAC 描述請檢查標點一致性
- Line 3313 與 3314 句尾缺少句號,而同區段其他描述多使用句號收尾。
- Line 3315
pbac_desc_manage_roles
應與前面敘述格式一致,可改為「管理組織(團隊)中角色的所有操作。」屬於細節但會影響文件閱讀體驗。
apps/web/public/static/locales/pl/common.json (1)
1843-1844
: Keep tone consistent in admin-only messagesStrings
only_admin_can_manage_directory_sync
/only_admin_can_manage_oauth_clients
start with “Tylko administrator lub właściciel…”.
Every other “admin-only” string in this file starts with “Tylko administrator …”.
For consistency either drop “lub właściciel” everywhere or keep it everywhere. Pick one and run i18n lint afterwards.apps/web/public/static/locales/hu/common.json (2)
1843-1844
: Consistency with existing “only_admin_can_…” stringsThe newly added keys follow the existing pattern but use singular “admin” while some previous entries use plural (“admins”).
Consider renaming toonly_admins_can_manage_*
for consistency with siblings (only_admins_can_manage_sso_org
, etc.).
3311-3316
: Keep PBAC help-texts alphabetically groupedNew PBAC resource/description pairs for “attributes” were appended at the bottom of the block.
For easier diffing & merge-conflict avoidance place them alphabetically with the otherpbac_*
entries.
This repo has been bitten by duplicated keys in the past.apps/web/public/static/locales/pt/common.json (2)
874-877
: Consider adding the definite article and keeping the voice consistentMost description strings in this file start with an imperative verb followed by the article “os” (e.g. “Gerencie os webhooks…”, “Configure as definições…”).
For consistency, prefer:- "oauth_clients_description": "Gerencie clientes OAuth para sua organização", + "oauth_clients_description": "Gerencie os clientes OAuth da sua organização",Minor, but it keeps wording uniform across the glossary.
1843-1844
: Capitalisation & voice inconsistent with neighbouring keysNearly every permission-warning string starts with a capital letter and the infinitive “Gerenciar/Administrar…”.
These two new entries start with a lowercase “gerenciar”.- "only_admin_can_manage_directory_sync": "Apenas o administrador ou proprietário da organização pode gerenciar as configurações de sincronização de diretório", - "only_admin_can_manage_oauth_clients": "Apenas o administrador ou proprietário da organização pode gerenciar clientes OAuth", + "only_admin_can_manage_directory_sync": "Apenas o administrador ou o proprietário da organização pode gerenciar as configurações de sincronização de diretório", + "only_admin_can_manage_oauth_clients": "Apenas o administrador ou o proprietário da organização pode gerenciar os clientes OAuth",This keeps capitalisation and the article “o” in line with the existing sentence style.
apps/web/public/static/locales/cs/common.json (1)
874-878
: Ensure punctuation style consistencyMost Czech strings in this file end without a trailing period, but several neighbouring entries (e.g.
"create_new_team_description"
) do use one.
For consistency across the locale consider either removing the full stop in"create_oauth_client_description": "Vytvořte nového OAuth klienta pro integraci s třetími stranami"
or systematically adding a period to the other short-description keys that currently lack it.
(This is purely cosmetic; nothing is functionally wrong.)apps/web/public/static/locales/de/common.json (1)
3311-3316
: PBAC attribute entries added without placeholder/grammar issues– Keys are unique.
– German wording (“Organisationsattribute”) matches the resource context.
– No placeholder tokens to validate.Consider keeping these PBAC description blocks alphabetically grouped like the existing ones for easier maintenance, but that’s optional.
apps/web/public/static/locales/sk-SK/common.json (2)
874-877
: Check consistency of term “OAuth klient” (singular) vs “OAuth klienti” (plural).In the Slovak strings you mix:
"oauth_clients"
→ OAuth klienti (plural, correct)"create_oauth_client"
→ Vytvoriť OAuth klienta (singular, genitive) – fine"create_oauth_client_description"
→ … klienta (singular) – also fineHowever,
"oauth_clients_description"
reads Spravujte OAuth klientov (genitive plural). The heading is plural nominative (klienti), while the description uses genitive plural (klientov). That’s grammatically correct, but double-check the UI: if the heading appears right above the description it may read odd ( OAuth klienti – Spravujte OAuth klientov ). Consider using nominative plural in the description (Spravujte OAuth klienti vo vašej organizácii) or rewriting the heading ( Správa OAuth klientov ) so both lines do not repeat the noun back-to-back.
1843-1844
: Minor wording alignment for admin-only notices.Both keys are admin-gate messages; first ends with nastavenia synchronizácie adresára, second with OAuth klientov. For parallelism consider:
"Iba administrátor alebo vlastník organizácie môže spravovať synchronizáciu adresára" "Iba administrátor alebo vlastník organizácie môže spravovať OAuth klientov"
This removes the extra word nastavenia so the two strings scan identically.
apps/web/public/static/locales/pt-BR/common.json (1)
1843-1844
: Use one term for “owner” across the fileEarlier keys (e.g.
only_admin_can_manage_sso_org
, Line 1841) use “dono da organização”, whereas the two new strings adopt “proprietário da organização”. Mixing “dono” and “proprietário” might confuse translators and users.- "Apenas o administrador ou proprietário da organização pode gerenciar ..." + "Apenas o administrador ou dono da organização pode gerenciar ..."apps/web/public/static/locales/bg/common.json (1)
874-876
: Consider keeping new OAuth-related keys grouped with existing OAuth strings for maintainabilityThese keys are inserted ~200 lines above the other OAuth strings that start at Line 878.
Moving them next to the existing block (or vice-versa) keeps the file logically grouped and eases future diff reviews.apps/web/public/static/locales/sr/common.json (2)
874-878
: Validate new OAuth-related keys & keep alphabetical orderingThe newly added keys (
oauth_clients
…create_oauth_client_description
) break the existing alphabetic ordering of the JSON (they appear after nameless_team).
While order does not affect runtime, keeping the file sorted greatly reduces merge-conflicts in the enormouscommon.json
.- "nameless_team": "Tim bez imena", - "oauth_clients": "OAuth klijenti", - ... + "nameless_team": "Tim bez imena", + // --- keep alphabetic ordering: place below “offer_seats” block ---Consider moving the block accordingly before merging.
No functional issues with the Serbian strings themselves.
1843-1845
: Plural consistency for admin-only strings
only_admin_can_manage_directory_sync
andonly_admin_can_manage_oauth_clients
start with “Samo administrator ili vlasnik … može” (singular) but end with “mogu” (plural).
Recommend aligning the verb with the subject for readability:- "only_admin_can_manage_directory_sync": "Samo administrator ili vlasnik organizacije može upravljati podešavanjima sinhronizacije direktorijuma", + "only_admin_can_manage_directory_sync": "Samo administrator ili vlasnik organizacije može da upravlja podešavanjima sinhronizacije direktorijuma", - "only_admin_can_manage_oauth_clients": "Samo administrator ili vlasnik organizacije može upravljati OAuth klijentima" + "only_admin_can_manage_oauth_clients": "Samo administrator ili vlasnik organizacije može da upravlja OAuth klijentima"apps/web/public/static/locales/ar/common.json (1)
3311-3316
: PBAC attribute keys added – just verify uniqueness
Keys for the new PBAC resource (pbac_resource_attributes
) and its CRUD descriptions are correct. Run a quick duplicate-key check on the whole JSON file to ensure these identifiers don’t collide with earlier ones; large locale files sometimes accumulate silent duplicates.apps/web/public/static/locales/no/common.json (2)
874-877
: Unify the Norwegian term for OAuth clientEarlier in the same file (
line 240 → webhook_update_form_description
) the term is written as “OAuthClient” (camel-cased, no hyphen), whereas the four new keys use “OAuth-klient”.
For consistency and to avoid confusion in the UI, stick to one variant throughout the locale file (ideally the hyphenated “OAuth-klient”, which reads better in Norwegian).
3311-3315
: Minor formatting – last item can drop the trailing commaLine 3315 ends with a comma while the following line already starts a new top-level key. JSON allows the extra comma in many runtimes, but pruning it prevents accidental linting errors in stricter parsers.
- "pbac_desc_create_organization_attributes": "Opprett organisasjonsegenskaper", + "pbac_desc_create_organization_attributes": "Opprett organisasjonsegenskaper"apps/web/public/static/locales/ko/common.json (1)
1842-1845
: Minor wording inconsistencyLines 1842-1845 mix “관리자 또는 소유자” with “관리자만”.
For perfect consistency with the neighbouring permission strings (e.g. 1838-1841) consider aligning the wording, e.g.- "조직의 관리자 또는 소유자만 디렉토리 동기화 설정을 관리할 수 있습니다" + "조직의 관리자(소유자 포함)만 디렉토리 동기화 설정을 관리할 수 있습니다"apps/web/public/static/locales/he/common.json (1)
1843-1845
: Missing plural-gender neutralityThe two strings use “מנהל או בעלים” in singular masculine form.
Other Hebrew translations in the file avoid gendered phrasing by using neutral participles (e.g. “מנהל/ת מערכת”).
Consider aligning:- "רק מנהל או בעלים של הארגון..." + "רק מנהל/ת מערכת או בעל/ת הארגון..."apps/web/public/static/locales/es-419/common.json (1)
1843-1844
: Minor consistency issue in admin-only strings
Line 1843 already says “Solo el administrador o propietario…”. At 1844 you add essentially the same pattern. Consider moving both messages into a single placeholder‐based template to avoid copy-paste drift when wording changes in the future.apps/web/public/static/locales/es/common.json (1)
874-878
: Polish OAuth-related strings for consistency and grammar
- Use an article before “cliente” to match Spanish idiom (“Crear un cliente OAuth”).
- Capitalise the first word in the description for consistency with neighbouring keys (“Gestiona los…” → “Gestiona los…”)
- Consider adding “los” to keep parallelism with other descriptions (“Gestiona los clientes OAuth…”).
-"oauth_clients": "Clientes OAuth", -"oauth_clients_description": "Gestiona los clientes OAuth para tu organización", -"create_oauth_client": "Crear cliente OAuth", -"create_oauth_client_description": "Crea un nuevo cliente OAuth para integraciones de terceros", +"oauth_clients": "Clientes OAuth", +"oauth_clients_description": "Gestiona los clientes OAuth de tu organización", +"create_oauth_client": "Crear un cliente OAuth", +"create_oauth_client_description": "Crea un nuevo cliente OAuth para integraciones de terceros",apps/web/public/static/locales/km/common.json (2)
874-877
: Confirm wording for “OAuth client” — current Khmer phrasing sounds like a “machine”
The term «ម៉ាស៊ីនភ្ញៀវ» literally means “client machine”. In most Khmer UIs we usually keep OAuth client untranslated or borrow the English word “client” (e.g. «OAuth Client» or «Client OAuth») instead of “ម៉ាស៊ីនភ្ញៀវ”.
Please double-check with your localisation guide to make sure the term is recognisable to end-users.
1843-1844
: Minor consistency nit – reuse existing wording for “organization”
In earlier strings the project consistently uses «អង្គការ» for “organization”. Here the translation for
only_admin_can_manage_directory_sync
andonly_admin_can_manage_oauth_clients
introduces the variant «អង្គភាព».
Consider standardising on one term (preferably the one already used elsewhere) to avoid confusion.apps/web/public/static/locales/it/common.json (2)
874-877
: Add the missing indefinite article in the new “OAuth client” strings
In Italian the action labels generally include an article (“Crea un …”) to read naturally, e.g. earlier keys such ascreate_webhook
use “Crea un Webhook”.
Consider:- "create_oauth_client": "Crea client OAuth", - "create_oauth_client_description": "Crea un nuovo client OAuth per integrazioni di terze parti" + "create_oauth_client": "Crea un client OAuth", + "create_oauth_client_description": "Crea un nuovo client OAuth per integrazioni di terze parti"
3312-3316
: Minor consistency touch-up: keep the noun order aligned with similar PBAC keys
Most existing PBAC descriptions start with the verb and keep the resource near the end, e.g. “Crea attributi dell’organizzazione”. For perfect alignment you may want to mirror the wording used for other resources (eventi, ruoli, …). Current text is already correct, so this is only stylistic.apps/web/public/static/locales/fr/common.json (2)
1842-1843
: Minor wording nit-pick
"Seul l'administrateur ou le propriétaire de l'organisation peut gérer …"
reads well, but every other permission string in this file begins with “Seul l’administrateur* de l’organisation** ou son propriétaire …”* (note the extra “de l’organisation” after administrateur).For perfect consistency you could tweak:
-"Seul l'administrateur ou le propriétaire de l'organisation peut gérer les paramètres de synchronisation d'annuaire", -"Seul l'administrateur ou le propriétaire de l'organisation peut gérer les clients OAuth", +"Seul l'administrateur de l'organisation ou son propriétaire peut gérer les paramètres de synchronisation d'annuaire", +"Seul l'administrateur de l'organisation ou son propriétaire peut gérer les clients OAuth",
3312-3316
: Uniform wording for attribute-related PBAC descriptionsThree existing PBAC descriptions use “de l'organisation” (view / update / delete) while the new one for create reads “d'organisation”.
Recommend unifying the article for searchability and visual consistency:-"pbac_desc_create_organization_attributes": "Créer des attributs d'organisation", +"pbac_desc_create_organization_attributes": "Créer des attributs de l'organisation",apps/web/public/static/locales/eu/common.json (1)
874-878
: Consistent naming, but singular/plural wording could be tighter
oauth_clients
→ “OAuth bezeroak” (plural) andcreate_oauth_client
→ “OAuth bezeroa” (singular) are correct, yetoauth_clients_description
still uses the plural (“bezeroak”).
To keep the glossaries aligned with most other locales you may want to switch to the singular in the description, e.g.-"Kudeatu zure erakundearen OAuth bezeroak" +"Zure erakundearen OAuth bezeroa kudeatu"
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ 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
(6 hunks)apps/web/public/static/locales/az/common.json
(6 hunks)apps/web/public/static/locales/bg/common.json
(6 hunks)apps/web/public/static/locales/bn/common.json
(6 hunks)apps/web/public/static/locales/ca/common.json
(6 hunks)apps/web/public/static/locales/cs/common.json
(6 hunks)apps/web/public/static/locales/da/common.json
(6 hunks)apps/web/public/static/locales/de/common.json
(6 hunks)apps/web/public/static/locales/el/common.json
(6 hunks)apps/web/public/static/locales/es-419/common.json
(6 hunks)apps/web/public/static/locales/es/common.json
(6 hunks)apps/web/public/static/locales/et/common.json
(6 hunks)apps/web/public/static/locales/eu/common.json
(6 hunks)apps/web/public/static/locales/fi/common.json
(6 hunks)apps/web/public/static/locales/fr/common.json
(6 hunks)apps/web/public/static/locales/he/common.json
(6 hunks)apps/web/public/static/locales/hu/common.json
(6 hunks)apps/web/public/static/locales/it/common.json
(6 hunks)apps/web/public/static/locales/ja/common.json
(6 hunks)apps/web/public/static/locales/km/common.json
(6 hunks)apps/web/public/static/locales/ko/common.json
(6 hunks)apps/web/public/static/locales/nl/common.json
(6 hunks)apps/web/public/static/locales/no/common.json
(6 hunks)apps/web/public/static/locales/pl/common.json
(6 hunks)apps/web/public/static/locales/pt-BR/common.json
(6 hunks)apps/web/public/static/locales/pt/common.json
(6 hunks)apps/web/public/static/locales/ro/common.json
(6 hunks)apps/web/public/static/locales/ru/common.json
(6 hunks)apps/web/public/static/locales/sk-SK/common.json
(6 hunks)apps/web/public/static/locales/sr/common.json
(6 hunks)apps/web/public/static/locales/sv/common.json
(6 hunks)apps/web/public/static/locales/tr/common.json
(6 hunks)apps/web/public/static/locales/uk/common.json
(6 hunks)apps/web/public/static/locales/vi/common.json
(6 hunks)apps/web/public/static/locales/zh-CN/common.json
(6 hunks)apps/web/public/static/locales/zh-TW/common.json
(6 hunks)
🧰 Additional context used
🧠 Learnings (3)
📓 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.
📚 Learning: when making localization changes for new features, it's often safer to add new strings rather than m...
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.
Applied to files:
apps/web/public/static/locales/zh-CN/common.json
apps/web/public/static/locales/pl/common.json
apps/web/public/static/locales/et/common.json
apps/web/public/static/locales/ca/common.json
apps/web/public/static/locales/pt-BR/common.json
apps/web/public/static/locales/uk/common.json
apps/web/public/static/locales/sv/common.json
apps/web/public/static/locales/da/common.json
apps/web/public/static/locales/bn/common.json
apps/web/public/static/locales/de/common.json
apps/web/public/static/locales/az/common.json
apps/web/public/static/locales/km/common.json
apps/web/public/static/locales/zh-TW/common.json
apps/web/public/static/locales/hu/common.json
apps/web/public/static/locales/ro/common.json
apps/web/public/static/locales/cs/common.json
apps/web/public/static/locales/ru/common.json
apps/web/public/static/locales/sr/common.json
apps/web/public/static/locales/el/common.json
apps/web/public/static/locales/bg/common.json
apps/web/public/static/locales/vi/common.json
apps/web/public/static/locales/pt/common.json
apps/web/public/static/locales/ar/common.json
apps/web/public/static/locales/tr/common.json
apps/web/public/static/locales/sk-SK/common.json
apps/web/public/static/locales/eu/common.json
apps/web/public/static/locales/ja/common.json
apps/web/public/static/locales/no/common.json
📚 Learning: applies to docs/api-reference/v2/openapi.json : when docs changes are made in `/docs/api-reference/v...
Learnt from: CR
PR: calcom/cal.com#0
File: .cursor/rules/review.mdc:0-0
Timestamp: 2025-07-28T11:50:23.946Z
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
Applied to files:
apps/web/public/static/locales/pt/common.json
apps/web/public/static/locales/eu/common.json
apps/web/public/static/locales/nl/common.json
🔇 Additional comments (77)
apps/web/public/static/locales/zh-CN/common.json (4)
873-878
: OAuth client keys correctly addedNew keys follow existing naming conventions, include the mandatory Chinese brand-terminology “OAuth 客户端”, and preserve punctuation/placeholder style. ✅
1842-1843
: Admin-only management strings read wellBoth strings are clear and align with the other “only_admin_can_…” messages already present. No issues.
3311-3316
: PBAC attribute entries are syntactically soundKeys are unique, descriptive, and comma-terminated; translations stay consistent with the earlier PBAC block.
3433-3434
: Minor follow-up: check for duplicate key “stats” across localesI don’t see “stats” defined elsewhere in this file, but please run a quick grep across all locale JSONs to be certain a second definition hasn’t slipped in (the last-one-wins rule would silently mask the earlier value).
apps/web/public/static/locales/da/common.json (4)
874-878
: Translations look consistent – no issues found.Keys for OAuth-client administration are new, unique, and follow the existing naming/translation style.
1843-1845
: Key names are fine; just check for duplicate entries.
only_admin_can_manage_directory_sync
/…oauth_clients
are new and do not appear elsewhere in the file. Nothing to change.
3311-3315
: PBAC attribute strings added correctly.The new permission-related strings align with previous PBAC keys. No conflicts detected.
3433-3435
: New “stats” / “booking_status” keys are fine.Names are intuitive and translations match existing tone.
apps/web/public/static/locales/ro/common.json (3)
874-877
: Translations look accurate; validate comma placementRomanian strings read naturally and match the English semantics.
Just ensure the trailing comma on Line 877 is retained only when another key follows, otherwise JSON becomes invalid.
1843-1844
: Consistent terminology with previous OAuth stringsThe wording keeps the previously-introduced “clienți OAuth” phrasing, maintaining consistency – good job.
No issues found.
3311-3315
: New PBAC attribute keys translated correctlyAll four permission-description strings preserve the meaning of “attributes” and follow the existing PBAC prefix style.
Looks good.apps/web/public/static/locales/vi/common.json (2)
874-877
: Verify capital-letter consistency in new OAuth stringsThe surrounding strings use “OAuth client” as “Ứng dụng OAuth” (Line 874) and “Tạo ứng dụng OAuth” (Line 876).
Elsewhere in the file (e.g. Line 240"webhook_update_form_description"
), “OAuthClient” is left untranslated. Consider keeping the term consistent across the whole locale – either always translate as “Ứng dụng OAuth” or keep the original “OAuth client”.
3311-3315
: Ensure PBAC action descriptions stay imperativeThe new permission descriptions (Lines 3312-3315) start with “Xem/Cập nhật/Xóa/Tạo thuộc tính …” which follows the existing imperative style (e.g.
pbac_desc_view_roles
).
LGTM, no further action.apps/web/public/static/locales/ru/common.json (3)
1843-1844
: Wording is clear – good addition.The admin-only notices are concise and match existing phrasing. No issues spotted.
3311-3316
: Verify uniqueness of newly added PBAC keys.The new attribute-related PBAC keys look correct, but please ensure there are no existing entries with the same identifiers elsewhere in this file (e.g. produced by earlier merges).
Duplicate keys would silently override each other at runtime.
3405-3405
: Potential duplicate key “stats”.A generic key such as
"stats"
is prone to already exist in large locale files.
Run a quick check; if a prior “stats” key is found, rename one of them (e.g.stats_menu
vsstats_header
) to avoid overwriting.apps/web/public/static/locales/uk/common.json (1)
1843-1844
: Permission-gate strings added – verify key reuseThese two keys mirror the pattern used for other only_admin_can_ strings.
Just confirm there are no earlier keys with the exact same id but a slightly different text (e.g. leftover from previous PRs) – duplicate ids silently override values at runtime.apps/web/public/static/locales/ca/common.json (3)
874-878
: Check cross-locale consistency for newly introduced OAuth stringsThe four keys for OAuth client management are present only in this Catalan file.
Please make sure identical keys (with English text) exist in your base locale (en/common.json
) and in any other mandatory locales; otherwise the i18n layer will fall back to the key name at runtime.
1843-1844
: Wording aligns with existing pattern – looks goodThe new admin-only warning strings follow the same style used by the surrounding
"only_admin_can_manage_*"
messages, so no changes needed.
3405-3406
: Possible duplicate key ― verifystats
uniqueness
"stats": "Estadístiques"
is introduced here.
Search the full file (and other locale files) for an existingstats
entry; duplicate keys in a JSON object silently override earlier definitions and make maintenance harder.apps/web/public/static/locales/az/common.json (2)
874-877
: Strings look consistent – no issues foundThe four newly-added OAuth keys follow the existing naming convention, punctuation and placeholder-less pattern used throughout this file. JSON syntax is also valid (commas are present).
No action required.
1842-1843
: Consistent admin-scope phrasingThe two new admin-only messages mirror the wording style of the neighbouring
only_admin_can_manage_*
entries and end with the correct “idarə edə bilər” phrase. JSON syntax is intact.
LGTM.apps/web/public/static/locales/pl/common.json (2)
3311-3316
: Align new PBAC keys with existing naming patternExisting PBAC keys use resource singular (
organization_attribute
) not plural.
New keys introduced underpbac_resource_attributes
& related descriptions are pluralised (attributes
).
If the backend expects the singular resource id, rename to avoid mismatched permissions look-up.
874-878
: No duplicate OAuth translation keys detected
- Verified that
oauth_clients
,oauth_clients_description
,create_oauth_client
, andcreate_oauth_client_description
each appear only once (lines 874–877) in apps/web/public/static/locales/pl/common.json.apps/web/public/static/locales/el/common.json (2)
874-878
: New OAuth-related keys are well-formed and consistently translatedKey names follow the existing snake-case convention and the Greek strings accurately reflect their English intent. No placeholder or punctuation issues spotted.
1843-1844
: Admin-only notices read clearly and match prior patternThe added permission messages reuse the same phrasing as similar keys (
only_admin_can_*
) and keep the wording concise. Nothing to change.apps/web/public/static/locales/hu/common.json (1)
874-877
: Verify new OAuth-related keys are covered by the UI and back-end look-upsThese four string IDs are brand-new.
Please double-check that:
- The UI components use exactly these keys (
oauth_clients
,oauth_clients_description
, …).- Server-side permission checks / PBAC rules reference the same IDs (case-sensitive).
Missing look-ups will silently fall back to English at runtime.
apps/web/public/static/locales/et/common.json (2)
874-877
: Strings look good – placeholders preservedNo syntax issues and the terminology (“OAuth kliendid”, “Halda …”) is consistent with the rest of the file.
1843-1844
: Consistent admin-permission phrasingBoth new keys keep the established “Ainult … saab …” formulation and correctly reference “organisatsiooni administraator või omanik”.
apps/web/public/static/locales/pt/common.json (2)
3311-3315
: LGTM – new PBAC strings are accurate & follow existing patternThe new attribute-related permission texts use the same infinitive pattern (“Visualizar”, “Atualizar”, …) used in the surrounding PBAC entries. No issues found.
3433-3434
: Potential semantic clash betweenstats
and existinganalytics
"stats": "Estatísticas"
duplicates the Portuguese word already used for the keyanalytics
.
If both keys are rendered in the same UI area the labels will be indistinguishable.
Consider differentiating, e.g.:"stats": "Métricas"or leave as-is if the two keys never appear together.
apps/web/public/static/locales/sv/common.json (4)
874-877
: New OAuth-related keys look good– Terminology (“OAuth-klient(er)”) is consistent with previously-used wording
– Plural/singular forms match the context (“klienter” vs “Skapa … klient”)
No action required.
1843-1844
: Admin-only sentences read correctlyBoth strings are grammatically correct Swedish and mirror the existing “only_admin…” keys.
No further changes needed.
3311-3315
: PBAC attribute permissions – translation consistent“Egenskaper” is already the Swedish term used for attributes elsewhere in the file, so the new permission phrases stay coherent.
All verbs (“Visa”, “Uppdatera”, “Ta bort”, “Skapa”) follow the existing style.
3434-3435
: New generic UI strings OK“Statistik” and “Bokningsstatus” are accurate and not duplicated elsewhere in the file.
JSON syntax around the additions is valid.apps/web/public/static/locales/cs/common.json (2)
1843-1844
: Wording aligns with existing permission strings – LGTMBoth messages follow the identical pattern already used for analogous lines such as
"only_admin_can_manage_sso_org"
.
No placeholder variables are involved, Czech phrasing is clear.
3311-3316
: Verify PBAC key alignment with other localesNew keys for attribute-related PBAC descriptions were added.
Before merging, please make sure the same keys are present (even in English) in the defaulten/common.json
; otherwise the permission UI might render blank in English while Czech works.apps/web/public/static/locales/de/common.json (2)
874-878
: New OAuth-related strings look consistent and syntactically correct• Keys are unique and follow the existing naming style.
• Translation keeps the English term “OAuth-Client” – consistent with the rest of the file.
No issues spotted.
1842-1845
: Admin-only guard messages align with earlier patternsStrings reuse the “Nur der Administrator … kann …” phrasing already used for similar permissions, so tone & terminology stay consistent.
Good addition.apps/web/public/static/locales/fi/common.json (3)
873-876
: OAuth-terminologia OKUudet OAuth-asiakas-avaimet on lisätty selkeästi ja johdonmukaisesti (asiakas / asiakkaat). Ei JSON-rakenteen ongelmia.
1843-1844
: Lisätyt käyttöoikeusviestit kunnossaTekstit noudattavat aiempaa “only_admin_can_manage_*” ‑muotoa ja sisältävät oikean sijamuodon (“järjestelmänvalvoja”).
3311-3315
: PBAC-sanasto täydentyy loogisestiUudet attribuuttikohtaiset PBAC-kuvaukset on lisätty yhdenmukaisessa muodossa. Ei avain- tai pilkkuvirheitä.
apps/web/public/static/locales/tr/common.json (3)
874-877
: Translations look good – no placeholder/escaping issues detectedThe four new OAuth-related keys contain no ICU placeholders, punctuation is consistent with neighbouring strings, and terminology (“OAuth İstemcisi”) matches existing usage. Nothing to fix here.
1842-1844
: String additions are consistent with existing styleThe admin-only directory-sync / OAuth-client warnings read naturally in Turkish and reuse the “yalnızca … yönetebilir” pattern already present elsewhere. No action required.
3311-3324
: PBAC attribute/role/event-type additions LGTM• Keys are correctly namespaced (
pbac_resource_*
,pbac_desc_*
).
• Placeholders or Markdown are not required and therefore safely absent.
• Terminology (“Öznitelikler”, “Tüm kaynaklarda tüm işlemler”) aligns with earlier PBAC entries.No translation, syntax, or consistency issues detected.
Also applies to: 3333-3350
apps/web/public/static/locales/pt-BR/common.json (3)
874-877
: Consistent singular × plural wordingThe plural key
"oauth_clients"
is translated as “Clientes OAuth”, while the singular key"create_oauth_client"
is translated with “Cliente OAuth”.
Wording and capitalisation are consistent and no interpolation variables are involved – looks good.
3311-3316
: New PBAC strings look correctThe newly-added PBAC resource & description entries follow the same style and terminology as existing permission strings. Pluralisation and capitalisation match previous entries.
3433-3435
: Check for duplicate keysKeys
"stats"
and"booking_status"
are appended here.
Before merging, quickly grep for these keys in the other locale files to ensure they are not already defined; duplicate keys silently overwrite previous values during the build.If they already exist, remove the duplicates or merge the translations intentionally.
apps/web/public/static/locales/bg/common.json (2)
1843-1844
: Key names follow the pattern but introduce a small duplication risk
only_admin_can_manage_directory_sync
andonly_admin_can_manage_oauth_clients
mirror previously-definedonly_admin_can_manage_sso_org
.
Double-check the whole file for accidental duplicates of these two new keys—JSON won’t complain but the last one wins at runtime.
3311-3316
: PBAC permission keys added – verify consistency with server side enumsThe new attribute-related permission strings (
pbac_resource_attributes
,pbac_desc_*_organization_attributes
) look fine.
Ensure that corresponding constants / enums exist in the RBAC/PBAC backend; otherwise UI will render labels for permissions that the API doesn’t recognise.apps/web/public/static/locales/sr/common.json (1)
3311-3316
: Check PBAC translations for domain accuracyThe newly introduced PBAC keys map technical RBAC concepts (e.g.
pbac_resource_attributes
,pbac_desc_create_organization_attributes
).
Current translations (“Atributi”, “Kreiranje atributa organizacije”) look correct, but please verify with the product/legal team that:
- “Atribut” is indeed the chosen term in the Serbian governance UI (some teams use “svojstvo”).
- The plural/singular forms match the in-app phrasing (e.g. “Kreiranje atributa” vs “Kreiranje atributa organizacije”).
No code change required if confirmed.
apps/web/public/static/locales/ar/common.json (2)
874-878
: OAuth-related strings look correct
New keys for OAuth client management are well-formed, use consistent naming, keep the English placeholders intact, and the Arabic wording is clear.
1842-1845
: Admin-only guard strings are fine
Translations read naturally and the placeholders match the key names. No issues spotted.apps/web/public/static/locales/ko/common.json (3)
874-877
: Verify new OAuth-client strings are included in all localesThe newly-added keys (
oauth_clients*
) look correct here, but remember to add the same keys tocommon.json
for every other supported locale (at leasten
, since it is used as the fallback).
If they are missing the UI will silently fall back to the key name.
3311-3316
: Duplicate-key riskThe PBAC description keys you added (
pbac_desc_*_organization_attributes
) are fine, but make sure the same keys are not present earlier in this file.
JSON does not forbid duplicate keys – whichever appears last wins – and that is extremely hard to notice at runtime.
Run a quick duplicate-key check before merging.
3433-3434
: Potential key collision
"stats"
and"booking_status"
are very generic identifiers; do a quick grep to be certain they don’t already exist elsewhere in the file (or in other locale files).
A silent overwrite would break previously translated text.apps/web/public/static/locales/nl/common.json (3)
874-878
: Translation keys add proper OAuth-client context — looks goodNew keys align with existing naming conventions (
oauth_clients*
), translations are clear, and no interpolation placeholders are required.
No issues spotted.
1843-1845
: Admin-only guard strings consistentThe two
only_admin_can_manage_*
entries reuse the same sentence pattern already established for earlier keys, keeping UX wording uniform.
Good addition.
3311-3316
: PBAC attribute strings added correctlyNew PBAC-related keys (
pbac_resource_attributes
, view/update/delete/create) follow the existing permission-string scheme and pluralisation.
No JSON or placeholder issues detected.apps/web/public/static/locales/ja/common.json (3)
874-877
: Ensure newly-added OAuth client strings exist in the source localeFour keys (
oauth_clients*
) are introduced here.
Please confirm that the same keys are present in the reference/default locale (usuallyen/common.json
).
If they are missing, the UI will fall back to the raw key names for every other language.
3433-3434
: Verify key uniqueness for"stats"
and"booking_status"
These appear late in the file.
If the same keys were defined earlier, JSON-parsing will keep only the last occurrence, shadowing the first and causing hard-to-trace i18n bugs.
A quick rip-grep across the repo is recommended.
3311-3315
: Wire up PBAC “attributes” resource end-to-endI see the new locale keys and registry entries for
pbac_resource_attributes
, but I couldn’t find a static resources list or seed script that pulls in “attributes.” Please verify and, if missing, update:• packages/features/pbac/domain/types/permission-registry.ts
– Ensure thepbac_resource_attributes
block with its CRUD actions is present (it appears at lines 360–384).• UI matrix component (e.g. packages/features/pbac/components/PermissionMatrix.tsx)
– Add “attributes” to the resources array so the grid renders the new column.• Seed data script (e.g. packages/features/pbac/seed/permissions.ts or backend migration)
– Include the “attributes” resource and its actions so new installs don’t show “unknown permission.”apps/web/public/static/locales/he/common.json (2)
874-878
: Ensure placeholder consistency with other localesFor the newly-added OAuth strings, verify that the key set (oauth_clients, …_description, create_oauth_client, …_description) exists in the reference/source locale and that parameter placeholders (e.g.
{{clientName}}
,{{appName}}
) are preserved 1-for-1.
If the English originals contain interpolation tokens that are missing here, runtime rendering will explode.
3311-3316
: Double-check PBAC attribute descriptionsThe PBAC entries are duplicated for “organization attributes”, yet the Hebrew wording refers to “מאפייני הארגון” four times; that is correct but easy to mix up with team-level wording.
Confirm that you really want the org-level strings here and not the team-level ones.
No code change needed if intentional.apps/web/public/static/locales/es-419/common.json (3)
3311-3315
: PBAC attribute keys look fine, but validate cross-locale coverage
The five newpbac_*attributes
strings are translated correctly. Make sure the same keys exist in the fallback (en
) locale; otherwise permission screens will show raw keys for users whose language falls back to English.
3405-3406
: Watch out for key collisions:"failed_bookings"
,"stats"
&"booking_status"
stats
is a very generic identifier and is frequently present in other locale segments. Ensure this is not re-declared earlier (it was in several other locales). Duplicate keys break translators’ tooling and may hide older strings.Also applies to: 3433-3435
874-877
: No conflicts within es-419/common.json or across locale files – duplicates across languages are expected
The four new keys only appear once ines-419/common.json
. Having the same identifiers in other language files (including the fallbackes/common.json
) is intentional: each locale implements the same key structure, andes-419
overrides the Spanish defaults as expected. There are no silent overwrites within a single file and no need to rename or merge keys.Likely an incorrect or invalid review comment.
apps/web/public/static/locales/es/common.json (1)
3311-3316
: Looks good – matches existing PBAC phrasing
Las nuevas descripciones siguen el mismo patrón (“Ver …”, “Actualizar …”) que el resto de claves PBAC.apps/web/public/static/locales/it/common.json (2)
1842-1845
: Looks good – translation keeps style & terminology consistent
No issues spotted with these permission-warning strings.
3433-3435
: Double-check for duplicate keys before merge
"stats"
and"booking_status"
are appended very close to the end of the file.
Search the file (and other locale files) to be sure these keys are not already defined earlier; JSON duplicates silently overwrite and are painful to track at runtime.apps/web/public/static/locales/fr/common.json (3)
874-877
: Looks good – consistent terminology for OAuth stringsThe four newly-added keys follow the existing naming pattern (
oauth_*
) and the French phrasing is concise and accurate. No action required.
3405-3405
: Key added but headline translation duplicates existing vocabulary
"failed_bookings": "Réservations échouées"
is technically correct, yet earlier keys use “annulées” (cancelled) and “non confirmées” for negative states. Double-check with product to ensure "échouées" conveys the intended nuance (payment failure vs. user cancel). If alignment is desired, consider “Réservations échouées” → “Réservations en échec”.
3433-3434
: Potential collision with existing ‘stats’ keyA quick grep shows
stats
already added here; confirm this key does not exist in other locale files (e.g.en/common.json
). Duplicate keys with divergent casing break i18n extraction tools. If the key already exists, reuse it rather than redefining.apps/web/public/static/locales/eu/common.json (1)
1843-1844
: JSON validity looks good, but mind the trailing commaBoth newly-added keys end with a comma even though
only_admin_can_manage_oauth_clients
is the last key inside that logical block. While JSON5 tolerates it, the project still ships pure JSON.
Double-check that the next line (1845) is indeed another key; otherwise remove the trailing comma to keep the file strictly valid.apps/web/public/static/locales/bn/common.json (3)
874-878
: Placeholders & context look correct – no action neededThe newly-added OAuth-related strings accurately preserve terminology (“OAuth ক্লায়েন্ট”) and contain no dynamic placeholders that could break formatting.
1843-1844
: Consistent admin-only phrasing – good workBoth permission warnings follow the existing convention (“শুধুমাত্র সংগঠনের অ্যাডমিন বা মালিক …”), so end-user messaging will stay uniform across the UI.
3311-3316
: PBAC attribute translations align with peer keysThe added PBAC strings (“বৈশিষ্ট্য”) fit the permission taxonomy and don’t introduce placeholder/grammar issues.
08d6858
to
d0bb352
Compare
d0bb352
to
cf60caf
Compare
cf60caf
to
ff1670c
Compare
ff1670c
to
61ca62a
Compare
96c1192
to
3af470e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
apps/web/public/static/locales/bn/common.json (1)
1843-1845
: Nit: finish sentences with the same punctuation as neighboursMost neighbouring strings in this block end with a full-stop (“।”), but these two lines do not. Add the period for visual consistency.
- "only_admin_can_manage_directory_sync": "শুধুমাত্র সংগঠনের অ্যাডমিন বা মালিক ডিরেক্টরি সিঙ্ক সেটিংস পরিচালনা করতে পারেন", - "only_admin_can_manage_oauth_clients": "শুধুমাত্র সংগঠনের অ্যাডমিন বা মালিক OAuth ক্লায়েন্ট পরিচালনা করতে পারেন", + "only_admin_can_manage_directory_sync": "শুধুমাত্র সংগঠনের অ্যাডমিন বা মালিক ডিরেক্টরি সিঙ্ক সেটিংস পরিচালনা করতে পারেন।", + "only_admin_can_manage_oauth_clients": "শুধুমাত্র সংগঠনের অ্যাডমিন বা মালিক OAuth ক্লায়েন্ট পরিচালনা করতে পারেন।",
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ 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
(6 hunks)apps/web/public/static/locales/az/common.json
(6 hunks)apps/web/public/static/locales/bg/common.json
(6 hunks)apps/web/public/static/locales/bn/common.json
(6 hunks)apps/web/public/static/locales/ca/common.json
(6 hunks)apps/web/public/static/locales/cs/common.json
(6 hunks)apps/web/public/static/locales/da/common.json
(6 hunks)apps/web/public/static/locales/de/common.json
(6 hunks)apps/web/public/static/locales/el/common.json
(6 hunks)apps/web/public/static/locales/es-419/common.json
(6 hunks)apps/web/public/static/locales/es/common.json
(6 hunks)apps/web/public/static/locales/et/common.json
(6 hunks)apps/web/public/static/locales/eu/common.json
(6 hunks)apps/web/public/static/locales/fi/common.json
(6 hunks)apps/web/public/static/locales/fr/common.json
(6 hunks)apps/web/public/static/locales/he/common.json
(6 hunks)apps/web/public/static/locales/hu/common.json
(6 hunks)apps/web/public/static/locales/it/common.json
(6 hunks)apps/web/public/static/locales/ja/common.json
(6 hunks)apps/web/public/static/locales/km/common.json
(6 hunks)apps/web/public/static/locales/ko/common.json
(6 hunks)apps/web/public/static/locales/nl/common.json
(6 hunks)apps/web/public/static/locales/no/common.json
(6 hunks)apps/web/public/static/locales/pl/common.json
(6 hunks)apps/web/public/static/locales/pt-BR/common.json
(6 hunks)apps/web/public/static/locales/pt/common.json
(6 hunks)apps/web/public/static/locales/ro/common.json
(6 hunks)apps/web/public/static/locales/ru/common.json
(6 hunks)apps/web/public/static/locales/sk-SK/common.json
(6 hunks)apps/web/public/static/locales/sr/common.json
(6 hunks)apps/web/public/static/locales/sv/common.json
(6 hunks)apps/web/public/static/locales/tr/common.json
(6 hunks)apps/web/public/static/locales/uk/common.json
(6 hunks)apps/web/public/static/locales/vi/common.json
(6 hunks)apps/web/public/static/locales/zh-CN/common.json
(6 hunks)apps/web/public/static/locales/zh-TW/common.json
(6 hunks)
✅ Files skipped from review due to trivial changes (2)
- apps/web/public/static/locales/bg/common.json
- apps/web/public/static/locales/cs/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/zh-CN/common.json
- apps/web/public/static/locales/pt-BR/common.json
- apps/web/public/static/locales/eu/common.json
- apps/web/public/static/locales/sv/common.json
- apps/web/public/static/locales/ro/common.json
- apps/web/public/static/locales/az/common.json
- apps/web/public/static/locales/pt/common.json
- apps/web/public/static/locales/hu/common.json
- apps/web/public/static/locales/vi/common.json
- apps/web/public/static/locales/zh-TW/common.json
- apps/web/public/static/locales/fi/common.json
- apps/web/public/static/locales/tr/common.json
- apps/web/public/static/locales/sr/common.json
- apps/web/public/static/locales/el/common.json
- apps/web/public/static/locales/nl/common.json
- apps/web/public/static/locales/he/common.json
- apps/web/public/static/locales/ru/common.json
- apps/web/public/static/locales/ja/common.json
- apps/web/public/static/locales/ca/common.json
- apps/web/public/static/locales/es-419/common.json
- apps/web/public/static/locales/it/common.json
- apps/web/public/static/locales/ko/common.json
- apps/web/public/static/locales/pl/common.json
- apps/web/public/static/locales/ar/common.json
- apps/web/public/static/locales/sk-SK/common.json
- apps/web/public/static/locales/es/common.json
- apps/web/public/static/locales/no/common.json
- apps/web/public/static/locales/km/common.json
- apps/web/public/static/locales/et/common.json
- apps/web/public/static/locales/uk/common.json
- apps/web/public/static/locales/fr/common.json
- apps/web/public/static/locales/de/common.json
🧰 Additional context used
🧠 Learnings (2)
📓 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.
📚 Learning: when making localization changes for new features, it's often safer to add new strings rather than m...
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.
Applied to files:
apps/web/public/static/locales/bn/common.json
🔇 Additional comments (2)
apps/web/public/static/locales/bn/common.json (2)
874-878
: Translations look good – no action neededThe added OAuth-related keys are translated consistently, preserve the original technical term “OAuth”, and contain no missing placeholders.
3311-3316
: Confirm no key duplicationThe new PBAC “attributes” keys are useful additions. Double-check that these IDs (
pbac_resource_attributes
,pbac_desc_*_organization_attributes
) are not already present elsewhere in the same file to avoid JSON-object key collisions at runtime.
3af470e
to
cc04ed1
Compare
823bd7d
to
56eba1e
Compare
56eba1e
to
404abc0
Compare
80a49d3
to
504a4af
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 10
🔭 Outside diff range comments (2)
apps/web/public/static/locales/ru/common.json (1)
73-74
: Standardize RU terminology in common.jsonWe’ve identified inconsistent translations across the file:
- Host/Organizer: mixed “хост” vs “организатор”
- Round Robin: lowercase “round robin” vs title-case “Round Robin”
- Webhook: “вебхук” vs “веб-хук”
- OAuth client: “OAuth клиент” vs “OAuth-клиент”
Please confirm we settle on the following conventions and batch-apply them:
• Use “организатор” (replace all “хост”)
• Use title-case “Round Robin”
• Use hyphenated “веб-хук”
• Use hyphenated “OAuth-клиент”Suggested one-shot fix script:
#!/bin/bash FILE="apps/web/public/static/locales/ru/common.json" sed -E -i \ -e 's/\bхост\b/организатор/g' \ -e 's/\bRound[[:space:]-]?Robin\b/Round Robin/g' \ -e 's/\bround[[:space:]-]?robin\b/Round Robin/g' \ -e 's/вебхук/веб-хук/g' \ -e 's/\bOAuth[[:space:]-]?клиент\b/OAuth-клиент/g' \ "$FILE"Then rerun your consistency scan to confirm no leftovers.
apps/web/public/static/locales/nl/common.json (1)
2555-2556
: Hyphenation + register + style: “headless routing‑API”Prefer hyphenation, avoid repetition, and use formal “uw”.
- "use_my_own_form": "Mijn eigen formulier gebruiken", - "use_our_headless_routing_api": "Gebruik onze headless routing API en gebruik je eigen formulier voor inzendingen.", + "use_my_own_form": "Mijn eigen formulier gebruiken", + "use_our_headless_routing_api": "Gebruik onze headless routing-API met uw eigen formulier voor inzendingen.",
♻️ Duplicate comments (75)
apps/web/public/static/locales/bn/common.json (1)
123-123
: Fix BN possessive: “বুকিংয়ের” (duplicate of prior suggestion)Use the contracted possessive to match standard BN usage and nearby strings.
- "round_robin_host_unavailable_for_booking": "রাউন্ড রবিন হোস্ট বুকিং এর জন্য অনুপলব্ধ।", + "round_robin_host_unavailable_for_booking": "রাউন্ড রবিন হোস্ট বুকিংয়ের জন্য অনুপলব্ধ।",apps/web/public/static/locales/ko/common.json (2)
875-878
: Use “타사” instead of “서드파티” + ensure OAuth keys exist across localesPrior guidance prefers “타사” for brand voice. Also validate these OAuth keys are present in all locales to avoid fallback-to-English.
- "create_oauth_client_description": "서드파티 통합을 위한 새 OAuth 클라이언트 생성", + "create_oauth_client_description": "타사 통합을 위한 새 OAuth 클라이언트 생성",
3446-3451
: Unify “이벤트 유형” → “이벤트 타입” in webhook labels (consistency)Keep terminology consistent with the rest of the UI.
- "webhook_type": "이벤트 유형 슬러그", + "webhook_type": "이벤트 타입 슬러그", - "webhook_title": "이벤트 유형 이름", + "webhook_title": "이벤트 타입 이름", - "webhook_description": "이벤트 유형 설정에 설명된 이벤트 설명", + "webhook_description": "이벤트 타입 설정에 설명된 이벤트 설명",apps/web/public/static/locales/zh-CN/common.json (1)
3366-3366
: Replace English “Round Robin” with “轮流”Keep terminology in Chinese.
- "rr_load_balancing_disabled_with_groups": "负载均衡在 Round Robin 组中不可用", + "rr_load_balancing_disabled_with_groups": "轮流组中不支持负载均衡",apps/web/public/static/locales/hu/common.json (3)
123-123
: Unify Round‑Robin term and fix grammarKeep Round‑Robin untranslated in HU UI and prefer “nem érhető el” over “nem elérhető”.
- "round_robin_host_unavailable_for_booking": "A körforgó házigazda nem elérhető foglalásra.", + "round_robin_host_unavailable_for_booking": "A Round‑Robin házigazda nem érhető el foglalásra."
875-878
: Use formal address and consistent phrasing in OAuth client sectionSwitch to formal “Kezelje… szervezete…”, and use “OAuth‑kliens” with hyphen.
- "oauth_clients": "OAuth kliensek", - "oauth_clients_description": "Kezeld szervezeted OAuth klienseit", - "create_oauth_client": "OAuth kliens létrehozása", - "create_oauth_client_description": "Új OAuth kliens létrehozása harmadik féltől származó integrációkhoz", + "oauth_clients": "OAuth‑kliensek", + "oauth_clients_description": "Kezelje szervezete OAuth‑klienseit", + "create_oauth_client": "OAuth‑kliens létrehozása", + "create_oauth_client_description": "Új OAuth‑kliens létrehozása harmadik féltől származó integrációk számára"
2255-2256
: Formalize and clarify headless routing copyUse formal address and clearer sentence; avoid double “használd”.
- "use_my_own_form": "Saját űrlap használata", - "use_our_headless_routing_api": "Használd a headless routing API-nkat és használd saját űrlapodat a beküldésekhez.", + "use_my_own_form": "Saját űrlap használata", + "use_our_headless_routing_api": "Használja headless útválasztó API‑nkat, és küldje be saját űrlapjáról."apps/web/public/static/locales/da/common.json (4)
123-123
: Danish phrasing tweak: “til booking” reads more naturallyUse “til booking” instead of “for booking” for idiomatic Danish.
- "round_robin_host_unavailable_for_booking": "Round Robin-værten er ikke tilgængelig for booking.", + "round_robin_host_unavailable_for_booking": "Round Robin-værten er ikke tilgængelig til booking.",
3416-3417
: “failed_bookings” present in DAGood. Ensure this key exists across all locales to avoid runtime fallbacks (prior verification found gaps).
#!/bin/bash set -euo pipefail base_dir="apps/web/public/static/locales" echo "1) Validate JSON" fd -H --glob 'common.json' "$base_dir" | xargs -n1 jq -e >/dev/null echo "2) Report locales missing 'failed_bookings'" missing=0 while read -r f; do if ! rg -q --fixed-strings '"failed_bookings"' "$f"; then echo "Missing failed_bookings in: $f" missing=1 fi done < <(fd -H --glob 'common.json' "$base_dir") if [ $missing -eq 0 ]; then echo "✔ All locales include 'failed_bookings'." fi
1844-1845
: Fix mistranslation of “Directory Sync”“synkronisering af mapper” implies filesystem folders. Use the product term “Directory Sync” for consistency with other entries (e.g., lines 2453+).
- "only_admin_can_manage_directory_sync": "Kun organisationens administrator eller ejer kan administrere indstillinger for synkronisering af mapper", + "only_admin_can_manage_directory_sync": "Kun organisationens administrator eller ejer kan administrere indstillinger for Directory Sync",
3315-3320
: Standardize PBAC “attributes” terminology to “Attributter”Align PBAC block with consistent wording (“Attribut/Attributter”) used elsewhere. This avoids mixing “Egenskaber” with “organisationsattributter”.
- "pbac_resource_attributes": "Egenskaber", - "pbac_desc_view_organization_attributes": "Se organisationens egenskaber", - "pbac_desc_update_organization_attributes": "Opdater organisationens egenskaber", - "pbac_desc_delete_organization_attributes": "Slet organisationens egenskaber", - "pbac_desc_create_organization_attributes": "Opret organisationens egenskaber", + "pbac_resource_attributes": "Attributter", + "pbac_desc_view_organization_attributes": "Se organisationens attributter", + "pbac_desc_update_organization_attributes": "Opdater organisationens attributter", + "pbac_desc_delete_organization_attributes": "Slet organisationens attributter", + "pbac_desc_create_organization_attributes": "Opret organisationens attributter",apps/web/public/static/locales/bg/common.json (3)
123-123
: Unify “Round‑Robin” branding in messageUse the project’s hyphenated branding in BG. Proposed tweak:
- "round_robin_host_unavailable_for_booking": "Домакинът на ротационния принцип не е наличен за резервация.", + "round_robin_host_unavailable_for_booking": "Round-Robin домакинът не е наличен за резервация.",Run to confirm usage of new key and detect inconsistent spellings:
#!/bin/bash # Key usage rg -n --hidden --glob '!*node_modules*' $'round_robin_host_unavailable_for_booking' # Check inconsistent Round Robin spellings in BG locale rg -n --hidden --glob 'apps/web/public/static/locales/bg/common.json' $'Round Robin|Round-?Robin|Round‑Robin'
352-352
: Grammar: pluralize “групи” and tighten phrasingAlign number agreement and make the sentence more natural in BG. Suggested:
- "round_robin_groups_helper": "Хората в групата се редуват, един човек от всяка група ще се появи на събитието.", + "round_robin_groups_helper": "Хората в групите се редуват; по един човек от всяка група ще присъства на събитието.",
3444-3473
: Webhook metadata: improve natural BG and fix singular/pluralRefine a few labels for clarity and idiomatic BG; align singular “show variable”.
- "webhook_created_at": "Времето на уебхука", + "webhook_created_at": "Време на създаване на уебхука", - "webhook_type": "Слъгът на типа събитие", + "webhook_type": "Идентификатор (slug) на типа събитие", - "webhook_description": "Описанието на събитието, както е описано в настройките на типа събитие", + "webhook_description": "Описанието на събитието, както е зададено в настройките на типа събитие", - "webhook_show_variable": "Покажи наличните променливи", + "webhook_show_variable": "Покажи променлива",Optional: If UI context prefers shorter labels, consider “Създаден на” for webhook_created_at.
apps/web/public/static/locales/eu/common.json (2)
3292-3357
: PBAC symmetry: add missing “manage organization attributes” descriptorFor attributes, you added view/update/delete/create, but the manage variant is still absent. Downstream UIs that compute labels for “manage” will show a blank/undefined string.
Add the missing key:
"pbac_desc_view_organization_attributes": "Ikusi erakundearen atributuak", "pbac_desc_update_organization_attributes": "Eguneratu erakundearen atributuak", "pbac_desc_delete_organization_attributes": "Ezabatu erakundearen atributuak", "pbac_desc_create_organization_attributes": "Sortu erakundearen atributuak", + "pbac_desc_manage_organization_attributes": "Erakundeko atributuetan ekintza guztiak",
875-879
: Namespace mismatch: oauth_ keys won’t resolve if components expect oAuth_ (camelCase)**Components across the app reference oAuth_* keys (e.g., select_oAuth_client, admin_oAuth_description), not oauth_*. Keep the namespace consistent to avoid untranslated labels.
Suggested fix (rename the new keys to match existing oAuth_* convention):
-"oauth_clients": "OAuth bezeroak", -"oauth_clients_description": "Kudeatu zure erakundearen OAuth bezeroak", -"create_oauth_client": "Sortu OAuth bezeroa", -"create_oauth_client_description": "Sortu OAuth bezero berri bat hirugarrenen integrazioetarako" +"oAuth_clients": "OAuth bezeroak", +"oAuth_clients_description": "Kudeatu zure erakundearen OAuth bezeroak", +"create_oAuth_client": "Sortu OAuth bezeroa", +"create_oAuth_client_description": "Sortu OAuth bezero berri bat hirugarrenen integrazioetarako"Additionally, update the deletion message key to match the same namespace:
-"oauth_client_deletion_message": "OAuth bezeroa behar bezala ezabatu da" +"oAuth_client_deletion_message": "OAuth bezeroa behar bezala ezabatu da"Verification helper:
#!/bin/bash # Expect usages for oAuth_* and none for oauth_* unless code was updated intentionally rg -n --fixed-strings 'oAuth_clients|create_oAuth_client|oAuth_client_deletion_message' apps packages rg -n --fixed-strings 'oauth_clients|create_oauth_client|oauth_client_deletion_message' apps packagesapps/web/public/static/locales/km/common.json (9)
875-878
: Use “អង្គការ” instead of “អង្គភាព” in OAuth clients descriptionThis locale uses “អង្គការ” consistently. Update the OAuth block accordingly.
"oauth_clients": "កម្មវិធី OAuth", -"oauth_clients_description": "គ្រប់គ្រងកម្មវិធី OAuth សម្រាប់អង្គភាពរបស់អ្នក", +"oauth_clients_description": "គ្រប់គ្រងកម្មវិធី OAuth សម្រាប់អង្គការរបស់អ្នក", "create_oauth_client": "បង្កើតកម្មវិធី OAuth", "create_oauth_client_description": "បង្កើតកម្មវិធី OAuth ថ្មីសម្រាប់ការតភ្ជាប់ជាមួយកម្មវិធីភាគីទីបី",To catch remaining inconsistencies in this file:
#!/bin/bash # Find undesired term "អង្គភាព" where "អង្គការ" is expected rg -n $'អង្គភាព' apps/web/public/static/locales/km/common.json
1844-1845
: Admin-only notices: “អង្គភាព” → “អង្គការ”Keep organization terminology consistent.
-"only_admin_can_manage_directory_sync": "មានតែអ្នកគ្រប់គ្រងឬម្ចាស់អង្គភាពប៉ុណ្ណោះដែលអាចគ្រប់គ្រងការកំណត់ការធ្វើសមកាលកម្មថត", -"only_admin_can_manage_oauth_clients": "មានតែអ្នកគ្រប់គ្រងឬម្ចាស់អង្គភាពប៉ុណ្ណោះដែលអាចគ្រប់គ្រងកម្មវិធី OAuth", +"only_admin_can_manage_directory_sync": "មានតែអ្នកគ្រប់គ្រងឬម្ចាស់អង្គការប៉ុណ្ណោះដែលអាចគ្រប់គ្រងការកំណត់ការធ្វើសមកាលកម្មថត", +"only_admin_can_manage_oauth_clients": "មានតែអ្នកគ្រប់គ្រងឬម្ចាស់អង្គការប៉ុណ្ណោះដែលអាចគ្រប់គ្រងកម្មវិធី OAuth",
2255-2256
: Don’t translate “Headless” literallyKeep “Headless” in English for clarity.
"use_my_own_form": "ប្រើទម្រង់ផ្ទាល់ខ្លួនរបស់ខ្ញុំ", -"use_our_headless_routing_api": "ប្រើ API ដឹកនាំដោយគ្មានចំណងជើងរបស់យើង និងប្រើទម្រង់ផ្ទាល់ខ្លួនរបស់អ្នកសម្រាប់ការដាក់ស្នើ។", +"use_our_headless_routing_api": "ប្រើ API Routing (Headless) របស់យើង ហើយប្រើទម្រង់ផ្ទាល់ខ្លួនរបស់អ្នកសម្រាប់ការដាក់ស្នើ។",
3315-3319
: Attributes descriptors: “អង្គភាព” → “អង្គការ”Align with established term for Organization.
"pbac_resource_attributes": "គុណលក្ខណៈ", -"pbac_desc_view_organization_attributes": "មើលគុណលក្ខណៈអង្គភាព", +"pbac_desc_view_organization_attributes": "មើលគុណលក្ខណៈអង្គការ", -"pbac_desc_update_organization_attributes": "ធ្វើបច្ចុប្បន្នភាពគុណលក្ខណៈអង្គភាព", +"pbac_desc_update_organization_attributes": "ធ្វើបច្ចុប្បន្នភាពគុណលក្ខណៈអង្គការ", -"pbac_desc_delete_organization_attributes": "លុបគុណលក្ខណៈអង្គភាព", +"pbac_desc_delete_organization_attributes": "លុបគុណលក្ខណៈអង្គការ", -"pbac_desc_create_organization_attributes": "បង្កើតគុណលក្ខណៈអង្គភាព", +"pbac_desc_create_organization_attributes": "បង្កើតគុណលក្ខណៈអង្គការ",
3323-3323
: PBAC roles descriptor: org scope phrasingReplace “ក្នុងក្រុមអង្គភាព” with “ក្នុងអង្គការ”.
-"pbac_desc_manage_roles": "សកម្មភាពទាំងអស់លើតួនាទីក្នុងក្រុមអង្គភាព", +"pbac_desc_manage_roles": "សកម្មភាពទាំងអស់លើតួនាទីក្នុងអង្គការ",
3333-3333
: PBAC event types descriptor: org scope phrasingRemove “ក្រុមអង្គភាព”; use “ក្នុងអង្គការ”.
-"pbac_desc_manage_event_types": "សកម្មភាពទាំងអស់លើប្រភេទព្រឹត្តិការណ៍ក្នុងក្រុមអង្គភាព", +"pbac_desc_manage_event_types": "សកម្មភាពទាំងអស់លើប្រភេទព្រឹត្តិការណ៍ក្នុងអង្គការ",
3341-3341
: PBAC teams descriptor: org scope phrasingKeep “អង្គការ” consistent.
-"pbac_desc_manage_teams": "សកម្មភាពទាំងអស់លើក្រុមក្នុងក្រុមអង្គភាព", +"pbac_desc_manage_teams": "សកម្មភាពទាំងអស់លើក្រុមក្នុងអង្គការ",
3356-3356
: PBAC bookings descriptor: org scope phrasingUse “ក្នុងអង្គការ”.
-"pbac_desc_manage_bookings": "សកម្មភាពទាំងអស់លើការកក់ក្នុងក្រុមអង្គភាព", +"pbac_desc_manage_bookings": "សកម្មភាពទាំងអស់លើការកក់ក្នុងអង្គការ",
352-352
: Khmer phrasing for “take turns” — replace “លើកដៃ”Use “វេនគ្នា” instead of “លើកដៃ”.
- "round_robin_groups_helper": "មនុស្សក្នុងក្រុមនឹងលើកដៃជាបន្តបន្ទាប់ ហើយមនុស្សម្នាក់ពីក្រុមនីមួយៗនឹងចូលរួមក្នុងព្រឹត្តិការណ៍។", + "round_robin_groups_helper": "មនុស្សក្នុងក្រុមនឹងវេនគ្នា ហើយមនុស្សម្នាក់ពីក្រុមនីមួយៗនឹងចូលរួមក្នុងព្រឹត្តិការណ៍។",apps/web/public/static/locales/it/common.json (2)
123-123
: Normalize “round robin” and match existing Italian term for hostUse “organizzatore round robin” for consistency with the rest of the file and prior guidance.
- "round_robin_host_unavailable_for_booking": "L'host Round Robin non è disponibile per la prenotazione.", + "round_robin_host_unavailable_for_booking": "L'organizzatore round robin non è disponibile per la prenotazione.",
3367-3367
: Uniformare “Round Robin” → “round robin”Maintain internal consistency; use lowercase “round robin”.
- "rr_load_balancing_disabled_with_groups": "Il bilanciamento del carico non è disponibile con i gruppi Round Robin", + "rr_load_balancing_disabled_with_groups": "Il bilanciamento del carico non è disponibile con i gruppi round robin",apps/web/public/static/locales/pt-BR/common.json (8)
352-352
: Clareza e fluidez na ajuda de grupos de round-robinAjuste melhora fluidez e remove ambiguidade.
- "round_robin_groups_helper": "As pessoas em um grupo se revezam, uma pessoa de cada grupo aparecerá para o evento.", + "round_robin_groups_helper": "As pessoas de cada grupo se revezam; uma pessoa por grupo será selecionada para o evento."
2255-2256
: Aprimorar copy de “formulário próprio” e “headless routing”Evita repetição de “formulário” e soa mais natural em pt-BR.
- "use_my_own_form": "Usar meu próprio formulário", - "use_our_headless_routing_api": "Use nossa API de roteamento headless e utilize seu próprio formulário para envios.", + "use_my_own_form": "Usar formulário próprio", + "use_our_headless_routing_api": "Use nossa API de roteamento headless com seu próprio formulário para os envios."
3324-3334
: PBAC: padronizar estilo das descrições “manage_*” e reduzir redundânciaAjustes deixam os textos mais naturais e consistentes (evitar “em ... nas ...”, harmonizar “Gerenciar/Todas as ações nas ...”).
- "pbac_desc_manage_roles": "Todas as ações em funções nas equipes da organização", + "pbac_desc_manage_roles": "Todas as ações nas funções das equipes da organização", - "pbac_desc_create_workflows": "Criar e configurar novos fluxos de trabalho", + "pbac_desc_create_workflows": "Criar e configurar fluxos de trabalho", - "pbac_desc_manage_workflows": "Acesso completo de gerenciamento a todos os fluxos de trabalho", + "pbac_desc_manage_workflows": "Gerenciar todos os fluxos de trabalho", - "pbac_desc_manage_event_types": "Todas as ações em tipos de eventos nas equipes da organização", + "pbac_desc_manage_event_types": "Todas as ações nos tipos de evento das equipes da organização"
3341-3341
: PBAC teams: remover repetição “em equipes nas equipes”Simplificação corrige a construção repetitiva.
- "pbac_desc_manage_teams": "Todas as ações em equipes nas equipes da organização", + "pbac_desc_manage_teams": "Todas as ações nas equipes da organização"
3356-3356
: Padronizar “Reservas” (evitar “agendamentos”)O arquivo usa largamente “Reservas”.
- "pbac_desc_manage_bookings": "Todas as ações em agendamentos nas equipes da organização", + "pbac_desc_manage_bookings": "Todas as ações em reservas nas equipes da organização"
3416-3416
: “Reservas falhas” → “Reservas com falha”Forma padrão em pt-BR com adjetivo posposto.
- "failed_bookings": "Reservas falhas", + "failed_bookings": "Reservas com falha",
3444-3474
: Webhook metadata: padronizar rótulos, remover artigos e usar “E‑mail”
- Remover “O ” inicial para rótulos curtos.
- Usar “E‑mail” (com hífen).
- Tornar descrições mais específicas.
- Padronizar “Evento e reserva”, “Equipes”.
- "webhook_trigger_event": "O nome do evento de gatilho (ex.: BOOKING_CREATED, BOOKING_CANCELLED)", - "webhook_created_at": "O horário do webhook", - "webhook_type": "O slug do tipo de evento", - "webhook_title": "O nome do tipo de evento", - "webhook_start_time": "O horário de início do evento", - "webhook_end_time": "O horário de término do evento", - "webhook_description": "A descrição do evento conforme descrito nas configurações do tipo de evento", - "webhook_location": "Local do evento", - "webhook_uid": "O UID da reserva", - "webhook_reschedule_uid": "O UID para reagendamento", + "webhook_trigger_event": "Nome do evento de gatilho (ex.: BOOKING_CREATED, BOOKING_CANCELLED)", + "webhook_created_at": "Criado em", + "webhook_type": "Slug do tipo de evento", + "webhook_title": "Nome do tipo de evento", + "webhook_start_time": "Horário de início do evento", + "webhook_end_time": "Horário de término do evento", + "webhook_description": "Descrição do evento (conforme o tipo de evento)", + "webhook_location": "Local do evento", + "webhook_uid": "UID da reserva", + "webhook_reschedule_uid": "UID de reagendamento", @@ - "webhook_organizer_email": "Email do organizador", - "webhook_organizer_timezone": "Fuso horário do organizador (ex.: 'America/New_York', 'Asia/Kolkata')", - "webhook_organizer_locale": "Idioma do organizador (ex.: 'en', 'fr')", + "webhook_organizer_email": "E‑mail do organizador", + "webhook_organizer_timezone": "Fuso horário do organizador (ex.: 'America/New_York', 'Asia/Kolkata')", + "webhook_organizer_locale": "Idioma do organizador (ex.: 'pt-BR', 'en')", @@ - "webhook_attendee_email": "Email do primeiro participante", + "webhook_attendee_email": "E‑mail do primeiro participante", @@ - "webhook_team_name": "Nome da equipe reservada", - "webhook_team_members": "Membros da equipe reservada", - "webhook_video_call_url": "URL da chamada de vídeo para a reunião", + "webhook_team_name": "Nome da equipe (reserva)", + "webhook_team_members": "Membros da equipe (reserva)", + "webhook_video_call_url": "URL da chamada de vídeo", @@ - "webhook_event_and_booking": "Evento e Agendamento", + "webhook_event_and_booking": "Evento e reserva", @@ - "webhook_teams": "Times", + "webhook_teams": "Equipes", @@ - "booking_status": "Status do agendamento", + "booking_status": "Status da reserva",
1844-1845
: Unificar “proprietário” vs. “dono” para consistênciaEstas linhas já usam “proprietário”. Ajuste as linhas adjacentes (1842–1843) para padronizar terminologia.
- "only_admin_can_see_members_of_org": "Esta Organização é privada, e apenas o administrador ou dono da organização podem ver seus membros.", + "only_admin_can_see_members_of_org": "Esta Organização é privada, e apenas o administrador ou proprietário da organização podem ver seus membros.", - "only_admin_can_manage_sso_org": "Apenas o administrador ou dono da organização podem gerenciar configurações de SSO", + "only_admin_can_manage_sso_org": "Apenas o administrador ou proprietário da organização podem gerenciar configurações de SSO",apps/web/public/static/locales/et/common.json (4)
3324-3324
: Improve PBAC scope phrasing; drop clunky “organisatsiooni meeskondades”.More natural Estonian: use “organisatsioonis” or “organisatsiooni meeskondadega” as appropriate.
- "pbac_desc_manage_roles": "Kõik toimingud rollidega organisatsiooni meeskondades", + "pbac_desc_manage_roles": "Kõik toimingud rollidega organisatsioonis", - "pbac_desc_manage_event_types": "Kõik toimingud sündmuste tüüpidega organisatsiooni meeskondades", + "pbac_desc_manage_event_types": "Kõik toimingud sündmuste tüüpidega organisatsioonis", - "pbac_desc_manage_teams": "Kõik toimingud meeskondadega organisatsiooni meeskondades", + "pbac_desc_manage_teams": "Kõik toimingud organisatsiooni meeskondadega", - "pbac_desc_manage_bookings": "Kõik toimingud broneeringutega organisatsiooni meeskondades", + "pbac_desc_manage_bookings": "Kõik toimingud broneeringutega organisatsioonis"Also applies to: 3334-3334, 3342-3342, 3357-3357
121-123
: Use “võõrustaja” instead of “host” for consistency.Normalize host terminology across this cluster.
Apply:
- "fixed_hosts_unavailable_for_booking": "Mõned fikseeritud hostid ei ole broneerimiseks saadaval.", + "fixed_hosts_unavailable_for_booking": "Mõned fikseeritud võõrustajad ei ole broneerimiseks saadaval.", - "round_robin_host_unavailable_for_booking": "Round Robin'i host ei ole broneerimiseks saadaval.", + "round_robin_host_unavailable_for_booking": "Round Robin'i võõrustaja ei ole broneerimiseks saadaval."To audit remaining “host/hostid” occurrences:
#!/bin/bash rg -n '"[^"]*host[^"]*":\s*"[^"]*host[^"]*"' apps/web/public/static/locales/et/common.json -A0 -B0 rg -n 'võõrustaj' apps/web/public/static/locales/et/common.json -A0 -B0
2255-2256
: Normalize “routing” to “marsruutimine”.Use “marsruutimine/marsruutimise” across the locale; “suunamine” is inconsistent with the rest of the file.
- "use_our_headless_routing_api": "Kasuta meie peata suunamise API-t ja omaenda vormi esitamiseks.", + "use_our_headless_routing_api": "Kasuta meie peata marsruutimise API‑t ja oma vormi esitamiseks.",
3445-3463
: Standardize webhook terminology and fix nouns.Use “veebihaak/veebihaagi”, “lühinimi” for slug, “Ümberajastamise”, and “lokaat” for locale.
- "webhook_created_at": "Veebikonksu loomise aeg", + "webhook_created_at": "Veebihaagi loomise aeg", - "webhook_type": "Sündmuse tüübi slug", + "webhook_type": "Sündmuse tüübi lühinimi", - "webhook_reschedule_uid": "Ümberplaneerimise UID", + "webhook_reschedule_uid": "Ümberajastamise UID", - "webhook_organizer_locale": "Korraldaja lokaad (nt 'en', 'fr')", + "webhook_organizer_locale": "Korraldaja lokaat (nt 'en', 'fr')", - "webhook_attendee_locale": "Esimese osaleja lokaad", + "webhook_attendee_locale": "Esimese osaleja lokaat",apps/web/public/static/locales/ru/common.json (3)
3324-3324
: PBAC scope wording should be “в организации”, not “в командах организации”This contradicts the stated scope update and past suggestion. Update to organization scope.
- "pbac_desc_manage_roles": "Все действия с ролями в командах организации", + "pbac_desc_manage_roles": "Все действия с ролями в организации",
3356-3356
: PBAC bookings scope: adjust to organizationSame scope correction as roles: organization-level, not teams-in-organization.
- "pbac_desc_manage_bookings": "Все действия с бронированиями в командах организации", + "pbac_desc_manage_bookings": "Все действия с бронированиями в организации",
123-123
: Standardize “host” terminology in Round Robin contextPrefer “организатор” over “хост” to align with the rest of RU locale and avoid mixing terms.
- "round_robin_host_unavailable_for_booking": "Хост Round Robin недоступен для бронирования.", + "round_robin_host_unavailable_for_booking": "Организатор Round Robin недоступен для бронирования.",apps/web/public/static/locales/pt/common.json (8)
123-123
: PT-PT consistency: prefer “reserva” (and “de Round Robin”).Normalize away from pt-BR “agendamento”.
- "round_robin_host_unavailable_for_booking": "O anfitrião do Round Robin não está disponível para agendamento.", + "round_robin_host_unavailable_for_booking": "O anfitrião de Round Robin não está disponível para reserva.",
352-352
: Round-robin groups helper: PT-PT phrasing.Avoid Brazilianisms (“em um”, “se revezam”). Use PT-PT.
- "round_robin_groups_helper": "As pessoas em um grupo se revezam, uma pessoa de cada grupo aparecerá no evento.", + "round_robin_groups_helper": "As pessoas num grupo revezam‑se; uma pessoa de cada grupo aparecerá no evento.",
875-879
: OAuth clients: normalize to PT-PT and style/casing.Use “Gerir”, sentence-case, and “eliminado”.
- "oauth_clients": "Clientes OAuth", - "oauth_clients_description": "Gerencie clientes OAuth para sua organização", - "create_oauth_client": "Criar Cliente OAuth", - "create_oauth_client_description": "Crie um novo cliente OAuth para integrações de terceiros", - "oauth_client_deletion_message": "Cliente OAuth excluído com sucesso", + "oauth_clients": "Clientes OAuth", + "oauth_clients_description": "Gerir clientes OAuth da sua organização", + "create_oauth_client": "Criar cliente OAuth", + "create_oauth_client_description": "Criar um novo cliente OAuth para integrações de terceiros", + "oauth_client_deletion_message": "Cliente OAuth eliminado com sucesso",
1844-1845
: Admin-only notices: PT-PT (“gerir”, “do diretório”).Replace “gerenciar” and adjust preposition.
- "only_admin_can_manage_directory_sync": "Apenas o administrador ou proprietário da organização pode gerenciar as configurações de sincronização de diretório", - "only_admin_can_manage_oauth_clients": "Apenas o administrador ou proprietário da organização pode gerenciar clientes OAuth", + "only_admin_can_manage_directory_sync": "Apenas o administrador ou o proprietário da organização pode gerir as configurações de sincronização do diretório", + "only_admin_can_manage_oauth_clients": "Apenas o administrador ou o proprietário da organização pode gerir clientes OAuth",
2255-2256
: Routing/embedding copy: align with “encaminhamento” and PT-PT.Use “o meu”, “a nossa”, and clarify headless.
- "use_my_own_form": "Usar meu próprio formulário", - "use_our_headless_routing_api": "Use nossa API de roteamento headless e utilize seu próprio formulário para envios.", + "use_my_own_form": "Usar o meu próprio formulário", + "use_our_headless_routing_api": "Use a nossa API de encaminhamento sem interface (headless) e use o seu próprio formulário para envios.",
3315-3334
: PBAC descriptions: normalize to PT-PT (Ver/Eliminar/Gestão/Equipas/Reservas).Replace pt-BR forms and literal “gerenciamento”.
- "pbac_resource_attributes": "Atributos", - "pbac_desc_view_organization_attributes": "Visualizar atributos da organização", + "pbac_resource_attributes": "Atributos", + "pbac_desc_view_organization_attributes": "Ver atributos da organização", "pbac_desc_update_organization_attributes": "Atualizar atributos da organização", - "pbac_desc_delete_organization_attributes": "Excluir atributos da organização", + "pbac_desc_delete_organization_attributes": "Eliminar atributos da organização", "pbac_desc_create_organization_attributes": "Criar atributos da organização", - "pbac_desc_manage_roles": "Todas as ações em funções nas equipes da organização", + "pbac_desc_manage_roles": "Todas as ações em funções nas equipas da organização", "pbac_desc_create_workflows": "Criar e configurar novos fluxos de trabalho", - "pbac_desc_view_workflows": "Visualizar fluxos de trabalho existentes e suas configurações", + "pbac_desc_view_workflows": "Ver fluxos de trabalho existentes e as suas configurações", "pbac_desc_update_workflows": "Editar e modificar configurações de fluxos de trabalho", - "pbac_desc_delete_workflows": "Remover fluxos de trabalho do sistema", + "pbac_desc_delete_workflows": "Eliminar fluxos de trabalho do sistema", - "pbac_desc_manage_workflows": "Acesso completo de gerenciamento a todos os fluxos de trabalho", + "pbac_desc_manage_workflows": "Acesso completo de gestão a todos os fluxos de trabalho", - "pbac_desc_manage_event_types": "Todas as ações em tipos de eventos nas equipes da organização", + "pbac_desc_manage_event_types": "Todas as ações em tipos de eventos nas equipas da organização", - "pbac_desc_manage_teams": "Todas as ações em equipes da organização", + "pbac_desc_manage_teams": "Todas as ações em equipas da organização", - "pbac_desc_manage_bookings": "Todas as ações em agendamentos nas equipes da organização", + "pbac_desc_manage_bookings": "Todas as ações em reservas nas equipas da organização",Also applies to: 3341-3341, 3356-3356
3416-3416
: Grammar: “Reservas falhadas”.Fix plural adjective agreement in PT-PT.
- "failed_bookings": "Reservas falhas", + "failed_bookings": "Reservas falhadas",
3445-3474
: Webhooks + booking status: fix “equipe”→“equipa”, prefer “Data de criação…”, and use “reserva”.Align with project conventions (“equipa”, “reserva”, PT-PT phrasing).
- "webhook_created_at": "A hora do webhook", + "webhook_created_at": "Data de criação do webhook", @@ - "webhook_event_and_booking": "Evento e agendamento", + "webhook_event_and_booking": "Evento e reserva", @@ - "webhook_team_name": "Nome da equipe reservada", - "webhook_team_members": "Membros da equipe reservada", + "webhook_team_name": "Nome da equipa reservada", + "webhook_team_members": "Membros da equipa reservada", @@ - "booking_status": "Status do agendamento", + "booking_status": "Estado da reserva",apps/web/public/static/locales/fr/common.json (2)
123-123
: Standardize “round-robin” casing/hyphenationUse the lowercase, hyphenated form for consistency with other occurrences (e.g., “Hôtes round-robin” Line 1951).
- "round_robin_host_unavailable_for_booking": "L'hôte Round Robin n'est pas disponible pour la réservation.", + "round_robin_host_unavailable_for_booking": "L'hôte round-robin n'est pas disponible pour la réservation.",
3444-3474
: Webhook metadata terminology consistency (E‑mail, “p. ex.”, Horodatage, Locale)Apply consistent French terminology and example formatting. Also prefer “Langue (locale)” to clarify “locale” for FR readers.
- "webhook_trigger_event": "Le nom de l'événement déclencheur (par ex., BOOKING_CREATED, BOOKING_CANCELLED)", - "webhook_created_at": "L'heure du webhook", + "webhook_trigger_event": "Nom de l'événement déclencheur (p. ex. BOOKING_CREATED, BOOKING_CANCELLED)", + "webhook_created_at": "Horodatage du webhook", - "webhook_organizer_email": "Email de l'organisateur", - "webhook_organizer_timezone": "Fuseau horaire de l'organisateur (par ex., 'America/New_York', 'Asia/Kolkata')", - "webhook_organizer_locale": "Locale de l'organisateur (par ex., 'en', 'fr')", + "webhook_organizer_email": "E‑mail de l'organisateur", + "webhook_organizer_timezone": "Fuseau horaire de l'organisateur (p. ex. « America/New_York », « Asia/Kolkka »)", + "webhook_organizer_locale": "Langue (locale) de l'organisateur (p. ex. « en », « fr »)", - "webhook_attendee_email": "Email du premier participant", - "webhook_attendee_timezone": "Fuseau horaire du premier participant", - "webhook_attendee_locale": "Locale du premier participant", + "webhook_attendee_email": "E‑mail du premier participant", + "webhook_attendee_timezone": "Fuseau horaire du premier participant (p. ex. « Europe/Paris »)", + "webhook_attendee_locale": "Langue (locale) du premier participant",Optional: also replace straight single quotes in examples with French guillemets « » (as shown) for typographic consistency.
apps/web/public/static/locales/no/common.json (2)
123-123
: Revert to Norwegian style (“bestilling” instead of “booking”)This regressed from the previously suggested style consistency.
Apply:
- "round_robin_host_unavailable_for_booking": "Round Robin-vert er ikke tilgjengelig for booking.", + "round_robin_host_unavailable_for_booking": "Round Robin-vert er ikke tilgjengelig for bestilling.",
3324-3324
: Align PBAC phrasing and event type terminologyRe-apply earlier phrasing for consistency: use “organisasjonens team” and “hendelsestyper”.
- "pbac_desc_manage_roles": "Alle handlinger på roller på tvers av organisasjonsteam", + "pbac_desc_manage_roles": "Alle handlinger på roller på tvers av organisasjonens team",- "pbac_desc_manage_event_types": "Alle handlinger på arrangementstyper på tvers av organisasjonsteam", + "pbac_desc_manage_event_types": "Alle handlinger på hendelsestyper på tvers av organisasjonens team",- "pbac_desc_manage_teams": "Alle handlinger på team på tvers av organisasjonsteam", + "pbac_desc_manage_teams": "Alle handlinger på team på tvers av organisasjonens team",- "pbac_desc_manage_bookings": "Alle handlinger på bookinger på tvers av organisasjonsteam", + "pbac_desc_manage_bookings": "Alle handlinger på bookinger på tvers av organisasjonens team",Also applies to: 3334-3334, 3342-3342, 3356-3356
apps/web/public/static/locales/de/common.json (6)
123-123
: Standardize Round‑Robin term and host role; hyphenate and use “Veranstalter”.Use the established “Round‑Robin‑Veranstalter” wording (see prior feedback).
- "round_robin_host_unavailable_for_booking": "Round Robin-Gastgeber ist für Buchungen nicht verfügbar.", + "round_robin_host_unavailable_for_booking": "Round‑Robin‑Veranstalter ist für Buchungen nicht verfügbar.",
3324-3324
: PBAC scope phrasing: prefer “innerhalb der Organisation”.Use the simpler, previously suggested phrasing for consistency.
- "pbac_desc_manage_roles": "Alle Aktionen für Rollen über Organisationsteams hinweg", + "pbac_desc_manage_roles": "Alle Aktionen für Rollen innerhalb der Organisation",
3334-3334
: PBAC scope phrasing: prefer “innerhalb der Organisation”.- "pbac_desc_manage_event_types": "Alle Aktionen für Ereignistypen über Organisationsteams hinweg", + "pbac_desc_manage_event_types": "Alle Aktionen für Ereignistypen innerhalb der Organisation",
3342-3342
: PBAC scope phrasing: prefer “innerhalb der Organisation”.- "pbac_desc_manage_teams": "Alle Aktionen für Teams über Organisationsteams hinweg", + "pbac_desc_manage_teams": "Alle Aktionen für Teams innerhalb der Organisation",
3356-3356
: PBAC scope phrasing: prefer “innerhalb der Organisation”.- "pbac_desc_manage_bookings": "Alle Aktionen für Buchungen über Organisationsteams hinweg", + "pbac_desc_manage_bookings": "Alle Aktionen für Buchungen innerhalb der Organisation",
3367-3367
: Localize “Load Balancing” and hyphenate Round‑Robin‑Gruppen.Matches earlier recommendation.
- "rr_load_balancing_disabled_with_groups": "Load Balancing ist mit Round Robin Gruppen nicht verfügbar", + "rr_load_balancing_disabled_with_groups": "Lastverteilung ist mit Round‑Robin‑Gruppen nicht verfügbar",apps/web/public/static/locales/ro/common.json (4)
3445-3475
: Webhook labels: clarity + polite tone + “rezervare” term
- Prefer timestamp label “Creat la” over “Ora webhook‑ului”.
- Use polite imperatives (“Ascundeți/Afișați”).
- Avoid “programare”; use “rezervare” to match the rest of the file.
- “Statistici” is fine; prefer “Starea rezervării” over “Status programare”.
- "webhook_created_at": "Ora webhook-ului", + "webhook_created_at": "Creat la", @@ - "webhook_hide_variables": "Ascunde variabilele", - "webhook_show_variable": "Afișează variabilele disponibile", + "webhook_hide_variables": "Ascundeți variabilele", + "webhook_show_variable": "Afișați variabilele disponibile", @@ - "webhook_event_and_booking": "Eveniment și programare", + "webhook_event_and_booking": "Eveniment și rezervare", @@ - "booking_status": "Status programare", + "booking_status": "Starea rezervării",
875-878
: Switch to polite/plural tone (“dvs.”) for OAuth UIThese entries use informal “Gestionează/Creează … organizația ta”. The Romanian UI elsewhere uses polite/plural.
- "oauth_clients_description": "Gestionează clienții OAuth pentru organizația ta", - "create_oauth_client": "Creează un client OAuth", - "create_oauth_client_description": "Creează un nou client OAuth pentru integrări terțe", + "oauth_clients_description": "Gestionați clienții OAuth pentru organizația dvs.", + "create_oauth_client": "Creați un client OAuth", + "create_oauth_client_description": "Creați un nou client OAuth pentru integrări terțe",
2255-2256
: Revert regression to informal tone; prefer polite/pluralThese were previously updated to polite (“Folosiți … dvs.”). Current strings reverted to informal “Folosește … meu/tău”.
- "use_my_own_form": "Folosește propriul meu formular", - "use_our_headless_routing_api": "Folosește API-ul nostru de rutare fără interfață și propriul tău formular pentru trimitere.", + "use_my_own_form": "Folosiți propriul dvs. formular", + "use_our_headless_routing_api": "Folosiți API‑ul nostru de rutare fără interfață și propriul dvs. formular pentru trimitere.",
3316-3334
: PBAC descriptors: unify to polite/plural verbsUse “Vizualizați/Actualizați/Ștergeți/Creați/Eliminați/Editați” for consistency with UI tone.
- "pbac_desc_view_organization_attributes": "Vizualizează atributele organizației", - "pbac_desc_update_organization_attributes": "Actualizează atributele organizației", - "pbac_desc_delete_organization_attributes": "Șterge atributele organizației", - "pbac_desc_create_organization_attributes": "Creează atribute pentru organizație", + "pbac_desc_view_organization_attributes": "Vizualizați atributele organizației", + "pbac_desc_update_organization_attributes": "Actualizați atributele organizației", + "pbac_desc_delete_organization_attributes": "Ștergeți atributele organizației", + "pbac_desc_create_organization_attributes": "Creați atribute pentru organizație", @@ - "pbac_desc_manage_roles": "Toate acțiunile asupra rolurilor din echipele organizației", + "pbac_desc_manage_roles": "Toate acțiunile asupra rolurilor din echipele organizației", @@ - "pbac_desc_create_workflows": "Creează și configurează fluxuri de lucru noi", - "pbac_desc_view_workflows": "Vizualizează fluxurile de lucru existente și configurațiile acestora", - "pbac_desc_update_workflows": "Editează și modifică setările fluxurilor de lucru", - "pbac_desc_delete_workflows": "Elimină fluxurile de lucru din sistem", - "pbac_desc_manage_workflows": "Acces complet pentru gestionarea tuturor fluxurilor de lucru", + "pbac_desc_create_workflows": "Creați și configurați fluxuri de lucru noi", + "pbac_desc_view_workflows": "Vizualizați fluxurile de lucru existente și configurațiile acestora", + "pbac_desc_update_workflows": "Editați și modificați setările fluxurilor de lucru", + "pbac_desc_delete_workflows": "Eliminați fluxurile de lucru din sistem", + "pbac_desc_manage_workflows": "Acces complet de gestionare pentru toate fluxurile de lucru", @@ - "pbac_desc_manage_event_types": "Toate acțiunile asupra tipurilor de evenimente din echipele organizației", + "pbac_desc_manage_event_types": "Toate acțiunile asupra tipurilor de evenimente din echipele organizației", @@ - "pbac_desc_manage_teams": "Toate acțiunile asupra echipelor din echipele organizației", + "pbac_desc_manage_teams": "Toate acțiunile asupra echipelor din echipele organizației", @@ - "pbac_desc_manage_bookings": "Toate acțiunile asupra rezervărilor din echipele organizației", + "pbac_desc_manage_bookings": "Toate acțiunile asupra rezervărilor din echipele organizației",Also applies to: 3342-3342, 3356-3356
apps/web/public/static/locales/es/common.json (3)
123-123
: Spanish phrasing tweak for renamed round-robin keyMore natural with definite article.
-"round_robin_host_unavailable_for_booking": "El anfitrión de Round Robin no está disponible para reservas.", +"round_robin_host_unavailable_for_booking": "El anfitrión de Round Robin no está disponible para la reserva.",
875-878
: Optional tone consistency (“Administra” vs “Gestiona”)Spanish in this file often uses “Administra…”; consider aligning.
"oauth_clients": "Clientes OAuth", -"oauth_clients_description": "Gestiona los clientes OAuth para tu organización", +"oauth_clients_description": "Administra los clientes OAuth para tu organización", "create_oauth_client": "Crear cliente OAuth", "create_oauth_client_description": "Crea un nuevo cliente OAuth para integraciones de terceros",
3325-3329
: Unify PBAC workflow wording (singular “configuración” and clearer order)Apply consistent phrasing used across permissions.
-"pbac_desc_view_workflows": "Ver flujos de trabajo existentes y sus configuraciones", -"pbac_desc_update_workflows": "Editar y modificar configuraciones de flujos de trabajo", -"pbac_desc_manage_workflows": "Acceso completo de gestión a todos los flujos de trabajo", +"pbac_desc_view_workflows": "Ver flujos de trabajo existentes y su configuración", +"pbac_desc_update_workflows": "Editar y modificar la configuración de los flujos de trabajo", +"pbac_desc_manage_workflows": "Acceso de gestión completo a todos los flujos de trabajo",apps/web/public/static/locales/nl/common.json (3)
123-123
: Hyphenation: “round-robin-host”Keep “round-robin” hyphenated and as a compound noun in NL.
- "round_robin_host_unavailable_for_booking": "Round Robin host is niet beschikbaar voor boekingen.", + "round_robin_host_unavailable_for_booking": "Round-robin-host is niet beschikbaar voor boekingen."
875-878
: Consistency: “OAuth‑client(s)” + formal register (“uw”)Hyphenate “OAuth‑client(s)” and use “uw” in admin contexts.
- "oauth_clients": "OAuth clients", - "oauth_clients_description": "Beheer OAuth clients voor je organisatie", - "create_oauth_client": "OAuth client aanmaken", - "create_oauth_client_description": "Maak een nieuwe OAuth client voor integraties met derden", + "oauth_clients": "OAuth-clients", + "oauth_clients_description": "Beheer OAuth-clients voor uw organisatie", + "create_oauth_client": "OAuth-client aanmaken", + "create_oauth_client_description": "Maak een nieuwe OAuth-client voor integraties met derden",
1844-1845
: Consistency: “mapsynchronisatie” + “OAuth‑clients”Align terminology with existing NL labels and prior strings.
- "only_admin_can_manage_directory_sync": "Alleen de beheerder of eigenaar van de organisatie kan directory sync-instellingen beheren", - "only_admin_can_manage_oauth_clients": "Alleen de beheerder of eigenaar van de organisatie kan OAuth clients beheren", + "only_admin_can_manage_directory_sync": "Alleen de beheerder of eigenaar van de organisatie kan mapsynchronisatie-instellingen beheren", + "only_admin_can_manage_oauth_clients": "Alleen de beheerder of eigenaar van de organisatie kan OAuth-clients beheren",apps/web/public/static/locales/fi/common.json (2)
123-123
: Finnish hyphenation: use “Round-robin-isäntä” (no space before hyphen).Improve typography and consistency with prior guidance.
- "round_robin_host_unavailable_for_booking": "Round Robin -isäntä ei ole varattavissa.", + "round_robin_host_unavailable_for_booking": "Round-robin-isäntä ei ole varattavissa.",
1844-1845
: Use “ylläpitäjä” consistently (not “järjestelmänvalvoja”).Aligns with the rest of this locale file and prior guidance.
- "only_admin_can_manage_directory_sync": "Vain organisaation järjestelmänvalvoja tai omistaja voi hallita hakemiston synkronointiasetuksia", - "only_admin_can_manage_oauth_clients": "Vain organisaation järjestelmänvalvoja tai omistaja voi hallita OAuth-asiakkaita", + "only_admin_can_manage_directory_sync": "Vain organisaation ylläpitäjä tai omistaja voi hallita hakemistosynkronoinnin asetuksia", + "only_admin_can_manage_oauth_clients": "Vain organisaation ylläpitäjä tai omistaja voi hallita OAuth-asiakkaita",apps/web/public/static/locales/ca/common.json (3)
3383-3383
: Use imperative voice for action label (“Afegeix …”).Align with dominant pattern used by “add_*” strings.
- "add_group": "Afegir grup", + "add_group": "Afegeix un grup",
2255-2256
: Fix terminology and grammar for “headless routing” and article agreement.Reuse the established terms “encaminament” and “sense interfície”, and correct “les enviaments” → “els enviaments”.
- "use_my_own_form": "Utilitza el meu propi formulari", - "use_our_headless_routing_api": "Utilitza la nostra API de routing headless i fes servir el teu propi formulari per a les enviaments.", + "use_my_own_form": "Utilitza el meu propi formulari", + "use_our_headless_routing_api": "Utilitza la nostra API d'encaminament sense interfície i fes servir el teu propi formulari per als enviaments.",
3324-3324
: Tighten PBAC descriptions; avoid “a través dels equips…” and redundancies.These read awkwardly in Catalan. Prefer “… dels equips de l’organització”.
- "pbac_desc_manage_roles": "Totes les accions sobre rols a través dels equips de l'organització", + "pbac_desc_manage_roles": "Totes les accions sobre els rols dels equips de l'organització", - "pbac_desc_manage_event_types": "Totes les accions sobre tipus d'esdeveniments a través dels equips de l'organització", + "pbac_desc_manage_event_types": "Totes les accions sobre els tipus d'esdeveniments dels equips de l'organització", - "pbac_desc_manage_teams": "Totes les accions sobre equips a través dels equips de l'organització", + "pbac_desc_manage_teams": "Totes les accions sobre els equips de l'organització", - "pbac_desc_manage_bookings": "Totes les accions sobre reserves a través dels equips de l'organització", + "pbac_desc_manage_bookings": "Totes les accions sobre les reserves dels equips de l'organització",Also applies to: 3333-3333, 3341-3341, 3356-3356
@@ -120,7 +120,7 @@ | |||
"already_signed_up_for_this_booking_error": "Ja t'has registrat per a aquesta reserva", | |||
"hosts_unavailable_for_booking": "Alguns dels amfitrions no estan disponibles per a la reserva", | |||
"fixed_hosts_unavailable_for_booking": "Alguns dels amfitrions fixos no estan disponibles per a la reserva.", | |||
"round_robin_hosts_unavailable_for_booking": "Cap amfitrió de Round Robin està disponible per a la reserva.", | |||
"round_robin_host_unavailable_for_booking": "L'amfitrió de Round Robin no està disponible per a la reserva.", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Consistency: “Round Robin” casing.
Elsewhere you use “round robin” in lowercase. Consider unifying for consistency.
If you want to align with the prevalent style:
- "round_robin_host_unavailable_for_booking": "L'amfitrió de Round Robin no està disponible per a la reserva.",
+ "round_robin_host_unavailable_for_booking": "L'amfitrió de round robin no està disponible per a la reserva.",
Optionally verify usage patterns:
🏁 Script executed:
#!/bin/bash
# Inspect occurrences of "Round Robin" vs "round robin" across Catalan locale
rg -n $'Round[- ]Robin|round[- ]robin' apps/web/public/static/locales/ca/common.json
Length of output: 4019
🏁 Script executed:
#!/bin/bash
# Locate the English common.json
fd -e json common.json apps/web/public/static/locales/en
# Inspect the English text for round_robin_hosts
grep -R -A2 '"round_robin_hosts"' -n apps/web/public/static/locales/en/common.json
Length of output: 343
Consistency: unify “round robin” casing
Most Catalan entries use lowercase “round robin” (without hyphen), so update the instance at line 123 to match.
- File: apps/web/public/static/locales/ca/common.json
Line: 123
- "round_robin_host_unavailable_for_booking": "L'amfitrió de Round Robin no està disponible per a la reserva.",
+ "round_robin_host_unavailable_for_booking": "L'amfitrió de round robin no està disponible per a la reserva.",
📝 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.
"round_robin_host_unavailable_for_booking": "L'amfitrió de Round Robin no està disponible per a la reserva.", | |
"round_robin_host_unavailable_for_booking": "L'amfitrió de round robin no està disponible per a la reserva.", |
🤖 Prompt for AI Agents
In apps/web/public/static/locales/ca/common.json around line 123, the Catalan
translation uses "Round Robin" (title case); update it to lowercase "round
robin" to match the project's existing casing convention — edit the value so it
reads: "L'amfitrió de round robin no està disponible per a la reserva." and save
the JSON file ensuring the string/quotes and punctuation remain valid.
"webhook_created_at": "Tidspunktet for webhooken", | ||
"webhook_type": "Slug for begivenhedstypen", | ||
"webhook_title": "Navnet på begivenhedstypen", | ||
"webhook_start_time": "Begivenhedens starttidspunkt", | ||
"webhook_end_time": "Begivenhedens sluttidspunkt", | ||
"webhook_description": "Begivenhedens beskrivelse som angivet i indstillingerne for begivenhedstypen", | ||
"webhook_location": "Begivenhedens placering", | ||
"webhook_uid": "UID for bookingen", | ||
"webhook_reschedule_uid": "UID til ombooking", | ||
"webhook_cancellation_reason": "Årsag til aflysning", | ||
"webhook_rejection_reason": "Årsag til afvisning", | ||
"webhook_organizer_name": "Navn på arrangøren", | ||
"webhook_organizer_email": "E-mail på arrangøren", | ||
"webhook_organizer_timezone": "Tidszone for arrangøren (f.eks. 'America/New_York', 'Asia/Kolkata')", | ||
"webhook_organizer_locale": "Locale for arrangøren (f.eks. 'en', 'fr')", | ||
"webhook_attendee_name": "Navn på den første deltager", | ||
"webhook_attendee_email": "E-mail på den første deltager", | ||
"webhook_attendee_timezone": "Tidszone for den første deltager", | ||
"webhook_attendee_locale": "Locale for den første deltager", | ||
"webhook_team_name": "Navn på det bookede team", | ||
"webhook_team_members": "Medlemmer af det bookede team", | ||
"webhook_video_call_url": "Videokalds-URL til mødet", | ||
"webhook_hide_variables": "Skjul variabler", | ||
"webhook_show_variable": "Vis tilgængelige variabler", | ||
"webhook_event_and_booking": "Begivenhed og booking", | ||
"webhook_people": "Personer", | ||
"webhook_teams": "Teams", | ||
"webhook_metadata": "Metadata", | ||
"stats": "Statistik", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Webhook metadata keys: solid coverage; minor wording tweak and cross-locale verification
- Minor style improvement for created timestamp:
- “Tidspunktet for webhooken” → “Oprettelsestidspunkt for webhooken”.
- Please verify all newly added webhook_* keys are present across locales to prevent fallback strings.
Apply wording tweak:
- "webhook_created_at": "Tidspunktet for webhooken",
+ "webhook_created_at": "Oprettelsestidspunkt for webhooken",
Run verification across locales:
🏁 Script executed:
#!/bin/bash
set -euo pipefail
base_dir="apps/web/public/static/locales"
# Collect webhook_* keys from Danish file (source of truth for this PR)
src="apps/web/public/static/locales/da/common.json"
mapfile -t webhook_keys < <(jq -r 'keys[]' "$src" | grep '^webhook_')
echo "Checking ${#webhook_keys[@]} webhook_* keys across locales..."
missing=false
while read -r file; do
locale=$(basename "$(dirname "$file")")
for key in "${webhook_keys[@]}"; do
if ! jq -e --arg k "$key" 'has($k)' "$file" >/dev/null; then
echo "Missing key $key in locale '$locale' ($file)"
missing=true
fi
done
done < <(fd -H --glob 'common.json' "$base_dir")
if [ "$missing" = false ]; then
echo "✔ All webhook_* keys are present across all locales."
fi
Length of output: 332
I’ve updated the verification script to avoid the process-substitution error and correctly load the keys before checking each locale. Let’s rerun it:
This will confirm whether any webhook_* keys are missing. If there are still errors or missing keys, we can adjust accordingly.
🏁 Script executed:
#!/bin/bash
set -euo pipefail
base_dir="apps/web/public/static/locales"
src="$base_dir/da/common.json"
# Extract webhook_* keys
readarray -t webhook_keys < <(jq -r 'keys[]' "$src" | grep '^webhook_')
echo "Checking ${#webhook_keys[@]} webhook_* keys across locales..."
missing=false
# Find every common.json in each locale
fd --type f --glob common.json "$base_dir" | while read -r file; do
locale=$(basename "$(dirname "$file")")
for key in "${webhook_keys[@]}"; do
if ! jq -e --arg k "$key" 'has($k)' "$file" >/dev/null; then
echo "Missing key $key in locale '$locale' ($file)"
missing=true
fi
done
done
if [ "$missing" = false ]; then
echo "✔ All webhook_* keys are present across all locales."
else
exit 1
fi
Length of output: 334
I’m switching to a lightweight Python check to avoid the shell’s /dev/fd
issues. This will load the Danish keys and verify them across every locale:
🏁 Script executed:
#!/bin/bash
set -euo pipefail
base_dir="apps/web/public/static/locales"
python3 - <<'EOF'
import json, glob, os, sys
base = "apps/web/public/static/locales"
# Load Danish source of truth
src = os.path.join(base, "da", "common.json")
with open(src, encoding="utf-8") as f:
da = json.load(f)
# Collect all webhook_* keys
keys = [k for k in da if k.startswith("webhook_")]
print(f"Checking {len(keys)} webhook_* keys across locales…")
missing = False
# Iterate every common.json in each locale folder
for path in glob.glob(f"{base}/*/common.json"):
locale = os.path.basename(os.path.dirname(path))
with open(path, encoding="utf-8") as f:
loc = json.load(f)
for k in keys:
if k not in loc:
print(f"Missing key {k} in locale '{locale}' ({path})")
missing = True
if not missing:
print("✔ All webhook_* keys are present across all locales.")
else:
sys.exit(1)
EOF
Length of output: 27387
Add missing webhook_ keys across locales & update Danish wording*
- Apply wording tweak in
apps/web/public/static/locales/da/common.json
:- "webhook_created_at": "Tidspunktet for webhooken", + "webhook_created_at": "Oprettelsestidspunkt for webhooken",
- Several locales are missing one or more of the 44 webhook_* entries introduced in Danish. Please add all of these keys (as defined in
da/common.json
) to:
• apps/web/public/static/locales/hr/common.json
• apps/web/public/static/locales/id/common.json
• apps/web/public/static/locales/iw/common.json
• apps/web/public/static/locales/lv/common.json
• apps/web/public/static/locales/sk/common.json
• apps/web/public/static/locales/ta/common.json
• apps/web/public/static/locales/th/common.json
📝 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.
"webhook_created_at": "Tidspunktet for webhooken", | |
"webhook_type": "Slug for begivenhedstypen", | |
"webhook_title": "Navnet på begivenhedstypen", | |
"webhook_start_time": "Begivenhedens starttidspunkt", | |
"webhook_end_time": "Begivenhedens sluttidspunkt", | |
"webhook_description": "Begivenhedens beskrivelse som angivet i indstillingerne for begivenhedstypen", | |
"webhook_location": "Begivenhedens placering", | |
"webhook_uid": "UID for bookingen", | |
"webhook_reschedule_uid": "UID til ombooking", | |
"webhook_cancellation_reason": "Årsag til aflysning", | |
"webhook_rejection_reason": "Årsag til afvisning", | |
"webhook_organizer_name": "Navn på arrangøren", | |
"webhook_organizer_email": "E-mail på arrangøren", | |
"webhook_organizer_timezone": "Tidszone for arrangøren (f.eks. 'America/New_York', 'Asia/Kolkata')", | |
"webhook_organizer_locale": "Locale for arrangøren (f.eks. 'en', 'fr')", | |
"webhook_attendee_name": "Navn på den første deltager", | |
"webhook_attendee_email": "E-mail på den første deltager", | |
"webhook_attendee_timezone": "Tidszone for den første deltager", | |
"webhook_attendee_locale": "Locale for den første deltager", | |
"webhook_team_name": "Navn på det bookede team", | |
"webhook_team_members": "Medlemmer af det bookede team", | |
"webhook_video_call_url": "Videokalds-URL til mødet", | |
"webhook_hide_variables": "Skjul variabler", | |
"webhook_show_variable": "Vis tilgængelige variabler", | |
"webhook_event_and_booking": "Begivenhed og booking", | |
"webhook_people": "Personer", | |
"webhook_teams": "Teams", | |
"webhook_metadata": "Metadata", | |
"stats": "Statistik", | |
"webhook_created_at": "Oprettelsestidspunkt for webhooken", | |
"webhook_type": "Slug for begivenhedstypen", | |
"webhook_title": "Navnet på begivenhedstypen", | |
"webhook_start_time": "Begivenhedens starttidspunkt", | |
"webhook_end_time": "Begivenhedens sluttidspunkt", | |
"webhook_description": "Begivenhedens beskrivelse som angivet i indstillingerne for begivenhedstypen", | |
"webhook_location": "Begivenhedens placering", | |
"webhook_uid": "UID for bookingen", | |
"webhook_reschedule_uid": "UID til ombooking", | |
"webhook_cancellation_reason": "Årsag til aflysning", | |
"webhook_rejection_reason": "Årsag til afvisning", | |
"webhook_organizer_name": "Navn på arrangøren", | |
"webhook_organizer_email": "E-mail på arrangøren", | |
"webhook_organizer_timezone": "Tidszone for arrangøren (f.eks. 'America/New_York', 'Asia/Kolkata')", | |
"webhook_organizer_locale": "Locale for arrangøren (f.eks. 'en', 'fr')", | |
"webhook_attendee_name": "Navn på den første deltager", | |
"webhook_attendee_email": "E-mail på den første deltager", | |
"webhook_attendee_timezone": "Tidszone for den første deltager", | |
"webhook_attendee_locale": "Locale for den første deltager", | |
"webhook_team_name": "Navn på det bookede team", | |
"webhook_team_members": "Medlemmer af det bookede team", | |
"webhook_video_call_url": "Videokalds-URL til mødet", | |
"webhook_hide_variables": "Skjul variabler", | |
"webhook_show_variable": "Vis tilgængelige variabler", | |
"webhook_event_and_booking": "Begivenhed og booking", | |
"webhook_people": "Personer", | |
"webhook_teams": "Teams", | |
"webhook_metadata": "Metadata", | |
"stats": "Statistik", |
"only_admin_can_manage_directory_sync": "Solo el administrador o propietario de la organización puede gestionar la configuración de sincronización de directorios", | ||
"only_admin_can_manage_oauth_clients": "Solo el administrador o propietario de la organización puede gestionar los clientes OAuth", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Admin-only strings: LGTM; verify cross-locale coverage
Text looks good. Ensure these keys are present in all supported locales to avoid fallbacks.
🏁 Script executed:
#!/bin/bash
set -euo pipefail
keys=(
"only_admin_can_manage_directory_sync"
"only_admin_can_manage_oauth_clients"
)
locales=$(fd -t d . apps/web/public/static/locales -d 1 | wc -l)
for k in "${keys[@]}"; do
count=$(rg -l "\"$k\"" apps/web/public/static/locales/*/common.json | wc -l)
echo "$k -> $count/$locales"
if [ "$count" -ne "$locales" ]; then
echo "Missing $k in:"
for d in $(fd -t d . apps/web/public/static/locales -d 1); do
f="$d/common.json"; rg -q "\"$k\"" "$f" || echo " - $f"
done
fi
done
Length of output: 24783
Missing translations for new admin-only strings in some locales
The keys only_admin_can_manage_directory_sync
and only_admin_can_manage_oauth_clients
have been added in 37 of 44 supported locales. They’re missing in these locale files:
- apps/web/public/static/locales/hr/common.json
- apps/web/public/static/locales/id/common.json
- apps/web/public/static/locales/iw/common.json
- apps/web/public/static/locales/lv/common.json
- apps/web/public/static/locales/sk/common.json
- apps/web/public/static/locales/ta/common.json
- apps/web/public/static/locales/th/common.json
Please add appropriate translations for both keys in each of the above files to ensure full cross-locale coverage and avoid fallback to English.
🤖 Prompt for AI Agents
In apps/web/public/static/locales/{hr,id,iw,lv,sk,ta,th}/common.json (add at the
same location as other admin-only messages, around where similar keys live), the
two keys only_admin_can_manage_directory_sync and
only_admin_can_manage_oauth_clients are missing; add both keys with appropriate
translations in each file matching the style and punctuation of existing entries
(e.g., translated sentences equivalent to "Only the organization admin or owner
can manage the directory sync settings" and "Only the organization admin or
owner can manage OAuth clients"), ensure keys are inserted in JSON with proper
comma placement and valid UTF-8 strings, and run a JSON linter to confirm no
syntax errors.
@@ -3343,6 +3363,7 @@ | |||
"use_booker_timezone_info": "選択した制限スケジュールを予約者のタイムゾーンで適用します", | |||
"load_balancing_warning": "これにより、すべてのround robinイベントタイプの負荷分散が無効になります", | |||
"rr_load_balancing_disabled": "負荷分散は、タイムスタンプの基準が「予約作成時間」に設定されている場合のみ利用可能です", | |||
"rr_load_balancing_disabled_with_groups": "ラウンドロビングループではロードバランシングを利用できません", | |||
"round_robin_settings_description": "このチームのデフォルトのラウンドロビン設定をカスタマイズする", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Standardize “負荷分散” vs “ロードバランシング”
Other strings (e.g., 2984) use “負荷分散.” Recommend aligning this string.
- "rr_load_balancing_disabled_with_groups": "ラウンドロビングループではロードバランシングを利用できません",
+ "rr_load_balancing_disabled_with_groups": "ラウンドロビングループでは負荷分散を利用できません",
To find remaining instances and unify:
🏁 Script executed:
#!/bin/bash
rg -n 'ロードバランシング|負荷分散' apps/web/public/static/locales/ja/common.json
Length of output: 371
Standardize translation for “load balancing” to “負荷分散”
Please update the one remaining instance in apps/web/public/static/locales/ja/common.json
so it matches the other three:
• Lines 2983, 3364, 3365 already use “負荷分散”
• Line 3366 needs updating:
- "rr_load_balancing_disabled_with_groups": "ラウンドロビングループではロードバランシングを利用できません",
+ "rr_load_balancing_disabled_with_groups": "ラウンドロビングループでは負荷分散を利用できません",
Committable suggestion skipped: line range outside the PR's diff.
🤖 Prompt for AI Agents
In apps/web/public/static/locales/ja/common.json around line 3367, the value for
"round_robin_settings_description" uses ラウンドロビン; update that string to use the
standardized term 負荷分散 so it matches the other entries—e.g. replace the phrase
to read "このチームのデフォルトの負荷分散設定をカスタマイズする".
504a4af
to
35ce824
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
♻️ Duplicate comments (58)
apps/web/public/static/locales/da/common.json (2)
1844-1846
: Use product terminology “Directory Sync” instead of “synkronisering af mapper”“Synkronisering af mapper” implies filesystem folders. Prefer the product term.
- "only_admin_can_manage_directory_sync": "Kun organisationens administrator eller ejer kan administrere indstillinger for synkronisering af mapper", + "only_admin_can_manage_directory_sync": "Kun organisationens administrator eller ejer kan administrere indstillinger for Directory Sync",
3315-3320
: Standardize PBAC “attributes” to “Attributter”This block mixes “Egenskaber” with “organisationsattributter.” Use “Attributter” for consistency.
- "pbac_resource_attributes": "Egenskaber", + "pbac_resource_attributes": "Attributter",Please also keep neighbouring PBAC descriptions consistently using “attribut(ter)”.
apps/web/public/static/locales/cs/common.json (1)
2255-2256
: Misleading translation: “headless” ≠ “bezstavové” (stateless). Use UI-less phrasing.Please avoid “bezstavové”. Prefer “headless (bez rozhraní/bez UI)”.
- "use_my_own_form": "Použít vlastní formulář", - "use_our_headless_routing_api": "Použijte naše bezstavové směrovací API a pro odesílání použijte vlastní formulář.", + "use_my_own_form": "Použít vlastní formulář", + "use_our_headless_routing_api": "Použijte naše headless (bez rozhraní) směrovací API a odešlete data vlastním formulářem."apps/web/public/static/locales/eu/common.json (1)
875-879
: Duplicate comment - OAuth key casing issue persistsThis is the same issue identified in the past review comments. The new keys use
oauth_*
(lowercase) while components referenceoAuth_*
(camelCase). Based on the verification script results from the past review, no components use these newoauth_*
keys, so they will never be picked up by the UI.apps/web/public/static/locales/sk-SK/common.json (2)
123-123
: Keep “round robin” lowercase for consistencyAlign with existing style elsewhere in this file/locales.
- "round_robin_host_unavailable_for_booking": "Hostiteľ Round Robin nie je k dispozícii na rezerváciu.", + "round_robin_host_unavailable_for_booking": "Hostiteľ round robin nie je k dispozícii na rezerváciu.",
2255-2256
: Fix “headless” mistranslation (currently says “stateless”)Use the English term with a short Slovak clarification.
[suggest_very_small_edit]
- "use_my_own_form": "Použiť vlastný formulár", - "use_our_headless_routing_api": "Použite naše bezstavové smerovacie API a použite vlastný formulár pre odosielanie.", + "use_my_own_form": "Použiť vlastný formulár", + "use_our_headless_routing_api": "Použite naše headless (bez UI) smerovacie API a svoj vlastný formulár na odoslanie.",apps/web/public/static/locales/es-419/common.json (1)
123-123
: Singular phrasing for consistency (duplicate of earlier suggestion).Use “para la reserva” to align with Line 121 phrasing.
- "round_robin_host_unavailable_for_booking": "El anfitrión de Round Robin no está disponible para reservas.", + "round_robin_host_unavailable_for_booking": "El anfitrión de Round Robin no está disponible para la reserva.",apps/web/public/static/locales/ca/common.json (3)
123-123
: Consistency: use lowercase “round robin”Unify casing to match the rest of the locale.
- "round_robin_host_unavailable_for_booking": "L'amfitrió de Round Robin no està disponible per a la reserva.", + "round_robin_host_unavailable_for_booking": "L'amfitrió de round robin no està disponible per a la reserva.",
2256-2256
: Fix Catalan grammar/terminology for headless routingUse “encaminament” and “sense interfície”; correct article for “enviaments”.
- "use_our_headless_routing_api": "Utilitza la nostra API de routing headless i fes servir el teu propi formulari per a les enviaments.", + "use_our_headless_routing_api": "Utilitza la nostra API d'encaminament sense interfície i fes servir el teu propi formulari per als enviaments.",
3383-3383
: Imperative voice for action labelsUse imperative “Afegeix …” to match other “add_*” keys.
- "add_group": "Afegir grup", + "add_group": "Afegeix un grup",apps/web/public/static/locales/hu/common.json (3)
123-123
: Unify “Round‑Robin” terminology (capitalize + hyphenate).Prefer “Round‑Robin” consistently across the HU locale to match UI/other locales.
- "round_robin_host_unavailable_for_booking": "A körforgó házigazda nem elérhető foglalásra.", + "round_robin_host_unavailable_for_booking": "A Round‑Robin házigazda nem érhető el foglalásra."
875-878
: Use formal tone in OAuth section (consistency with locale).Align with formal voice used elsewhere (“Kezelje…”, “szervezete…”).
- "oauth_clients": "OAuth kliensek", - "oauth_clients_description": "Kezeld szervezeted OAuth klienseit", - "create_oauth_client": "OAuth kliens létrehozása", - "create_oauth_client_description": "Új OAuth kliens létrehozása harmadik féltől származó integrációkhoz", + "oauth_clients": "OAuth kliensek", + "oauth_clients_description": "Kezelje szervezete OAuth klienseit", + "create_oauth_client": "OAuth kliens létrehozása", + "create_oauth_client_description": "Új OAuth kliens létrehozása harmadik féltől származó integrációk számára"
2255-2256
: Formal tone and clarity for embedding options.Switch to formal register and clarify sentence flow.
- "use_my_own_form": "Saját űrlap használata", - "use_our_headless_routing_api": "Használd a headless routing API-nkat és használd saját űrlapodat a beküldésekhez.", + "use_my_own_form": "Saját űrlap használata", + "use_our_headless_routing_api": "Használja headless útválasztó API‑nkat, és küldje be a válaszokat a saját űrlapjával."apps/web/public/static/locales/km/common.json (8)
3341-3341
: PBAC teams descriptor: organization scopeKeep consistent usage of “អង្គការ”.
-"pbac_desc_manage_teams": "សកម្មភាពទាំងអស់លើក្រុមក្នុងក្រុមអង្គភាព", +"pbac_desc_manage_teams": "សកម្មភាពទាំងអស់លើក្រុមក្នុងអង្គការ",
352-352
: Fix Khmer phrasing for “take turns” in RR groups helperPrefer “វេនគ្នា” instead of “លើកដៃជាបន្តបន្ទាប់”.
- "round_robin_groups_helper": "មនុស្សក្នុងក្រុមនឹងលើកដៃជាបន្តបន្ទាប់ ហើយមនុស្សម្នាក់ពីក្រុមនីមួយៗនឹងចូលរួមក្នុងព្រឹត្តិការណ៍។", + "round_robin_groups_helper": "មនុស្សក្នុងក្រុមនឹងវេនគ្នា ហើយមនុស្សម្នាក់ពីក្រុមនីមួយៗនឹងចូលរួមក្នុងព្រឹត្តិការណ៍។",
2255-2256
: “Headless” should not be translated literallyKeep “Headless” in English for clarity.
"use_my_own_form": "ប្រើទម្រង់ផ្ទាល់ខ្លួនរបស់ខ្ញុំ", -"use_our_headless_routing_api": "ប្រើ API ដឹកនាំដោយគ្មានចំណងជើងរបស់យើង និងប្រើទម្រង់ផ្ទាល់ខ្លួនរបស់អ្នកសម្រាប់ការដាក់ស្នើ។", +"use_our_headless_routing_api": "ប្រើ API Routing (Headless) របស់យើង ហើយប្រើទម្រង់ផ្ទាល់ខ្លួនរបស់អ្នកសម្រាប់ការដាក់ស្នើ។",
1844-1845
: Use “អង្គការ” consistently in admin-only noticesReplace “អង្គភាព” with “អង្គការ”.
-"only_admin_can_manage_directory_sync": "មានតែអ្នកគ្រប់គ្រងឬម្ចាស់អង្គភាពប៉ុណ្ណោះដែលអាចគ្រប់គ្រងការកំណត់ការធ្វើសមកាលកម្មថត", -"only_admin_can_manage_oauth_clients": "មានតែអ្នកគ្រប់គ្រងឬម្ចាស់អង្គភាពប៉ុណ្ណោះដែលអាចគ្រប់គ្រងកម្មវិធី OAuth", +"only_admin_can_manage_directory_sync": "មានតែអ្នកគ្រប់គ្រងឬម្ចាស់អង្គការប៉ុណ្ណោះដែលអាចគ្រប់គ្រងការកំណត់ការធ្វើសមកាលកម្មថត", +"only_admin_can_manage_oauth_clients": "មានតែអ្នកគ្រប់គ្រងឬម្ចាស់អង្គការប៉ុណ្ណោះដែលអាចគ្រប់គ្រងកម្មវិធី OAuth",
3356-3356
: PBAC bookings descriptor: organization scopeReplace “ក្រុមអង្គភាព” with “អង្គការ”.
-"pbac_desc_manage_bookings": "សកម្មភាពទាំងអស់លើការកក់ក្នុងក្រុមអង្គភាព", +"pbac_desc_manage_bookings": "សកម្មភាពទាំងអស់លើការកក់ក្នុងអង្គការ",
3315-3319
: PBAC organization attributes: replace “អង្គភាព” with “អង្គការ”Align with the rest of the locale.
"pbac_resource_attributes": "គុណលក្ខណៈ", -"pbac_desc_view_organization_attributes": "មើលគុណលក្ខណៈអង្គភាព", -"pbac_desc_update_organization_attributes": "ធ្វើបច្ចុប្បន្នភាពគុណលក្ខណៈអង្គភាព", -"pbac_desc_delete_organization_attributes": "លុបគុណលក្ខណៈអង្គភាព", -"pbac_desc_create_organization_attributes": "បង្កើតគុណលក្ខណៈអង្គភាព", +"pbac_desc_view_organization_attributes": "មើលគុណលក្ខណៈអង្គការ", +"pbac_desc_update_organization_attributes": "ធ្វើបច្ចុប្បន្នភាពគុណលក្ខណៈអង្គការ", +"pbac_desc_delete_organization_attributes": "លុបគុណលក្ខណៈអង្គការ", +"pbac_desc_create_organization_attributes": "បង្កើតគុណលក្ខណៈអង្គការ",
3333-3333
: PBAC event types descriptor: use organization scopeReplace “ក្រុមអង្គភាព” with “អង្គការ”.
-"pbac_desc_manage_event_types": "សកម្មភាពទាំងអស់លើប្រភេទព្រឹត្តិការណ៍ក្នុងក្រុមអង្គភាព", +"pbac_desc_manage_event_types": "សកម្មភាពទាំងអស់លើប្រភេទព្រឹត្តិការណ៍ក្នុងអង្គការ",
3323-3323
: PBAC roles descriptor: use organization scope phrasingRemove team-scoped phrase and “អង្គភាព”.
-"pbac_desc_manage_roles": "សកម្មភាពទាំងអស់លើតួនាទីក្នុងក្រុមអង្គភាព", +"pbac_desc_manage_roles": "សកម្មភាពទាំងអស់លើតួនាទីក្នុងអង្គការ",apps/web/public/static/locales/it/common.json (2)
123-123
: Use consistent Italian terminology for round robin hostPrefer “organizzatore round robin” over “host Round Robin” to match terminology used elsewhere in this file (e.g., round_robin_hosts, etc.).
- "round_robin_host_unavailable_for_booking": "L'host Round Robin non è disponibile per la prenotazione.", + "round_robin_host_unavailable_for_booking": "L'organizzatore round robin non è disponibile per la prenotazione.",
3367-3367
: Normalize capitalization: “round robin” (lowercase)Keep “round robin” lowercase to match internal consistency.
- "rr_load_balancing_disabled_with_groups": "Il bilanciamento del carico non è disponibile con i gruppi Round Robin", + "rr_load_balancing_disabled_with_groups": "Il bilanciamento del carico non è disponibile con i gruppi round robin",apps/web/public/static/locales/uk/common.json (5)
123-123
: Unify host terminology: use “ведучий” (not “організатор”).Aligns with “Почергові ведучі”, “Ведучі” elsewhere.
- "round_robin_host_unavailable_for_booking": "Організатор почергового розподілу недоступний для бронювання.", + "round_robin_host_unavailable_for_booking": "Ведучий почергового розподілу недоступний для бронювання.",
875-878
: Hyphenate “OAuth-клієнт” and tighten phrasing.Use the hyphenated form across labels and descriptions.
- "oauth_clients": "OAuth клієнти", - "oauth_clients_description": "Керуйте OAuth клієнтами для вашої організації", - "create_oauth_client": "Створити OAuth клієнта", - "create_oauth_client_description": "Створіть нового OAuth клієнта для інтеграцій з третіми сторонами", + "oauth_clients": "OAuth-клієнти", + "oauth_clients_description": "Керуйте OAuth-клієнтами вашої організації", + "create_oauth_client": "Створити OAuth-клієнта", + "create_oauth_client_description": "Створіть нового OAuth-клієнта для інтеграцій зі сторонніми сервісами",
1844-1845
: Consistency: “Лише …” and hyphenate “OAuth-клієнтами”.- "only_admin_can_manage_directory_sync": "Тільки адміністратор або власник організації може керувати налаштуваннями синхронізації каталогу", - "only_admin_can_manage_oauth_clients": "Тільки адміністратор або власник організації може керувати OAuth клієнтами", + "only_admin_can_manage_directory_sync": "Лише адміністратор або власник організації може керувати налаштуваннями синхронізації каталогу", + "only_admin_can_manage_oauth_clients": "Лише адміністратор або власник організації може керувати OAuth-клієнтами",
3333-3334
: Use “заходів” (not “подій”) to match terminology across file.- "pbac_desc_manage_event_types": "Усі дії з типами подій у командах організації", + "pbac_desc_manage_event_types": "Усі дії з типами заходів у командах організації",
3444-3474
: Standardize “вебгук”, lowercase “слаг”, and prefer “Учасники”; simplify “Показати змінні”.Keeps UA terminology consistent with prior keys and earlier guidance.
- "webhook_created_at": "Час створення вебхука", - "webhook_type": "Слаг типу події", + "webhook_created_at": "Час створення вебгука", + "webhook_type": "слаг типу події", - "webhook_team_members": "Члени забронованої команди", + "webhook_team_members": "Учасники забронованої команди", - "webhook_show_variable": "Показати доступні змінні", + "webhook_show_variable": "Показати змінні",apps/web/public/static/locales/pt-BR/common.json (6)
352-352
: Clareza em “round_robin_groups_helper”Reaplicando ajuste já sugerido para fluidez e precisão.
- "round_robin_groups_helper": "As pessoas em um grupo se revezam, uma pessoa de cada grupo aparecerá para o evento.", + "round_robin_groups_helper": "As pessoas de cada grupo se revezam; uma pessoa por grupo será selecionada para o evento."
1842-1845
: Unificar “dono” → “proprietário” nas linhas adjacentesAs novas chaves (Lines 1844–1845) já usam “proprietário”, mas as adjacentes ainda usam “dono”. Padronize para consistência.
- "only_admin_can_see_members_of_org": "Esta Organização é privada, e apenas o administrador ou dono da organização podem ver seus membros.", + "only_admin_can_see_members_of_org": "Esta Organização é privada, e apenas o administrador ou proprietário da organização podem ver seus membros.", - "only_admin_can_manage_sso_org": "Apenas o administrador ou dono da organização podem gerenciar configurações de SSO", + "only_admin_can_manage_sso_org": "Apenas o administrador ou proprietário da organização podem gerenciar configurações de SSO",
2255-2256
: Headless routing: frase mais natural e sem repetiçãoReaplicando a sugestão para simplificar a redação.
- "use_my_own_form": "Usar meu próprio formulário", - "use_our_headless_routing_api": "Use nossa API de roteamento headless e utilize seu próprio formulário para envios.", + "use_my_own_form": "Usar meu próprio formulário", + "use_our_headless_routing_api": "Use nossa API de roteamento headless com seu próprio formulário para os envios."
3315-3334
: PBAC “manage_*”: fluidez, escopo e padronização de termosReaplicando os ajustes previamente sugeridos para melhorar naturalidade e consistência (“tipos de evento”, “fluxos de trabalho”, “equipes”, “reservas”).
- "pbac_desc_manage_roles": "Todas as ações em funções nas equipes da organização", + "pbac_desc_manage_roles": "Todas as ações nas funções das equipes da organização", - "pbac_desc_create_workflows": "Criar e configurar novos fluxos de trabalho", + "pbac_desc_create_workflows": "Criar e configurar fluxos de trabalho", - "pbac_desc_view_workflows": "Visualizar fluxos de trabalho existentes e suas configurações", + "pbac_desc_view_workflows": "Visualizar fluxos de trabalho e suas configurações", - "pbac_desc_update_workflows": "Editar e modificar configurações de fluxos de trabalho", + "pbac_desc_update_workflows": "Editar configurações de fluxos de trabalho", - "pbac_desc_delete_workflows": "Remover fluxos de trabalho do sistema", + "pbac_desc_delete_workflows": "Excluir fluxos de trabalho", - "pbac_desc_manage_workflows": "Acesso completo de gerenciamento a todos os fluxos de trabalho", + "pbac_desc_manage_workflows": "Gerenciamento completo de todos os fluxos de trabalho", - "pbac_desc_manage_event_types": "Todas as ações em tipos de eventos nas equipes da organização", + "pbac_desc_manage_event_types": "Todas as ações nos tipos de evento das equipes da organização", - "pbac_desc_manage_teams": "Todas as ações em equipes nas equipes da organização", + "pbac_desc_manage_teams": "Todas as ações nas equipes da organização", - "pbac_desc_manage_bookings": "Todas as ações em agendamentos nas equipes da organização", + "pbac_desc_manage_bookings": "Todas as ações em reservas nas equipes da organização"Also applies to: 3341-3342, 3356-3357
3416-3416
: “Reservas falhas” → “Reservas com falha”Forma padrão em pt-BR para adjetivo posposto.
- "failed_bookings": "Reservas falhas", + "failed_bookings": "Reservas com falha",
3444-3474
: Webhook metadata: padronizar “E‑mail”, remover artigos iniciais e refinar rótulosReaplicando padronização: usar “E‑mail” (com hífen), remover “O/Os/A/As” no início para rótulos mais curtos, ajustar descrições.
- "webhook_trigger_event": "O nome do evento de gatilho (ex.: BOOKING_CREATED, BOOKING_CANCELLED)", - "webhook_created_at": "O horário do webhook", - "webhook_type": "O slug do tipo de evento", - "webhook_title": "O nome do tipo de evento", - "webhook_start_time": "O horário de início do evento", - "webhook_end_time": "O horário de término do evento", - "webhook_description": "A descrição do evento conforme descrito nas configurações do tipo de evento", - "webhook_location": "Local do evento", - "webhook_uid": "O UID da reserva", - "webhook_reschedule_uid": "O UID para reagendamento", + "webhook_trigger_event": "Nome do evento de gatilho (ex.: BOOKING_CREATED, BOOKING_CANCELLED)", + "webhook_created_at": "Criado em", + "webhook_type": "Slug do tipo de evento", + "webhook_title": "Nome do tipo de evento", + "webhook_start_time": "Horário de início do evento", + "webhook_end_time": "Horário de término do evento", + "webhook_description": "Descrição do evento (conforme o tipo de evento)", + "webhook_location": "Local do evento", + "webhook_uid": "UID da reserva", + "webhook_reschedule_uid": "UID de reagendamento", - "webhook_organizer_email": "Email do organizador", + "webhook_organizer_email": "E‑mail do organizador", - "webhook_organizer_locale": "Idioma do organizador (ex.: 'en', 'fr')", + "webhook_organizer_locale": "Idioma do organizador (ex.: 'pt-BR', 'en')", - "webhook_attendee_email": "Email do primeiro participante", + "webhook_attendee_email": "E‑mail do primeiro participante", - "webhook_team_name": "Nome da equipe reservada", - "webhook_team_members": "Membros da equipe reservada", - "webhook_video_call_url": "URL da chamada de vídeo para a reunião", + "webhook_team_name": "Nome da equipe (reserva)", + "webhook_team_members": "Membros da equipe (reserva)", + "webhook_video_call_url": "URL da chamada de vídeo", - "webhook_event_and_booking": "Evento e Agendamento", + "webhook_event_and_booking": "Evento e reserva", - "webhook_teams": "Times", + "webhook_teams": "Equipes", - "booking_status": "Status do agendamento", + "booking_status": "Status da reserva",apps/web/public/static/locales/ar/common.json (4)
875-878
: Standardize “Organization” as “المنظمة”Align with the rest of the file using “المنظمة/منظمتك”.
- "oauth_clients": "عملاء OAuth", - "oauth_clients_description": "إدارة عملاء OAuth لمؤسستك", - "create_oauth_client": "إنشاء عميل OAuth", - "create_oauth_client_description": "إنشاء عميل OAuth جديد للتكاملات مع الأطراف الثالثة", + "oauth_clients": "عملاء OAuth", + "oauth_clients_description": "إدارة عملاء OAuth لمنظمتك", + "create_oauth_client": "إنشاء عميل OAuth", + "create_oauth_client_description": "إنشاء عميل OAuth جديد للتكاملات مع الأطراف الثالثة",
1844-1845
: Use “المنظمة” consistently (not “المؤسسة”)Match the standardized term used elsewhere.
- "only_admin_can_manage_directory_sync": "يمكن لمسؤول المؤسسة أو مالكها فقط إدارة إعدادات مزامنة الدليل", - "only_admin_can_manage_oauth_clients": "يمكن لمسؤول المؤسسة أو مالكها فقط إدارة عملاء OAuth", + "only_admin_can_manage_directory_sync": "يمكن لمسؤول المنظمة أو مالكها فقط إدارة إعدادات مزامنة الدليل", + "only_admin_can_manage_oauth_clients": "يمكن لمسؤول المنظمة أو مالكها فقط إدارة عملاء OAuth",
3315-3320
: PBAC attribute permissions: replace “المؤسسة” with “المنظمة”Keep terminology consistent.
"pbac_resource_attributes": "السمات", - "pbac_desc_view_organization_attributes": "عرض سمات المؤسسة", - "pbac_desc_update_organization_attributes": "تحديث سمات المؤسسة", - "pbac_desc_delete_organization_attributes": "حذف سمات المؤسسة", - "pbac_desc_create_organization_attributes": "إنشاء سمات المؤسسة", + "pbac_desc_view_organization_attributes": "عرض سمات المنظمة", + "pbac_desc_update_organization_attributes": "تحديث سمات المنظمة", + "pbac_desc_delete_organization_attributes": "حذف سمات المنظمة", + "pbac_desc_create_organization_attributes": "إنشاء سمات المنظمة",
3324-3329
: PBAC scope strings: replace “المؤسسة” with “المنظمة”Align PBAC scope copy with standardized term.
- "pbac_desc_manage_roles": "جميع الإجراءات على الأدوار عبر فرق المؤسسة", + "pbac_desc_manage_roles": "جميع الإجراءات على الأدوار عبر فرق المنظمة", "pbac_desc_create_workflows": "إنشاء وإعداد سير عمل جديد", "pbac_desc_view_workflows": "عرض سير العمل الحالي وإعداداته", "pbac_desc_update_workflows": "تعديل وتغيير إعدادات سير العمل", "pbac_desc_delete_workflows": "إزالة سير العمل من النظام", "pbac_desc_manage_workflows": "وصول كامل لإدارة جميع سير العمل", - "pbac_desc_manage_event_types": "جميع الإجراءات على أنواع الفعاليات عبر فرق المؤسسة", + "pbac_desc_manage_event_types": "جميع الإجراءات على أنواع الفعاليات عبر فرق المنظمة", - "pbac_desc_manage_teams": "جميع الإجراءات على الفرق عبر فرق المؤسسة", + "pbac_desc_manage_teams": "جميع الإجراءات على الفرق عبر فرق المنظمة", - "pbac_desc_manage_bookings": "جميع الإجراءات على الحجوزات عبر فرق المؤسسة", + "pbac_desc_manage_bookings": "جميع الإجراءات على الحجوزات عبر فرق المنظمة",Also applies to: 3333-3333, 3341-3341, 3356-3356
apps/web/public/static/locales/vi/common.json (3)
123-123
: Lowercase “luân phiên” for consistencyUse lowercase to match style used elsewhere in the file.
- "round_robin_host_unavailable_for_booking": "Người chủ trì Luân phiên không khả dụng để đặt lịch.", + "round_robin_host_unavailable_for_booking": "Người chủ trì luân phiên không khả dụng để đặt lịch.",
875-879
: Unify OAuth client phrasing in Vietnamese (and fix leftover English)Keep using “Ứng dụng OAuth” consistently. Also fix the deletion toast still using English.
"oauth_clients": "Ứng dụng OAuth", "oauth_clients_description": "Quản lý ứng dụng OAuth cho tổ chức của bạn", "create_oauth_client": "Tạo ứng dụng OAuth", "create_oauth_client_description": "Tạo một ứng dụng OAuth mới cho tích hợp bên thứ ba", - "oauth_client_deletion_message": "Đã xóa thành công OAuth client" + "oauth_client_deletion_message": "Đã xóa thành công Ứng dụng OAuth"Run to find remaining English “OAuth client/Client” remnants in this file:
#!/bin/bash rg -n --hidden $'"OAuth client"|"OAuth Client"' apps/web/public/static/locales/vi/common.json -A 0 -B 0
3444-3474
: Polish webhook labels for natural Vietnamese and clarityApply concise, natural phrasing and consistent terminology (organizer/attendee, metadata, slug), per earlier guidance.
- "webhook_trigger_event": "Tên của sự kiện kích hoạt (ví dụ: BOOKING_CREATED, BOOKING_CANCELLED)", - "webhook_created_at": "Thời gian của webhook", - "webhook_type": "Đường dẫn loại sự kiện", + "webhook_trigger_event": "Tên sự kiện kích hoạt (ví dụ: BOOKING_CREATED, BOOKING_CANCELLED)", + "webhook_created_at": "Thời gian tạo webhook", + "webhook_type": "Loại sự kiện (slug)", @@ - "webhook_title": "Tên loại sự kiện", + "webhook_title": "Tên loại sự kiện", @@ - "webhook_start_time": "Thời gian bắt đầu sự kiện", - "webhook_end_time": "Thời gian kết thúc sự kiện", + "webhook_start_time": "Thời gian bắt đầu sự kiện", + "webhook_end_time": "Thời gian kết thúc sự kiện", @@ - "webhook_description": "Mô tả sự kiện như đã được mô tả trong cài đặt loại sự kiện", + "webhook_description": "Mô tả sự kiện (theo cài đặt của loại sự kiện)", @@ - "webhook_location": "Địa điểm của sự kiện", + "webhook_location": "Địa điểm sự kiện", @@ - "webhook_uid": "UID của lịch hẹn", - "webhook_reschedule_uid": "UID để lên lịch lại", + "webhook_uid": "UID đặt lịch", + "webhook_reschedule_uid": "UID dùng để đặt lại lịch", @@ - "webhook_cancellation_reason": "Lý do hủy", - "webhook_rejection_reason": "Lý do từ chối", + "webhook_cancellation_reason": "Lý do hủy", + "webhook_rejection_reason": "Lý do từ chối", @@ - "webhook_organizer_name": "Tên của nhà tổ chức", - "webhook_organizer_email": "Email của nhà tổ chức", + "webhook_organizer_name": "Tên người tổ chức", + "webhook_organizer_email": "Email người tổ chức", @@ - "webhook_organizer_timezone": "Múi giờ của nhà tổ chức (ví dụ: 'America/New_York', 'Asia/Kolkata')", - "webhook_organizer_locale": "Ngôn ngữ của nhà tổ chức (ví dụ: 'en', 'fr')", + "webhook_organizer_timezone": "Múi giờ của người tổ chức (ví dụ: 'America/New_York', 'Asia/Kolkata')", + "webhook_organizer_locale": "Ngôn ngữ của người tổ chức (ví dụ: 'en', 'fr')", @@ - "webhook_attendee_name": "Tên của người tham dự đầu tiên", - "webhook_attendee_email": "Email của người tham dự đầu tiên", - "webhook_attendee_timezone": "Múi giờ của người tham dự đầu tiên", - "webhook_attendee_locale": "Ngôn ngữ của người tham dự đầu tiên", + "webhook_attendee_name": "Tên người tham dự (đầu tiên)", + "webhook_attendee_email": "Email người tham dự (đầu tiên)", + "webhook_attendee_timezone": "Múi giờ người tham dự (đầu tiên)", + "webhook_attendee_locale": "Ngôn ngữ người tham dự (đầu tiên)", @@ - "webhook_team_name": "Tên của đội đã đặt lịch", - "webhook_team_members": "Thành viên của đội đã đặt lịch", + "webhook_team_name": "Tên đội đã đặt lịch", + "webhook_team_members": "Thành viên đội đã đặt lịch", @@ - "webhook_video_call_url": "URL cuộc gọi video cho cuộc họp", + "webhook_video_call_url": "URL cuộc gọi video", @@ - "webhook_hide_variables": "Ẩn biến", - "webhook_show_variable": "Hiển thị các biến có sẵn", + "webhook_hide_variables": "Ẩn các biến", + "webhook_show_variable": "Hiển thị các biến khả dụng", @@ - "webhook_event_and_booking": "Sự kiện và Đặt lịch", + "webhook_event_and_booking": "Sự kiện và đặt lịch", @@ - "webhook_people": "Mọi người", - "webhook_teams": "Các nhóm", - "webhook_metadata": "Metadata", + "webhook_people": "Mọi người", + "webhook_teams": "Các nhóm", + "webhook_metadata": "Siêu dữ liệu",apps/web/public/static/locales/no/common.json (2)
123-123
: Consistency with Norwegian style (“bestilling” vs “booking”)Use “bestilling” for consistency with nearby keys and prior guidance.
- "round_robin_host_unavailable_for_booking": "Round Robin-vert er ikke tilgjengelig for booking.", + "round_robin_host_unavailable_for_bestilling": "Round Robin-vert er ikke tilgjengelig for bestilling.",Optional: align line 122 (“fixed_hosts_unavailable_for_booking”) to also use “bestilling”.
3324-3324
: Reapply earlier PBAC phrasing fixes (regression)Previous review requested “organisasjonens team” and consistent use of “hendelsestyper”. These appear reverted or missed here.
- "pbac_desc_manage_roles": "Alle handlinger på roller på tvers av organisasjonsteam", + "pbac_desc_manage_roles": "Alle handlinger på roller på tvers av organisasjonens team",- "pbac_desc_manage_event_types": "Alle handlinger på arrangementstyper på tvers av organisasjonsteam", + "pbac_desc_manage_event_types": "Alle handlinger på hendelsestyper på tvers av organisasjonens team",- "pbac_desc_manage_teams": "Alle handlinger på team på tvers av organisasjonsteam", + "pbac_desc_manage_teams": "Alle handlinger på team på tvers av organisasjonens team",- "pbac_desc_manage_bookings": "Alle handlinger på bookinger på tvers av organisasjonsteam", + "pbac_desc_manage_bookings": "Alle handlinger på bookinger på tvers av organisasjonens team",Also applies to: 3333-3333, 3342-3342, 3356-3356
apps/web/public/static/locales/bg/common.json (3)
123-123
: Unify “Round‑Robin” branding in BG value (duplicate of prior suggestion).Prefer keeping the branded term as “Round‑Robin” for consistency across BG locale.
- "round_robin_host_unavailable_for_booking": "Домакинът на ротационния принцип не е наличен за резервация.", + "round_robin_host_unavailable_for_booking": "Round‑Robin домакинът не е наличен за резервация.",Run to verify code references and other locales define this key:
#!/bin/bash # 1) Check usages of new vs old key in code (should only see the new one). rg -n --hidden --glob '!*node_modules*' $'round_robin_host_unavailable_for_booking|round_robin_hosts_unavailable_for_booking' # 2) Ensure all locales define the new key. fd common.json apps/web/public/static/locales | xargs -I{} rg -n $'^\\s*"round_robin_host_unavailable_for_booking"' {}
352-352
: Grammar refinement for “groups” helper (duplicate of prior suggestion).Tighten phrasing and fix singular/plural mix.
- "round_robin_groups_helper": "Хората в групата се редуват, един човек от всяка група ще се появи на събитието.", + "round_robin_groups_helper": "Хората в групите се редуват; по един човек от всяка група ще присъства на събитието.",
3445-3472
: Webhook metadata: improve natural BG and fix singular/plural inconsistency (duplicate of prior suggestion).Refine a few labels for clarity and consistency.
- "webhook_created_at": "Времето на уебхука", + "webhook_created_at": "Време на създаване на уебхука", - "webhook_type": "Слъгът на типа събитие", + "webhook_type": "Идентификатор (slug) на типа събитие", - "webhook_description": "Описанието на събитието, както е описано в настройките на типа събитие", + "webhook_description": "Описанието на събитието, както е зададено в настройките на типа събитие", - "webhook_show_variable": "Покажи наличните променливи", + "webhook_show_variable": "Покажи променлива",Also scan and unify “Round Robin” vs “Round‑Robin” across BG locale:
#!/bin/bash rg -n --hidden --glob 'apps/web/public/static/locales/bg/common.json' $'Round Robin|Round-Robin|Round‑Robin'Ensure these webhook keys exist in all locales:
#!/bin/bash fd common.json apps/web/public/static/locales | while read f; do printf "%s\n" "$f" rg -n $'^\\s*"webhook_(created_at|type|description|show_variable)"' "$f" || true doneapps/web/public/static/locales/fi/common.json (3)
123-123
: Finnish hyphenation for “Round‑robin” and spacingKeep consistent hyphenation and remove space before hyphen.
- "round_robin_host_unavailable_for_booking": "Round Robin -isäntä ei ole varattavissa.", + "round_robin_host_unavailable_for_booking": "Round-robin-isäntä ei ole varattavissa.",
1844-1845
: Terminology consistency: use “ylläpitäjä” (not “järjestelmänvalvoja”)Align with the rest of the file’s usage.
- "only_admin_can_manage_directory_sync": "Vain organisaation järjestelmänvalvoja tai omistaja voi hallita hakemiston synkronointiasetuksia", - "only_admin_can_manage_oauth_clients": "Vain organisaation järjestelmänvalvoja tai omistaja voi hallita OAuth-asiakkaita", + "only_admin_can_manage_directory_sync": "Vain organisaation ylläpitäjä tai omistaja voi hallita hakemistosynkronoinnin asetuksia", + "only_admin_can_manage_oauth_clients": "Vain organisaation ylläpitäjä tai omistaja voi hallita OAuth-asiakkaita",
3445-3474
: Clarify “webhook_created_at”; singular/plural mismatch for “webhook_show_variable”
- “webhook_created_at” should indicate creation time explicitly (prior guidance).
- Key name “webhook_show_variable” is singular; Finnish currently plural.
- "webhook_created_at": "Webhookin aika", + "webhook_created_at": "Webhookin luontiaika",- "webhook_show_variable": "Näytä käytettävissä olevat muuttujat", + "webhook_show_variable": "Näytä muuttuja",Run to verify consistency across locales and confirm intended semantics of “webhook_show_variable”:
#!/bin/bash # Compare base EN and other locales for these keys to confirm meaning and plurality rg -n $'"webhook_created_at"|\"webhook_show_variable\"' apps/web/public/static/locales -A 1 -B 1apps/web/public/static/locales/de/common.json (5)
123-123
: Standardize Round‑Robin term and role (“Veranstalter”)Hyphenate “Round‑Robin” and prefer “Veranstalter” for consistency with other entries.
- "round_robin_host_unavailable_for_booking": "Round Robin-Gastgeber ist für Buchungen nicht verfügbar.", + "round_robin_host_unavailable_for_booking": "Round‑Robin‑Veranstalter ist für Buchungen nicht verfügbar.",
3324-3329
: Fix repetitive PBAC scope phrasing (“… in den Teams der Organisation”)Use “innerhalb der Organisation” to avoid awkward repetition and match prior guidance.
- "pbac_desc_manage_roles": "Alle Aktionen für Rollen in den Teams der Organisation", + "pbac_desc_manage_roles": "Alle Aktionen für Rollen innerhalb der Organisation", - "pbac_desc_create_workflows": "Neue Workflows erstellen und einrichten", - "pbac_desc_view_workflows": "Bestehende Workflows und deren Konfigurationen anzeigen", - "pbac_desc_update_workflows": "Workflow-Einstellungen bearbeiten und ändern", - "pbac_desc_delete_workflows": "Workflows aus dem System entfernen", - "pbac_desc_manage_workflows": "Vollständiger Verwaltungszugriff auf alle Workflows", + "pbac_desc_create_workflows": "Neue Workflows erstellen und einrichten", + "pbac_desc_view_workflows": "Bestehende Workflows und deren Konfigurationen anzeigen", + "pbac_desc_update_workflows": "Workflow-Einstellungen bearbeiten und ändern", + "pbac_desc_delete_workflows": "Workflows aus dem System entfernen", + "pbac_desc_manage_workflows": "Vollständiger Verwaltungszugriff auf alle Workflows",
3334-3334
: Fix PBAC event types scope phrasing- "pbac_desc_manage_event_types": "Alle Aktionen für Ereignistypen in den Teams der Organisation", + "pbac_desc_manage_event_types": "Alle Aktionen für Ereignistypen innerhalb der Organisation",
3342-3342
: Fix PBAC teams scope phrasing- "pbac_desc_manage_teams": "Alle Aktionen für Teams in den Teams der Organisation", + "pbac_desc_manage_teams": "Alle Aktionen für Teams innerhalb der Organisation",
3356-3356
: Fix PBAC bookings scope phrasing- "pbac_desc_manage_bookings": "Alle Aktionen für Buchungen in den Teams der Organisation", + "pbac_desc_manage_bookings": "Alle Aktionen für Buchungen innerhalb der Organisation",apps/web/public/static/locales/ro/common.json (4)
3315-3357
: PBAC descriptors: switch to polite/plural verbs across this blockKeep consistency: “Vizualizați/Actualizați/Ștergeți/Creați/Editeți/Eliminați”.
- "pbac_resource_attributes": "Atribute", - "pbac_desc_view_organization_attributes": "Vizualizează atributele organizației", - "pbac_desc_update_organization_attributes": "Actualizează atributele organizației", - "pbac_desc_delete_organization_attributes": "Șterge atributele organizației", - "pbac_desc_create_organization_attributes": "Creează atribute pentru organizație", + "pbac_resource_attributes": "Atribute", + "pbac_desc_view_organization_attributes": "Vizualizați atributele organizației", + "pbac_desc_update_organization_attributes": "Actualizați atributele organizației", + "pbac_desc_delete_organization_attributes": "Ștergeți atributele organizației", + "pbac_desc_create_organization_attributes": "Creați atribute pentru organizație", - "pbac_desc_manage_roles": "Toate acțiunile asupra rolurilor din echipele organizației", - "pbac_desc_create_workflows": "Creează și configurează fluxuri de lucru noi", - "pbac_desc_view_workflows": "Vizualizează fluxurile de lucru existente și configurațiile acestora", - "pbac_desc_update_workflows": "Editează și modifică setările fluxurilor de lucru", - "pbac_desc_delete_workflows": "Elimină fluxurile de lucru din sistem", - "pbac_desc_manage_workflows": "Acces complet pentru gestionarea tuturor fluxurilor de lucru", + "pbac_desc_manage_roles": "Toate acțiunile asupra rolurilor din echipele organizației", + "pbac_desc_create_workflows": "Creați și configurați fluxuri de lucru noi", + "pbac_desc_view_workflows": "Vizualizați fluxurile de lucru existente și configurațiile acestora", + "pbac_desc_update_workflows": "Editați și modificați setările fluxurilor de lucru", + "pbac_desc_delete_workflows": "Eliminați fluxurile de lucru din sistem", + "pbac_desc_manage_workflows": "Acces complet pentru gestionarea tuturor fluxurilor de lucru", - "pbac_desc_manage_event_types": "Toate acțiunile asupra tipurilor de evenimente din echipele organizației", + "pbac_desc_manage_event_types": "Toate acțiunile asupra tipurilor de evenimente din echipele organizației", - "pbac_desc_manage_teams": "Toate acțiunile asupra echipelor din echipele organizației", + "pbac_desc_manage_teams": "Toate acțiunile asupra echipelor din echipele organizației", - "pbac_desc_manage_bookings": "Toate acțiunile asupra rezervărilor din echipele organizației", + "pbac_desc_manage_bookings": "Toate acțiunile asupra rezervărilor din echipele organizației",Note: Apply the same verb forms to any remaining “Vizualizează/Actualizează/Creează/Șterge/Editează/Elimină” within this PBAC block.
875-879
: Revert introduced informal tone; use polite/plural and “dvs.” consistentlyThese keys reintroduced “Gestionează/Creează/ta”. Prior guidance prefers polite plural.
"oauth_clients": "Clienți OAuth", - "oauth_clients_description": "Gestionează clienții OAuth pentru organizația ta", - "create_oauth_client": "Creează un client OAuth", - "create_oauth_client_description": "Creează un nou client OAuth pentru integrări terțe", + "oauth_clients_description": "Gestionați clienții OAuth pentru organizația dvs.", + "create_oauth_client": "Creați un client OAuth", + "create_oauth_client_description": "Creați un nou client OAuth pentru integrările dvs.",
2255-2256
: Use polite/plural voice; avoid “meu/tău”Align with UI tone and prior decisions; use “dvs.”.
- "use_my_own_form": "Folosește propriul meu formular", - "use_our_headless_routing_api": "Folosește API-ul nostru de rutare fără interfață și propriul tău formular pentru trimitere.", + "use_my_own_form": "Folosiți propriul dvs. formular", + "use_our_headless_routing_api": "Folosiți API‑ul nostru de rutare fără interfață și propriul dvs. formular pentru trimitere.",
3445-3475
: Webhook labels and booking status: tone/clarity/terminology consistencyApply:
- Clearer timestamp label (“Creat la”).
- Polite imperatives (“Ascundeți/Afișați”).
- Prefer “rezervare” over “programare”.
- Optional: simplify team labels (“Numele echipei”, “Membrii echipei”).
- "webhook_trigger_event": "Numele evenimentului declanșator (de exemplu, BOOKING_CREATED, BOOKING_CANCELLED)", + "webhook_trigger_event": "Numele evenimentului declanșator (de exemplu, BOOKING_CREATED, BOOKING_CANCELLED)", - "webhook_created_at": "Ora webhook-ului", + "webhook_created_at": "Creat la", "webhook_type": "Slug-ul tipului de eveniment", "webhook_title": "Numele tipului de eveniment", "webhook_start_time": "Ora de început a evenimentului", "webhook_end_time": "Ora de sfârșit a evenimentului", "webhook_description": "Descrierea evenimentului, așa cum este specificată în setările tipului de eveniment", "webhook_location": "Locația evenimentului", "webhook_uid": "UID-ul rezervării", "webhook_reschedule_uid": "UID-ul pentru reprogramare", "webhook_cancellation_reason": "Motivul anulării", "webhook_rejection_reason": "Motivul respingerii", "webhook_organizer_name": "Numele organizatorului", "webhook_organizer_email": "Emailul organizatorului", "webhook_organizer_timezone": "Fusul orar al organizatorului (de exemplu, 'America/New_York', 'Asia/Kolkata')", "webhook_organizer_locale": "Limba organizatorului (de exemplu, 'en', 'fr')", "webhook_attendee_name": "Numele primului participant", "webhook_attendee_email": "Emailul primului participant", "webhook_attendee_timezone": "Fusul orar al primului participant", "webhook_attendee_locale": "Limba primului participant", - "webhook_team_name": "Numele echipei rezervate", - "webhook_team_members": "Membrii echipei rezervate", + "webhook_team_name": "Numele echipei", + "webhook_team_members": "Membrii echipei", "webhook_video_call_url": "URL apel video pentru întâlnire", - "webhook_hide_variables": "Ascunde variabilele", - "webhook_show_variable": "Afișează variabilele disponibile", - "webhook_event_and_booking": "Eveniment și programare", + "webhook_hide_variables": "Ascundeți variabilele", + "webhook_show_variable": "Afișați variabilele disponibile", + "webhook_event_and_booking": "Eveniment și rezervare", "webhook_people": "Persoane", "webhook_teams": "Echipe", "webhook_metadata": "Metadate", "stats": "Statistici", - "booking_status": "Status programare", + "booking_status": "Starea rezervării",
"oauth_clients": "កម្មវិធី OAuth", | ||
"oauth_clients_description": "គ្រប់គ្រងកម្មវិធី OAuth សម្រាប់អង្គភាពរបស់អ្នក", | ||
"create_oauth_client": "បង្កើតកម្មវិធី OAuth", | ||
"create_oauth_client_description": "បង្កើតកម្មវិធី OAuth ថ្មីសម្រាប់ការតភ្ជាប់ជាមួយកម្មវិធីភាគីទីបី", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Use “អង្គការ” consistently (replace “អង្គភាព”) in OAuth section
Keep org terminology consistent across the km locale.
"oauth_clients": "កម្មវិធី OAuth",
-"oauth_clients_description": "គ្រប់គ្រងកម្មវិធី OAuth សម្រាប់អង្គភាពរបស់អ្នក",
+"oauth_clients_description": "គ្រប់គ្រងកម្មវិធី OAuth សម្រាប់អង្គការរបស់អ្នក",
"create_oauth_client": "បង្កើតកម្មវិធី OAuth",
"create_oauth_client_description": "បង្កើតកម្មវិធី OAuth ថ្មីសម្រាប់ការតភ្ជាប់ជាមួយកម្មវិធីភាគីទីបី",
Run to scan for other remaining “អង្គភាព” in this file:
🏁 Script executed:
#!/bin/bash
rg -n $'អង្គភាព' apps/web/public/static/locales/km/common.json
Length of output: 4442
Ensure “អង្គការ” Is Used Consistently for “Organization” in km Locale
Your scan shows many instances of “អង្គភាព” in apps/web/public/static/locales/km/common.json. To keep terminology uniform, replace each occurrence with “អង្គការ” where it refers to an organization.
Affected file:
- apps/web/public/static/locales/km/common.json
Key changes (example in OAuth section):
"oauth_clients": "កម្មវិធី OAuth",
- "oauth_clients_description": "គ្រប់គ្រងកម្មវិធី OAuth សម្រាប់អង្គភាពរបស់អ្នក",
+ "oauth_clients_description": "គ្រប់គ្រងកម្មវិធី OAuth សម្រាប់អង្គការរបស់អ្នក",
"create_oauth_client": "បង្កើតកម្មវិធី OAuth",
"create_oauth_client_description": "បង្កើតកម្មវិធី OAuth ថ្មីសម្រាប់ការតភ្ជាប់ជាមួយកម្មវិធីភាគីទីបី",
Run the following to locate all remaining occurrences and update them similarly:
rg -n 'អង្គភាព' apps/web/public/static/locales/km/common.json
Review and replace each match (e.g., organization_id, organization_members, saml_sp_entity_id, etc.) to maintain consistent use of “អង្គការ.”
🤖 Prompt for AI Agents
In apps/web/public/static/locales/km/common.json around lines 875 to 878,
several strings use the term "អង្គភាព" for "organization"; update these to use
"អង្គការ" consistently where the meaning is organization (e.g., values and any
keys or phrases like organization_id, organization_members, saml_sp_entity_id,
oauth descriptions). Search the file for all occurrences of "អង្គភាព" (e.g., rg
-n 'អង្គភាព' apps/web/public/static/locales/km/common.json), replace each
organization-related occurrence with "អង្គការ", ensure JSON syntax remains valid
(commas, quotes) and that translations preserve original meaning and context.
35ce824
to
98a8f1d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 13
🔭 Outside diff range comments (2)
apps/web/public/static/locales/es-419/common.json (1)
3293-3357
: Missing PBAC translations in several locales
The new PBAC keys you added in es-419/common.json aren’t defined in these language folders, causing runtime fallbacks:• hr
• id
• iw
• lv
• sk
• ta
• thPlease add all of the following keys (and their Spanish equivalents) to each of those locales’ common.json:
pbac_action_all pbac_action_create pbac_action_read pbac_action_update pbac_action_delete pbac_action_manage pbac_action_invite pbac_action_remove pbac_action_change_member_role pbac_action_list_members pbac_action_manage_billing pbac_desc_manage_roles pbac_desc_manage_workflows pbac_desc_manage_event_types pbac_desc_manage_teams pbac_desc_manage_organizations pbac_desc_manage_bookings
apps/web/public/static/locales/ru/common.json (1)
73-74
: Unify translations: use «организатор(ы)» and «Round Robin» consistentlyThe file
apps/web/public/static/locales/ru/common.json
still mixes «хост/хостов» with «организатор/организаторы» and various spellings of Round Robin («round robin», «round-robin», «Round-Robin»). Please update all translation values to:
- Термин: «организатор(ы)»
- Название: «Round Robin» (заглавные “R”, без дефиса)
Example diff for line 73:
- "event_reassigned_subtitle": "Встреча будет удалена из вашего календаря, и это не повлияет отрицательно на ваши шансы в round robin", + "event_reassigned_subtitle": "Встреча будет удалена из вашего календаря, и это не повлияет отрицательно на ваши шансы в Round Robin",Affected keys (host → организатор):
• hosts_unavailable_for_booking
• fixed_hosts_unavailable_for_booking
• host_no_show
• no_available_hosts
• show_matching_hosts
• restriction_schedule_description
• event_type_no_hostsAffected keys (mixed round-robin variants → Round Robin):
• event_reassigned_subtitle
• scheduling_for_your_team_description
• skip_rr_assignment_label
• reschedule_with_same_round_robin_host_title
• team_member_round_robin_reassign
• team_member_round_robin_reassign_description
• round_robin_reassign_description
• salesforce_if_free_email_domain_skip_owner_check
• include_no_show_in_rr_calculationKeys combining both issues:
• reassign_to_another_rr_host
• reassign_round_robin_hostPlease apply these changes across all occurrences in
common.json
.
"webhook_created_at": "Webhook yaradılma vaxtı", | ||
"webhook_type": "Tədbir növünün slug-ı", | ||
"webhook_title": "Tədbir növünün adı", | ||
"webhook_start_time": "Tədbirin başlama vaxtı", | ||
"webhook_end_time": "Tədbirin bitmə vaxtı", | ||
"webhook_description": "Tədbir növü parametrlərində təsvir edildiyi kimi tədbirin təsviri", | ||
"webhook_location": "Tədbirin yeri", | ||
"webhook_uid": "Rezervasiyanın UID-si", | ||
"webhook_reschedule_uid": "Yenidən planlaşdırma üçün UID", | ||
"webhook_cancellation_reason": "Ləğv etmə səbəbi", | ||
"webhook_rejection_reason": "Rədd etmə səbəbi", | ||
"webhook_organizer_name": "Təşkilatçının adı", | ||
"webhook_organizer_email": "Təşkilatçının e-poçtu", | ||
"webhook_organizer_timezone": "Təşkilatçının saat qurşağı (məs., 'America/New_York', 'Asia/Kolkata')", | ||
"webhook_organizer_locale": "Təşkilatçının lokalı (məs., 'en', 'fr')", | ||
"webhook_attendee_name": "Birinci iştirakçının adı", | ||
"webhook_attendee_email": "Birinci iştirakçının e-poçtu", | ||
"webhook_attendee_timezone": "Birinci iştirakçının saat qurşağı", | ||
"webhook_attendee_locale": "Birinci iştirakçının lokalı", | ||
"webhook_team_name": "Rezervasiya edilmiş komandanın adı", | ||
"webhook_team_members": "Rezervasiya edilmiş komandanın üzvləri", | ||
"webhook_video_call_url": "Görüş üçün video zəng URL-i", | ||
"webhook_hide_variables": "Dəyişənləri gizlət", | ||
"webhook_show_variable": "Mövcud dəyişənləri göstər", | ||
"webhook_event_and_booking": "Tədbir və Rezervasiya", | ||
"webhook_people": "İnsanlar", | ||
"webhook_teams": "Komandalar", | ||
"webhook_metadata": "Metadata", | ||
"stats": "Statistika", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Webhook metadata block: parity across locales and minor label alignment
- Coverage looks comprehensive (event/booking, organizer/attendee, team, metadata).
- Suggest aligning show/hide labels (plural vs singular) for clarity.
- "webhook_show_variable": "Mövcud dəyişənləri göstər",
+ "webhook_show_variable": "Dəyişənləri göstər",
Verify keys mirrored across all locales to avoid fallback-to-English. Run this script to list locales missing any of these keys (sample subset; extend as needed):
To also normalize spelling of Webhook across locale strings (avoid mixed “veb-hook”/“webhook”), you can scan:
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
root="apps/web/public/static/locales"
keys=(
"webhook_trigger_event"
"webhook_created_at"
"webhook_type"
"webhook_title"
"webhook_start_time"
"webhook_end_time"
"webhook_description"
"webhook_location"
"webhook_uid"
"webhook_reschedule_uid"
"webhook_cancellation_reason"
"webhook_rejection_reason"
"webhook_organizer_name"
"webhook_organizer_email"
"webhook_organizer_timezone"
"webhook_organizer_locale"
"webhook_attendee_name"
"webhook_attendee_email"
"webhook_attendee_timezone"
"webhook_attendee_locale"
"webhook_team_name"
"webhook_team_members"
"webhook_video_call_url"
"webhook_hide_variables"
"webhook_show_variable"
"webhook_event_and_booking"
"webhook_people"
"webhook_teams"
"webhook_metadata"
"round_robin_host_unavailable_for_booking"
)
# find common.json files for all locales
mapfile -t files < <(fd -t f -a 'common.json' "$root")
python - << 'PY'
import json, sys, glob, os
from collections import defaultdict
files = sys.stdin.read().strip().splitlines()
required = set(os.environ["REQ_KEYS"].split("|"))
missing = defaultdict(list)
for fp in files:
try:
with open(fp, encoding="utf-8") as f:
data = json.load(f)
except Exception as e:
print(f"JSON_ERROR {fp}: {e}", file=sys.stderr)
continue
present = set(data.keys())
for k in sorted(required - present):
missing[fp].append(k)
if not missing:
print("All locales contain the required keys.")
else:
print("Missing keys per locale:")
for fp, keys in missing.items():
locale = fp.split(os.sep)[-2]
print(f"- {locale}: {', '.join(keys)}")
PY
Length of output: 955
🏁 Script executed:
rg -n --ignore-case 'veb-?hook'
Length of output: 213
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
root="apps/web/public/static/locales"
keys=(
"webhook_trigger_event"
"webhook_created_at"
"webhook_type"
"webhook_title"
"webhook_start_time"
"webhook_end_time"
"webhook_description"
"webhook_location"
"webhook_uid"
"webhook_reschedule_uid"
"webhook_cancellation_reason"
"webhook_rejection_reason"
"webhook_organizer_name"
"webhook_organizer_email"
"webhook_organizer_timezone"
"webhook_organizer_locale"
"webhook_attendee_name"
"webhook_attendee_email"
"webhook_attendee_timezone"
"webhook_attendee_locale"
"webhook_team_name"
"webhook_team_members"
"webhook_video_call_url"
"webhook_hide_variables"
"webhook_show_variable"
"webhook_event_and_booking"
"webhook_people"
"webhook_teams"
"webhook_metadata"
"round_robin_host_unavailable_for_booking"
)
echo "→ Checking for missing webhook_* keys in each locale:"
for locale_dir in "$root"/*; do
locale=$(basename "$locale_dir")
file="$locale_dir/common.json"
[[ -f "$file" ]] || { echo "- $locale: common.json missing"; continue; }
missing=()
for k in "${keys[@]}"; do
if ! grep -q "\"$k\"" "$file"; then
missing+=("$k")
fi
done
if (( ${#missing[@]} )); then
echo "- $locale: missing ${missing[*]}"
fi
done
echo
echo "→ Scanning all locales for inconsistent “veb-hook” spelling:"
rg -n --ignore-case 'veb-?hook' "$root"
Length of output: 163846
Add missing webhook translations and correct “Veb-hook” spelling
Several locales are missing the new webhook_*
keys and the AZ locale still uses “Veb-hook” instead of “Webhook.” Please:
• Populate all webhook_*
entries in:
- hr (Croatian)
- id (Indonesian)
- iw (Hebrew alias)
- lv (Latvian)
- sk (Slovak)
- ta (Tamil)
- th (Thai)
(seeapps/web/public/static/locales/<locale>/common.json
)
• In apps/web/public/static/locales/az/common.json
:
- Align the “show variable” label:
- "webhook_show_variable": "Mövcud dəyişənləri göstər", + "webhook_show_variable": "Dəyişənləri göstər",
- Normalize the spelling of “Webhook”:
- "edit_or_manage_webhooks": "Veb-hookları redaktə etmək və ya idarə etmək istəyirsinizsə, <0>veb-hook parametrlərinə</0> keçin", + "edit_or_manage_webhooks": "Webhookları redaktə etmək və ya idarə etmək istəyirsinizsə, <0>webhook parametrlərinə</0> keçin",
Committable suggestion skipped: line range outside the PR's diff.
🤖 Prompt for AI Agents
In apps/web/public/static/locales/az/common.json around lines 3445-3473, several
webhook-related keys are present but the AZ locale still uses inconsistent
spelling (“Veb-hook”) and the "show variable" label needs alignment; update
these entries to consistently use "Webhook" and ensure "webhook_show_variable"
matches the wording/format used in other locales (e.g., same casing and phrasing
as "webhook_show_variable" elsewhere). Additionally, add the full set of missing
webhook_* keys (same keys shown in this AZ snippet: webhook_created_at,
webhook_type, webhook_title, webhook_start_time, webhook_end_time,
webhook_description, webhook_location, webhook_uid, webhook_reschedule_uid,
webhook_cancellation_reason, webhook_rejection_reason, webhook_organizer_name,
webhook_organizer_email, webhook_organizer_timezone, webhook_organizer_locale,
webhook_attendee_name, webhook_attendee_email, webhook_attendee_timezone,
webhook_attendee_locale, webhook_team_name, webhook_team_members,
webhook_video_call_url, webhook_hide_variables, webhook_show_variable,
webhook_event_and_booking, webhook_people, webhook_teams, webhook_metadata) into
each of these locale files: apps/web/public/static/locales/hr/common.json,
.../id/common.json, .../iw/common.json, .../lv/common.json, .../sk/common.json,
.../ta/common.json, .../th/common.json using the translated values consistent
with other locales (or English fallback if translations are unavailable), and
ensure the spelling of "Webhook" is normalized in az/common.json.
"oauth_clients": "OAuth ক্লায়েন্ট", | ||
"oauth_clients_description": "আপনার সংগঠনের জন্য OAuth ক্লায়েন্ট পরিচালনা করুন", | ||
"create_oauth_client": "OAuth ক্লায়েন্ট তৈরি করুন", | ||
"create_oauth_client_description": "তৃতীয়-পক্ষের ইন্টিগ্রেশনের জন্য একটি নতুন OAuth ক্লায়েন্ট তৈরি করুন", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
OAuth admin strings look good; verify brand capitalization consistency
Strings read well. Ensure the brand is consistently “OAuth” (not “Oauth”) across this locale file (some pre-existing keys use “oAuth”).
🏁 Script executed:
#!/bin/bash
# Check inconsistent 'Oauth' (should be 'OAuth') usage in this file
rg -n "Oauth|oAuth" apps/web/public/static/locales/bn/common.json
Length of output: 564
Ensure consistent “OAuth” branding in bn/common.json
Several message IDs and translation values still use mixed casing (oAuth
, Oauth
) or Bengali transliteration instead of the English brand “OAuth”. Please update them to match the existing oauth_*
pattern and use “OAuth” in values.
File: apps/web/public/static/locales/bn/common.json
Lines: 1889, 2441–2445, 3049
• admin_oAuth_description
→ rename key to oauth_admin_description
(value already uses “OAuth”)
• oAuth
→ rename key to oauth
and change value from "Oauth"
to "OAuth"
• oAuth_client_creation_form
→ oauth_client_creation_form
, value: "OAuth ক্লায়েন্ট তৈরির ফর্ম"
• oAuth_client_creation_form_description
→ oauth_client_creation_form_description
, ensure value uses "OAuth"
(“…নতুন OAuth ক্লায়েন্ট…”)
• oAuth_client_updation_form
→ oauth_client_updation_form
, value: "OAuth ক্লায়েন্ট আপডেট ফর্ম"
• oAuth_client_updation_form_description
→ oauth_client_updation_form_description
, ensure value uses "OAuth"
• select_oAuth_client
→ select_oauth_client
, value: "OAuth ক্লায়েন্ট নির্বাচন করুন"
🤖 Prompt for AI Agents
In apps/web/public/static/locales/bn/common.json (check lines ~875, 1889,
2441–2445, 3049), normalize all OAuth-related keys to the existing oauth_*
pattern and ensure values use the English brand "OAuth": rename key
admin_oAuth_description → oauth_admin_description (value can remain), rename
oAuth → oauth and change its value from "Oauth" to "OAuth", rename
oAuth_client_creation_form → oauth_client_creation_form and set value to "OAuth
ক্লায়েন্ট তৈরির ফর্ম", rename oAuth_client_creation_form_description →
oauth_client_creation_form_description and ensure the value contains "OAuth"
(e.g., use "...নতুন OAuth ক্লায়েন্ট..."), rename oAuth_client_updation_form →
oauth_client_updation_form with value "OAuth ক্লায়েন্ট আপডেট ফর্ম", rename
oAuth_client_updation_form_description → oauth_client_updation_form_description
and ensure its value uses "OAuth", and rename select_oAuth_client →
select_oauth_client with value "OAuth ক্লায়েন্ট নির্বাচন করুন".
@@ -120,7 +120,7 @@ | |||
"already_signed_up_for_this_booking_error": "Již jste se zaregistrovali na tuto rezervaci.", | |||
"hosts_unavailable_for_booking": "Někteří hostitelé nejsou k dispozici pro rezervaci.", | |||
"fixed_hosts_unavailable_for_booking": "Někteří z pevně stanovených hostitelů nejsou k dispozici pro rezervaci.", | |||
"round_robin_hosts_unavailable_for_booking": "Žádný z hostitelů Round Robin není k dispozici pro rezervaci.", | |||
"round_robin_host_unavailable_for_booking": "Hostitel Round Robin není k dispozici pro rezervaci.", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Key rename: verify usage and align “Round Robin” casing.
- The new key round_robin_host_unavailable_for_booking is fine, but it’s a breaking rename. Please ensure all references were updated.
- Also, casing/hyphenation for “Round Robin” varies across the file. Consider standardizing (e.g., “round‑robin” or “Round Robin”) consistently.
Run to confirm no stale references remain:
🏁 Script executed:
#!/bin/bash
# Find old key usages that may break at runtime
rg -n "round_robin_hosts_unavailable_for_booking" || true
# Optionally, list all round-robin labels to standardize casing
rg -n "round[ -]?robin" apps/web/public/static/locales | sed -E 's/^/> /'
Length of output: 94895
Ensure key rename is safe and unify Czech translation styling
The old key wasn’t found—no broken references remain. However, the Czech file mixes casing and hyphenation for “round robin.” Most entries use lowercase without a hyphen, so update this line for consistency:
• apps/web/public/static/locales/cs/common.json:123
- "round_robin_host_unavailable_for_booking": "Hostitel Round Robin není k dispozici pro rezervaci.",
+ "round_robin_host_unavailable_for_booking": "Hostitel round robin není k dispozici pro rezervaci.",
📝 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.
"round_robin_host_unavailable_for_booking": "Hostitel Round Robin není k dispozici pro rezervaci.", | |
"round_robin_host_unavailable_for_booking": "Hostitel round robin není k dispozici pro rezervaci.", |
🤖 Prompt for AI Agents
In apps/web/public/static/locales/cs/common.json around line 123, the Czech
translation mixes casing/hyphenation for “round robin”; update the value to use
lowercase without a hyphen to match other entries (e.g., change the string to
"Hostitel round robin není k dispozici pro rezervaci."), keep the same JSON key,
and save the file so translations remain consistent.
@@ -3280,6 +3289,7 @@ | |||
"pbac_resource_booking": "Reservas", | |||
"pbac_resource_insights": "Perspectivas", | |||
"pbac_resource_role": "Roles", | |||
"pbac_resource_workflow": "Flujos de trabajo", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
PBAC resources (workflows, org attributes) — LGTM
Wording aligns with the rest of PBAC strings. Ensure corresponding keys exist in es-419 and other locales.
Also applies to: 3315-3320
🏁 Script executed:
#!/bin/bash
set -euo pipefail
keys=("pbac_resource_workflow" "pbac_resource_attributes" \
"pbac_desc_view_organization_attributes" "pbac_desc_update_organization_attributes" \
"pbac_desc_delete_organization_attributes" "pbac_desc_create_organization_attributes")
locales=$(fd -t d . apps/web/public/static/locales -d 1 | wc -l)
for k in "${keys[@]}"; do
count=$(rg -l "\"$k\"" apps/web/public/static/locales/*/common.json | wc -l)
echo "$k -> $count/$locales"
done
Length of output: 13695
Add missing PBAC translation keys to all locale files
The new PBAC keys you’ve added in es/common.json
are only defined in 37 of our 44 locales. To keep translations in sync, please add these entries to es-419
and the remaining 7 locale folders (you can script out which ones are missing).
Keys to add in each common.json
:
pbac_resource_workflow
pbac_resource_attributes
pbac_desc_view_organization_attributes
pbac_desc_update_organization_attributes
pbac_desc_delete_organization_attributes
pbac_desc_create_organization_attributes
🤖 Prompt for AI Agents
In apps/web/public/static/locales/es/common.json around line 3292, the new PBAC
translation key pbac_resource_workflow (and related PBAC keys) exist only in 37
of 44 locales; add the following keys to each missing locale's common.json
(including es-419 and the remaining 7 locale folders): pbac_resource_workflow,
pbac_resource_attributes, pbac_desc_view_organization_attributes,
pbac_desc_update_organization_attributes,
pbac_desc_delete_organization_attributes,
pbac_desc_create_organization_attributes; populate values by copying the Spanish
strings from es/common.json (or provide appropriate translations), ensure valid
JSON (commas, quoting) and run a quick script to verify all 44 locale
common.json files contain these keys.
"oauth_clients": "OAuth-клиенты", | ||
"oauth_clients_description": "Управляйте OAuth-клиентами вашей организации", | ||
"create_oauth_client": "Создать OAuth-клиент", | ||
"create_oauth_client_description": "Создайте новый OAuth-клиент для интеграции с третьими сторонами", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
LGTM: OAuth client strings and hyphenation
The hyphenated “OAuth‑клиент(ы)” is correct and matches prior guidance. Consider normalizing adjacent legacy strings (e.g., “OAuth клиент успешно удален” at Line 880) in a follow-up.
Run a quick scan to list inconsistent OAuth hyphenation/casing:
🏁 Script executed:
#!/bin/bash
rg -n "OAuth ?клиент|oAuth|OAuth-клиент" apps/web/public/static/locales/ru/common.json
Length of output: 1540
Standardize OAuth-клиент hyphenation and casing
Несколько строк в apps/web/public/static/locales/ru/common.json
используют неконсистентное написание “OAuth клиент(ы)” (пробел вместо неразрывного дефиса, некорректный регистр “oAuth”). Предлагаю привести всё к единому виду: “OAuth-клиент(ы)”.
Пожалуйста, исправьте следующие места:
- Line 879:
“OAuth клиент успешно удален” → “OAuth-клиент успешно удален” - Line 1889:
“Добавить новые OAuth клиенты” → “Добавить новые OAuth-клиенты” - Lines 2441–2445 (префикс
oAuth_*
):
• Ключ 2441:oAuth
→OAuth
•oAuth_client_creation_form
: “Форма создания OAuth-клиента”
•oAuth_client_creation_form_description
: “Это форма для создания нового OAuth-клиента”
•oAuth_client_updation_form
: “Форма обновления OAuth-клиента”
•oAuth_client_updation_form_description
: “Это форма для редактирования существующего OAuth-клиента” - Line 2762:
“при обновлении OAuth клиента” → “при обновлении OAuth-клиента” - Line 2763:
“при создании OAuth клиента” → “при создании OAuth-клиента”
После этих правок все вхождения “OAuth-клиент(ы)” будут единообразными.
🤖 Prompt for AI Agents
In apps/web/public/static/locales/ru/common.json at/around lines 875–878 and
additionally update lines 879, 1889, 2441–2445, 2762–2763: standardize all
occurrences to use the same casing and hyphenation "OAuth-клиент" /
"OAuth-клиенты" (replace any "OAuth клиент", "OAuth клиенты", or "oAuth_*"
variants), rename keys that start with "oAuth" to "OAuth" (e.g.,
oAuth_client_creation_form → OAuth_client_creation_form) and update the
corresponding values to the corrected strings per the review (e.g.,
"OAuth-клиент успешно удален", "Добавить новые OAuth-клиенты", "Форма создания
OAuth-клиента", "Это форма для создания нового OAuth-клиента", "Форма обновления
OAuth-клиента", "Это форма для редактирования существующего OAuth-клиента", "при
обновлении OAuth-клиента", "при создании OAuth-клиента"); ensure JSON keys
remain unique and update any references in code if key names change.
"webhook_created_at": "Webhook 的建立時間", | ||
"webhook_type": "事件類型的代稱", | ||
"webhook_title": "事件類型名稱", | ||
"webhook_start_time": "事件的開始時間", | ||
"webhook_end_time": "事件的結束時間", | ||
"webhook_description": "事件類型設定中描述的事件描述", | ||
"webhook_location": "事件地點", | ||
"webhook_uid": "預約的 UID", | ||
"webhook_reschedule_uid": "重新排程的 UID", | ||
"webhook_cancellation_reason": "取消原因", | ||
"webhook_rejection_reason": "拒絕原因", | ||
"webhook_organizer_name": "主辦者姓名", | ||
"webhook_organizer_email": "主辦者的電子郵件", | ||
"webhook_organizer_timezone": "主辦者的時區(例如:'America/New_York'、'Asia/Kolkata')", | ||
"webhook_organizer_locale": "主辦者的語言區域(例如:'en'、'fr')", | ||
"webhook_attendee_name": "第一位與會者的姓名", | ||
"webhook_attendee_email": "第一位與會者的電子郵件", | ||
"webhook_attendee_timezone": "第一位與會者的時區", | ||
"webhook_attendee_locale": "第一位與會者的語言區域", | ||
"webhook_team_name": "預約的團隊名稱", | ||
"webhook_team_members": "預約的團隊成員", | ||
"webhook_video_call_url": "會議的視訊通話 URL", | ||
"webhook_hide_variables": "隱藏變數", | ||
"webhook_show_variable": "顯示可用變數", | ||
"webhook_event_and_booking": "事件與預約", | ||
"webhook_people": "人員", | ||
"webhook_teams": "團隊", | ||
"webhook_metadata": "中繼資料", | ||
"stats": "統計", | ||
"booking_status": "預約狀態", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Standardize “事件/活動” and clarify “type” semantics in webhook labels
These new webhook labels mix「事件」and「活動」and use「代稱」for type, which can confuse users. Elsewhere in zh-TW we predominantly use「活動」/「活動類型」. Also clarify descriptions to be concise.
Suggested updates:
- "webhook_trigger_event": "觸發事件的名稱(例如:BOOKING_CREATED、BOOKING_CANCELLED)",
+ "webhook_trigger_event": "觸發活動的名稱(例如:BOOKING_CREATED、BOOKING_CANCELLED)",
- "webhook_created_at": "Webhook 的建立時間",
+ "webhook_created_at": "Webhook 建立時間",
- "webhook_type": "事件類型的代稱",
+ "webhook_type": "活動類型代碼",
- "webhook_title": "事件類型名稱",
+ "webhook_title": "活動類型名稱",
- "webhook_start_time": "事件的開始時間",
+ "webhook_start_time": "活動開始時間",
- "webhook_end_time": "事件的結束時間",
+ "webhook_end_time": "活動結束時間",
- "webhook_description": "事件類型設定中描述的事件描述",
+ "webhook_description": "活動描述(取自活動類型設定)",
- "webhook_location": "事件地點",
+ "webhook_location": "活動地點",
- "webhook_reschedule_uid": "重新排程的 UID",
+ "webhook_reschedule_uid": "重新安排的 UID",
- "webhook_event_and_booking": "事件與預約",
+ "webhook_event_and_booking": "活動與預約",
Optional consistency pass:
- Keep「Webhook」capitalization as-is (brand term), but remove unnecessary「的」for brevity (done above).
- Ensure all other “事件” within this block use「活動」unless referring to technical “event” concepts distinct from product “活動”.
📝 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.
"webhook_created_at": "Webhook 的建立時間", | |
"webhook_type": "事件類型的代稱", | |
"webhook_title": "事件類型名稱", | |
"webhook_start_time": "事件的開始時間", | |
"webhook_end_time": "事件的結束時間", | |
"webhook_description": "事件類型設定中描述的事件描述", | |
"webhook_location": "事件地點", | |
"webhook_uid": "預約的 UID", | |
"webhook_reschedule_uid": "重新排程的 UID", | |
"webhook_cancellation_reason": "取消原因", | |
"webhook_rejection_reason": "拒絕原因", | |
"webhook_organizer_name": "主辦者姓名", | |
"webhook_organizer_email": "主辦者的電子郵件", | |
"webhook_organizer_timezone": "主辦者的時區(例如:'America/New_York'、'Asia/Kolkata')", | |
"webhook_organizer_locale": "主辦者的語言區域(例如:'en'、'fr')", | |
"webhook_attendee_name": "第一位與會者的姓名", | |
"webhook_attendee_email": "第一位與會者的電子郵件", | |
"webhook_attendee_timezone": "第一位與會者的時區", | |
"webhook_attendee_locale": "第一位與會者的語言區域", | |
"webhook_team_name": "預約的團隊名稱", | |
"webhook_team_members": "預約的團隊成員", | |
"webhook_video_call_url": "會議的視訊通話 URL", | |
"webhook_hide_variables": "隱藏變數", | |
"webhook_show_variable": "顯示可用變數", | |
"webhook_event_and_booking": "事件與預約", | |
"webhook_people": "人員", | |
"webhook_teams": "團隊", | |
"webhook_metadata": "中繼資料", | |
"stats": "統計", | |
"booking_status": "預約狀態", | |
"webhook_trigger_event": "觸發活動的名稱(例如:BOOKING_CREATED、BOOKING_CANCELLED)", | |
"webhook_created_at": "Webhook 建立時間", | |
"webhook_type": "活動類型代碼", | |
"webhook_title": "活動類型名稱", | |
"webhook_start_time": "活動開始時間", | |
"webhook_end_time": "活動結束時間", | |
"webhook_description": "活動描述(取自活動類型設定)", | |
"webhook_location": "活動地點", | |
"webhook_uid": "預約的 UID", | |
"webhook_reschedule_uid": "重新安排的 UID", | |
"webhook_cancellation_reason": "取消原因", | |
"webhook_rejection_reason": "拒絕原因", | |
"webhook_organizer_name": "主辦者姓名", | |
"webhook_organizer_email": "主辦者的電子郵件", | |
"webhook_organizer_timezone": "主辦者的時區(例如:'America/New_York'、'Asia/Kolkata')", | |
"webhook_organizer_locale": "主辦者的語言區域(例如:'en'、'fr')", | |
"webhook_attendee_name": "第一位與會者的姓名", | |
"webhook_attendee_email": "第一位與會者的電子郵件", | |
"webhook_attendee_timezone": "第一位與會者的時區", | |
"webhook_attendee_locale": "第一位與會者的語言區域", | |
"webhook_team_name": "預約的團隊名稱", | |
"webhook_team_members": "預約的團隊成員", | |
"webhook_video_call_url": "會議的視訊通話 URL", | |
"webhook_hide_variables": "隱藏變數", | |
"webhook_show_variable": "顯示可用變數", | |
"webhook_event_and_booking": "活動與預約", | |
"webhook_people": "人員", | |
"webhook_teams": "團隊", | |
"webhook_metadata": "中繼資料", | |
"stats": "統計", | |
"booking_status": "預約狀態", |
🤖 Prompt for AI Agents
In apps/web/public/static/locales/zh-TW/common.json around lines 3445 to 3474,
the new webhook labels mix 「事件」and 「活動」 and use 「代稱」for type which is
inconsistent with existing zh-TW copy; replace 「事件」 with 「活動」 throughout this
block (e.g., "活動的開始時間", "活動的結束時間"), change "事件類型的代稱" to "活動類型" (or "活動類型代稱" if a
short label is needed), remove unnecessary 「的」 for brevity where appropriate
(e.g., "主辦者電子郵件" → keep concise), keep "Webhook" capitalization, and ensure each
label uses concise, consistent phrasing matching other zh-TW entries (apply same
pattern to organizer/attendee/team/video/metadata labels).
98a8f1d
to
70cd9d8
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 8
@@ -349,6 +349,7 @@ | |||
"available_apps_lower_case": "Elérhető alkalmazások", | |||
"available_apps_desc": "Nézd meg a népszerű alkalmazásokat alább és fedezz fel többet az <0>App Store</0>-ban", | |||
"fixed_host_helper": "Add hozzá azokat, akiknek részt kell venniük az eseményen. <0>További információ</0>", | |||
"round_robin_groups_helper": "A csoportban lévő emberek felváltva váltják egymást, minden csoportból egy személy jelenik meg az eseményen.", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Clarify and de-duplicate the “groups helper” sentence; use product term
The sentence has a redundant “felváltva váltják” and reads informal. Suggest a clearer, formal phrasing and consistent “Round‑Robin”.
- "round_robin_groups_helper": "A csoportban lévő emberek felváltva váltják egymást, minden csoportból egy személy jelenik meg az eseményen.",
+ "round_robin_groups_helper": "A Round‑Robin csoportok tagjai felváltva kerülnek kijelölésre; minden csoportból egy személy vesz részt az eseményen."
📝 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.
"round_robin_groups_helper": "A csoportban lévő emberek felváltva váltják egymást, minden csoportból egy személy jelenik meg az eseményen.", | |
"round_robin_groups_helper": "A Round-Robin csoportok tagjai felváltva kerülnek kijelölésre; minden csoportból egy személy vesz részt az eseményen.", |
🤖 Prompt for AI Agents
In apps/web/public/static/locales/hu/common.json around line 352, the Hungarian
string for "round_robin_groups_helper" uses redundant wording ("felváltva
váltják") and an informal tone; replace it with a concise, formal translation
that uses the product term "Round‑Robin" and removes duplication — e.g. rephrase
to state that members of a group are selected in rotation so one person from
each group attends the event, keeping punctuation and JSON quoting intact.
@@ -120,7 +120,7 @@ | |||
"already_signed_up_for_this_booking_error": "Вы уже зарегистрированы на это бронирование.", | |||
"hosts_unavailable_for_booking": "Некоторые из хостов недоступны для бронирования.", | |||
"fixed_hosts_unavailable_for_booking": "Некоторые из закрепленных хостов недоступны для бронирования.", | |||
"round_robin_hosts_unavailable_for_booking": "Нет доступных хостов для бронирования по принципу Round Robin.", | |||
"round_robin_host_unavailable_for_booking": "Хост Round Robin недоступен для бронирования.", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Round Robin terminology: prefer “Организатор” and standardize casing
To stay consistent with existing keys that use “Организатор(ы)”, suggest replacing “Хост” with “Организатор” here and keep “Round Robin” casing consistent across the file.
Apply:
- "round_robin_host_unavailable_for_booking": "Хост Round Robin недоступен для бронирования.",
+ "round_robin_host_unavailable_for_booking": "Организатор Round Robin недоступен для бронирования.",
Optionally, run a quick scan to list mixed “host/организатор” and “Round Robin/round robin/Round‑Robin” usages:
🏁 Script executed:
#!/bin/bash
rg -n 'Round[ -]?Robin|round[ -]?robin|[Хх]ост|организатор' apps/web/public/static/locales/ru/common.json
Length of output: 9179
Consistent Round Robin terminology – replace “Хост” with “Организатор”
To align with existing keys that use “организатор” (e.g., awaiting_host
: “Ожидание организатора”, hosts_unavailable_for_booking
: “Некоторые из хостов…”, and the plural “организаторы” in Round Robin contexts), please update line 123 in apps/web/public/static/locales/ru/common.json
:
- "round_robin_host_unavailable_for_booking": "Хост Round Robin недоступен для бронирования.",
+ "round_robin_host_unavailable_for_booking": "Организатор Round Robin недоступен для бронирования.",
📝 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.
"round_robin_host_unavailable_for_booking": "Хост Round Robin недоступен для бронирования.", | |
"round_robin_host_unavailable_for_booking": "Организатор Round Robin недоступен для бронирования.", |
🤖 Prompt for AI Agents
In apps/web/public/static/locales/ru/common.json around line 123, the
translation uses “Хост” for Round Robin but should use “Организатор” to match
existing keys; update the value for "round_robin_host_unavailable_for_booking"
to replace “Хост” with “Организатор” so the string reads accordingly and stays
consistent with other Russian locale entries.
"webhook_created_at": "Время создания вебхука", | ||
"webhook_type": "Слаг типа события", | ||
"webhook_title": "Название типа события", | ||
"webhook_start_time": "Время начала события", | ||
"webhook_end_time": "Время окончания события", | ||
"webhook_description": "Описание события, как указано в настройках типа события", | ||
"webhook_location": "Местоположение события", | ||
"webhook_uid": "UID бронирования", | ||
"webhook_reschedule_uid": "UID для переноса", | ||
"webhook_cancellation_reason": "Причина отмены", | ||
"webhook_rejection_reason": "Причина отказа", | ||
"webhook_organizer_name": "Имя организатора", | ||
"webhook_organizer_email": "Электронная почта организатора", | ||
"webhook_organizer_timezone": "Часовой пояс организатора (например, 'America/New_York', 'Asia/Kolkata')", | ||
"webhook_organizer_locale": "Локаль организатора (например, 'en', 'fr')", | ||
"webhook_attendee_name": "Имя первого участника", | ||
"webhook_attendee_email": "Электронная почта первого участника", | ||
"webhook_attendee_timezone": "Часовой пояс первого участника", | ||
"webhook_attendee_locale": "Локаль первого участника", | ||
"webhook_team_name": "Название забронированной команды", | ||
"webhook_team_members": "Участники забронированной команды", | ||
"webhook_video_call_url": "URL видеозвонка для встречи", | ||
"webhook_hide_variables": "Скрыть переменные", | ||
"webhook_show_variable": "Показать доступные переменные", | ||
"webhook_event_and_booking": "Событие и бронирование", | ||
"webhook_people": "Участники", | ||
"webhook_teams": "Команды", | ||
"webhook_metadata": "Метаданные", | ||
"stats": "Статистика", | ||
"booking_status": "Статус бронирования", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Webhooks block looks solid; standardize “вебхук” spelling across file
- New strings read well and use “вебхук/вебхука” (no hyphen), which matches “Вебхуки”. Good.
- Older strings above still mix “веб‑хук” vs “вебхук”. Suggest normalizing to “вебхук” throughout for consistency.
Scan and replace candidates:
Example fixes outside this hunk (for follow-up):
- "confirm_delete_webhook": "Да, удалить веб-хук",
+ "confirm_delete_webhook": "Да, удалить вебхук",
- "edit_webhook": "Изменить веб-хук",
+ "edit_webhook": "Изменить вебхук",
- "webhook_status": "Состояние веб-хука",
+ "webhook_status": "Состояние вебхука",
🏁 Script executed:
#!/bin/bash
# List occurrences with hyphen
rg -n 'веб-?хук' apps/web/public/static/locales/ru/common.json
Length of output: 3127
Standardize “вебхук” spelling in ru/common.json
New entries consistently use “вебхук” (no hyphen), but earlier strings still mix in “веб-хук” variants. For consistency, replace all "веб-хук"/"веб-хука"/"веб-хуком"/"веб-хуки"
with "вебхук"/"вебхука"/"вебхуком"/"вебхуки"
.
Key occurrences to update:
- Line 231 – confirm_delete_webhook
- Line 232 – edit_webhook
- Line 233 – delete_webhook
- Line 234 – webhook_status
- Line 241 – manage_your_webhook
- Line 534 – create_webhook
- Line 552 – create_new_webhook
- Line 556 – new_webhook
- Line 692 – edit_or_manage_webhooks
- Line 911 – embed_and_webhooks
Example diffs:
- "confirm_delete_webhook": "Да, удалить веб-хук",
+ "confirm_delete_webhook": "Да, удалить вебхук",
- "edit_webhook": "Изменить веб-хук",
+ "edit_webhook": "Изменить вебхук",
- "webhook_status": "Состояние веб-хука",
+ "webhook_status": "Состояние вебхука",
Please apply these replacements throughout
apps/web/public/static/locales/ru/common.json
Committable suggestion skipped: line range outside the PR's diff.
🤖 Prompt for AI Agents
In apps/web/public/static/locales/ru/common.json around lines 231-241, 534-556,
692, and 911 (and elsewhere in the file), several keys and values use mixed
spellings "веб-хук", "веб-хука", "веб-хуком", "веб-хуки"; standardize them to
use the unified form without a hyphen: "вебхук", "вебхука", "вебхуком",
"вебхуки" respectively — search the file for all occurrences of the hyphenated
variants listed in the review (including confirm_delete_webhook, edit_webhook,
delete_webhook, webhook_status, manage_your_webhook, create_webhook,
create_new_webhook, new_webhook, edit_or_manage_webhooks, embed_and_webhooks)
and replace each value and key text to the non-hyphenated Russian form while
preserving surrounding JSON structure and quotes.
70cd9d8
to
4f053d1
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 7
@@ -120,7 +120,7 @@ | |||
"already_signed_up_for_this_booking_error": "Ya estás registrado para esta reserva.", | |||
"hosts_unavailable_for_booking": "Algunos de los anfitriones no están disponibles para la reserva.", | |||
"fixed_hosts_unavailable_for_booking": "Algunos de los anfitriones fijos no están disponibles para reservar.", | |||
"round_robin_hosts_unavailable_for_booking": "No hay anfitriones de Round Robin disponibles para reservar.", | |||
"round_robin_host_unavailable_for_booking": "El anfitrión de Round Robin no está disponible para reservas.", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Round-robin terminology consistency
Elsewhere in this file “round robin” appears in lowercase and/or translated (“por turnos”). Consider aligning case/terminology for consistency.
Apply this diff if you prefer lowercase to match other occurrences:
- "round_robin_host_unavailable_for_booking": "El anfitrión de Round Robin no está disponible para reservas.",
+ "round_robin_host_unavailable_for_booking": "El anfitrión de round robin no está disponible para reservas.",
Verify the rename was applied across locales and the old key is removed:
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "New key presence across locales:"
locales=$(fd -t d . apps/web/public/static/locales -d 1 | wc -l)
rg -l '"round_robin_host_unavailable_for_booking"' apps/web/public/static/locales/*/common.json | wc -l
echo "Old key (should be 0 results):"
rg -n '"round_robin_hosts_unavailable_for_booking"' apps/web/public/static/locales/*/common.json || true
Length of output: 4441
Lowercase “round robin” in Spanish translation for consistency
The translation key remains unchanged across all locales. Only the Spanish string should use lowercase “round robin” to match other occurrences.
• File: apps/web/public/static/locales/es/common.json
• Line: 123
- "round_robin_host_unavailable_for_booking": "El anfitrión de Round Robin no está disponible para reservas.",
+ "round_robin_host_unavailable_for_booking": "El anfitrión de round robin no está disponible para reservas.",
📝 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.
"round_robin_host_unavailable_for_booking": "El anfitrión de Round Robin no está disponible para reservas.", | |
"round_robin_host_unavailable_for_booking": "El anfitrión de round robin no está disponible para reservas.", |
🤖 Prompt for AI Agents
In apps/web/public/static/locales/es/common.json around line 123, the Spanish
translation uses "Round Robin" capitalized; change it to lowercase "round robin"
so the string reads: "El anfitrión de round robin no está disponible para
reservas." — update only the Spanish value (keep the key unchanged) and ensure
JSON remains valid with proper quotes and a trailing comma if required by
surrounding lines.
"webhook_trigger_event": "El nombre del evento desencadenante (p. ej., BOOKING_CREATED, BOOKING_CANCELLED)", | ||
"webhook_created_at": "La hora del webhook", | ||
"webhook_type": "El slug del tipo de evento", | ||
"webhook_title": "El nombre del tipo de evento", | ||
"webhook_start_time": "La hora de inicio del evento", | ||
"webhook_end_time": "La hora de finalización del evento", | ||
"webhook_description": "La descripción del evento según se describe en la configuración del tipo de evento", | ||
"webhook_location": "Ubicación del evento", | ||
"webhook_uid": "El UID de la reserva", | ||
"webhook_reschedule_uid": "El UID para reprogramar", | ||
"webhook_cancellation_reason": "Motivo de cancelación", | ||
"webhook_rejection_reason": "Motivo del rechazo", | ||
"webhook_organizer_name": "Nombre del organizador", | ||
"webhook_organizer_email": "Correo electrónico del organizador", | ||
"webhook_organizer_timezone": "Zona horaria del organizador (p. ej., 'America/New_York', 'Asia/Kolkata')", | ||
"webhook_organizer_locale": "Configuración regional del organizador (p. ej., 'en', 'fr')", | ||
"webhook_attendee_name": "Nombre del primer asistente", | ||
"webhook_attendee_email": "Correo electrónico del primer asistente", | ||
"webhook_attendee_timezone": "Zona horaria del primer asistente", | ||
"webhook_attendee_locale": "Configuración regional del primer asistente", | ||
"webhook_team_name": "Nombre del equipo reservado", | ||
"webhook_team_members": "Miembros del equipo reservado", | ||
"webhook_video_call_url": "URL de videollamada para la reunión", | ||
"webhook_hide_variables": "Ocultar variables", | ||
"webhook_show_variable": "Mostrar variables disponibles", | ||
"webhook_event_and_booking": "Evento y reserva", | ||
"webhook_people": "Personas", | ||
"webhook_teams": "Equipos", | ||
"webhook_metadata": "Metadatos", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Webhook field labels: refine a couple for clarity and verify cross-locale presence
Two minor clarity tweaks suggested below; also ensure all webhook_* keys exist across locales to avoid UI gaps.
Proposed clarity tweaks:
- "webhook_created_at": "La hora del webhook",
+ "webhook_created_at": "Fecha y hora de creación del webhook",
- "webhook_type": "El slug del tipo de evento",
+ "webhook_type": "Identificador (slug) del tipo de evento",
Cross-locale verification:
🏁 Script executed:
#!/bin/bash
set -euo pipefail
keys=(
"webhook_trigger_event" "webhook_created_at" "webhook_type" "webhook_title"
"webhook_start_time" "webhook_end_time" "webhook_description" "webhook_location"
"webhook_uid" "webhook_reschedule_uid" "webhook_cancellation_reason"
"webhook_rejection_reason" "webhook_organizer_name" "webhook_organizer_email"
"webhook_organizer_timezone" "webhook_organizer_locale" "webhook_attendee_name"
"webhook_attendee_email" "webhook_attendee_timezone" "webhook_attendee_locale"
"webhook_team_name" "webhook_team_members" "webhook_video_call_url"
"webhook_hide_variables" "webhook_show_variable" "webhook_event_and_booking"
"webhook_people" "webhook_teams" "webhook_metadata" "stats" "booking_status"
)
locales=$(fd -t d . apps/web/public/static/locales -d 1 | wc -l)
for k in "${keys[@]}"; do
c=$(rg -l "\"$k\"" apps/web/public/static/locales/*/common.json | wc -l)
echo "$k -> $c/$locales"
done
Length of output: 68373
Refine Spanish labels and add missing webhook translations across all locales
- In apps/web/public/static/locales/es/common.json:
- "webhook_created_at": "La hora del webhook", + "webhook_created_at": "Fecha y hora de creación del webhook", - "webhook_type": "El slug del tipo de evento", + "webhook_type": "Identificador (slug) del tipo de evento",
- Cross-locale audit shows each
webhook_*
key is present in only 37 of 44 locale files. Please add the missingwebhook_*
entries to the remaining 7 locales’ common.json files to prevent untranslated labels in the UI.
📝 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.
"webhook_trigger_event": "El nombre del evento desencadenante (p. ej., BOOKING_CREATED, BOOKING_CANCELLED)", | |
"webhook_created_at": "La hora del webhook", | |
"webhook_type": "El slug del tipo de evento", | |
"webhook_title": "El nombre del tipo de evento", | |
"webhook_start_time": "La hora de inicio del evento", | |
"webhook_end_time": "La hora de finalización del evento", | |
"webhook_description": "La descripción del evento según se describe en la configuración del tipo de evento", | |
"webhook_location": "Ubicación del evento", | |
"webhook_uid": "El UID de la reserva", | |
"webhook_reschedule_uid": "El UID para reprogramar", | |
"webhook_cancellation_reason": "Motivo de cancelación", | |
"webhook_rejection_reason": "Motivo del rechazo", | |
"webhook_organizer_name": "Nombre del organizador", | |
"webhook_organizer_email": "Correo electrónico del organizador", | |
"webhook_organizer_timezone": "Zona horaria del organizador (p. ej., 'America/New_York', 'Asia/Kolkata')", | |
"webhook_organizer_locale": "Configuración regional del organizador (p. ej., 'en', 'fr')", | |
"webhook_attendee_name": "Nombre del primer asistente", | |
"webhook_attendee_email": "Correo electrónico del primer asistente", | |
"webhook_attendee_timezone": "Zona horaria del primer asistente", | |
"webhook_attendee_locale": "Configuración regional del primer asistente", | |
"webhook_team_name": "Nombre del equipo reservado", | |
"webhook_team_members": "Miembros del equipo reservado", | |
"webhook_video_call_url": "URL de videollamada para la reunión", | |
"webhook_hide_variables": "Ocultar variables", | |
"webhook_show_variable": "Mostrar variables disponibles", | |
"webhook_event_and_booking": "Evento y reserva", | |
"webhook_people": "Personas", | |
"webhook_teams": "Equipos", | |
"webhook_metadata": "Metadatos", | |
"webhook_trigger_event": "El nombre del evento desencadenante (p. ej., BOOKING_CREATED, BOOKING_CANCELLED)", | |
- "webhook_created_at": "La hora del webhook", | |
+ "webhook_created_at": "Fecha y hora de creación del webhook", | |
- "webhook_type": "El slug del tipo de evento", | |
+ "webhook_type": "Identificador (slug) del tipo de evento", | |
"webhook_title": "El nombre del tipo de evento", | |
"webhook_start_time": "La hora de inicio del evento", | |
"webhook_end_time": "La hora de finalización del evento", | |
"webhook_description": "La descripción del evento según se describe en la configuración del tipo de evento", | |
"webhook_location": "Ubicación del evento", | |
"webhook_uid": "El UID de la reserva", | |
"webhook_reschedule_uid": "El UID para reprogramar", | |
"webhook_cancellation_reason": "Motivo de cancelación", | |
"webhook_rejection_reason": "Motivo del rechazo", | |
"webhook_organizer_name": "Nombre del organizador", | |
"webhook_organizer_email": "Correo electrónico del organizador", | |
"webhook_organizer_timezone": "Zona horaria del organizador (p. ej., 'America/New_York', 'Asia/Kolkata')", | |
"webhook_organizer_locale": "Configuración regional del organizador (p. ej., 'en', 'fr')", | |
"webhook_attendee_name": "Nombre del primer asistente", | |
"webhook_attendee_email": "Correo electrónico del primer asistente", | |
"webhook_attendee_timezone": "Zona horaria del primer asistente", | |
"webhook_attendee_locale": "Configuración regional del primer asistente", | |
"webhook_team_name": "Nombre del equipo reservado", | |
"webhook_team_members": "Miembros del equipo reservado", | |
"webhook_video_call_url": "URL de videollamada para la reunión", | |
"webhook_hide_variables": "Ocultar variables", | |
"webhook_show_variable": "Mostrar variables disponibles", | |
"webhook_event_and_booking": "Evento y reserva", | |
"webhook_people": "Personas", | |
"webhook_teams": "Equipos", | |
"webhook_metadata": "Metadatos", |
"oauth_clients": "לקוחות OAuth", | ||
"oauth_clients_description": "נהל לקוחות OAuth עבור הארגון שלך", | ||
"create_oauth_client": "צור לקוח OAuth", | ||
"create_oauth_client_description": "צור לקוח OAuth חדש לאינטגרציות צד שלישי", | ||
"oauth_client_deletion_message": "לקוח OAuth נמחק בהצלחה", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Standardize OAuth key casing across translations and code (oauth_ vs oAuth_*)*
You added new keys with oauth_*
but this file still contains older oAuth_*
keys later (around Lines 2441–2446). Mixed casing commonly causes lookup misses.
- Decide on a single convention (prefer
oauth_*
) and migrate:- Translation keys in all locales:
• oAuth_client_creation_form → oauth_client_creation_form
• oAuth_client_creation_form_description → oauth_client_creation_form_description
• oAuth_client_updation_form → oauth_client_updation_form
• oAuth_client_updation_form_description → oauth_client_updation_form_description - Code usages accordingly.
- Translation keys in all locales:
Use this scan to locate remaining mixed-case uses in repo:
🏁 Script executed:
#!/bin/bash
echo "Translations using oAuth_* vs oauth_*:"
rg -n --glob 'apps/**/locales/**/*.json' -e '"oAuth_[^"]+"' -e '"oauth_[^"]+"'
echo -e "\nCode references:"
rg -n -e "t\\(['\"]oAuth_" -e "t\\(['\"]oauth_" apps web packages
Length of output: 53255
Standardize OAuth key casing to oauth_*
across translations and code
We still have mixed‐case keys for the OAuth creation/updation forms. Please migrate the four oAuth_*
keys to oauth_*
in every locale and update all code references:
• Translation files (apps/web/public/static/locales/**/common.json
), around line 2442 in each locale:
- Rename
"oAuth_client_creation_form"
→"oauth_client_creation_form"
- Rename
"oAuth_client_creation_form_description"
→"oauth_client_creation_form_description"
- Rename
"oAuth_client_updation_form"
→"oauth_client_updation_form"
- Rename
"oAuth_client_updation_form_description"
→"oauth_client_updation_form_description"
• Code references:
- apps/web/modules/settings/platform/oauth-clients/create-new-view.tsx
• Updatet("oAuth_client_creation_form")
→t("oauth_client_creation_form")
• Updatet("oAuth_client_creation_form_description")
→t("oauth_client_creation_form_description")
- apps/web/modules/settings/platform/oauth-clients/[clientId]/edit/edit-view.tsx
• Updatet("oAuth_client_updation_form")
→t("oauth_client_updation_form")
• Updatet("oAuth_client_updation_form_description")
→t("oauth_client_updation_form_description")
- web/app/(use-page-wrapper)/settings/platform/oauth-clients/create/page.tsx & …/edit/page.tsx: same
oAuth_*
→oauth_*
updates
You can verify no stray keys remain with:
rg -n '"oAuth_client_' apps/web/public/static/locales
rg -n 't\("oAuth_client_' apps/web/modules
🤖 Prompt for AI Agents
In apps/web/public/static/locales/he/common.json around lines 875 to 879, the
OAuth translation keys use mixed casing; rename the four keys from oAuth_* to
oauth_* (oAuth_client_creation_form → oauth_client_creation_form,
oAuth_client_creation_form_description → oauth_client_creation_form_description,
oAuth_client_updation_form → oauth_client_updation_form,
oAuth_client_updation_form_description → oauth_client_updation_form_description)
in every locale file and update all code references:
apps/web/modules/settings/platform/oauth-clients/create-new-view.tsx,
apps/web/modules/settings/platform/oauth-clients/[clientId]/edit/edit-view.tsx
and the create/edit page.tsx wrappers to use t("oauth_...") instead of
t("oAuth_..."); after changes run the provided ripgrep checks to ensure no stray
oAuth_* keys or t("oAuth_*") references remain.
@@ -120,7 +120,7 @@ | |||
"already_signed_up_for_this_booking_error": "Već ste se prijavili za ovu rezervaciju.", | |||
"hosts_unavailable_for_booking": "Neki od domaćina nisu dostupni za rezervaciju.", | |||
"fixed_hosts_unavailable_for_booking": "Neki od fiksnih domaćina nisu dostupni za rezervaciju.", | |||
"round_robin_hosts_unavailable_for_booking": "Nijedan Round Robin domaćin nije dostupan za rezervaciju.", | |||
"round_robin_host_unavailable_for_booking": "Round Robin domaćin nije dostupan za zakazivanje.", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Automate consistency audit for “Round Robin” and booking nouns.
There are still English “Round Robin” occurrences and mixed “zakazivanje/rezervacija” usage in the changed lines (e.g., Line 123 and Line 3366). Please verify and normalize across this locale.
Also applies to: 3366-3366
🏁 Script executed:
#!/bin/bash
set -euo pipefail
file="apps/web/public/static/locales/sr/common.json"
echo "— Occurrences of 'Round Robin' (should be localized) —"
rg -n -S '"[^"]*": "[^"]*Round Robin[^"]*"' "$file" || true
echo
echo "— Audit booking nouns around unavailability messages —"
rg -n -S $'"hosts_unavailable_for_booking"| "fixed_hosts_unavailable_for_booking"| "round_robin_host_unavailable_for_booking"' "$file"
echo
echo "— PBAC manage_* scope phrases (to harmonize) —"
rg -n -S '"pbac_desc_manage_[^"]*": "[^"]*u timovima organizacije|u organizaciji' "$file"
Length of output: 2977
Localize “Round Robin” and Standardize Booking Terms
We’ve identified multiple occurrences of the English term “Round Robin” in common.json
that need a Serbian translation, and an inconsistency between “zakazivanje” and “rezervacija” in the host-unavailability messages. Please update as follows:
• Replace all instances of “Round Robin” with the approved Serbian term (e.g. “rotaciona dodela”):
– round_robin_host_unavailable_for_booking (line 123)
– round_robin (line 806)
– salesforce_route_to_owner (line 2963)
– salesforce_do_not_route_to_owner (line 2965)
– reset_interval_weighted_rr (line 3101)
– rr_interval_successfully_updated (line 3118)
– rr_settings_successfully_updated (line 3263)
– distribution_basis_weighted_rr (line 3264)
– rr_load_balancing_disabled_with_groups (line 3366)
• Harmonize the booking noun in unavailability messages (choose either “rezervacija” or “zakazivanje”):
– hosts_unavailable_for_booking (line 121)
– fixed_hosts_unavailable_for_booking (line 122)
– round_robin_host_unavailable_for_booking (line 123)
Please apply these changes consistently across the locale file.
🤖 Prompt for AI Agents
In apps/web/public/static/locales/sr/common.json around lines 121–3366: replace
all occurrences of the English term "Round Robin" in the listed keys with the
approved Serbian term "rotaciona dodela" (keys at lines 123, 806, 2963, 2965,
3101, 3118, 3263, 3264, 3366) and harmonize the booking noun in the three
host-unavailable messages (lines 121, 122, 123) to use the chosen Serbian term
"rezervacija" (update hosts_unavailable_for_booking,
fixed_hosts_unavailable_for_booking, and
round_robin_host_unavailable_for_booking accordingly), ensuring the rest of each
translated string remains unchanged and formatting/JSON validity is preserved.
@@ -120,7 +120,7 @@ | |||
"already_signed_up_for_this_booking_error": "Du är redan anmäld till denna bokning.", | |||
"hosts_unavailable_for_booking": "Några av värdarna är inte tillgängliga för bokning.", | |||
"fixed_hosts_unavailable_for_booking": "Några av de fasta värdarna är inte tillgängliga för bokning.", | |||
"round_robin_hosts_unavailable_for_booking": "Inga Round Robin-värdar är tillgängliga för bokning.", | |||
"round_robin_host_unavailable_for_booking": "Round Robin-värden är inte tillgänglig för bokning.", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Check round-robin terminology consistency and upstream usages for renamed key
String reads well, but we mix “Round Robin-”/“round robin-”/“Round-robin” elsewhere (e.g., Lines 73, 1951, 3367). Please standardize the style across the file and other locales for a consistent brand voice.
Also verify callers have switched from the previous plural key to this new singular one across the codebase.
Run to confirm no lingering usages:
🏁 Script executed:
#!/bin/bash
rg -n $'round_robin_hosts_unavailable_for_booking|round_robin_host_unavailable_for_booking'
Length of output: 5791
🏁 Script executed:
#!/bin/bash
set -e
echo "Context around line 73:"
sed -n '60,90p' apps/web/public/static/locales/sv/common.json
echo
echo "Context around line 1951:"
sed -n '1930,1970p' apps/web/public/static/locales/sv/common.json
echo
echo "Context around line 3367:"
sed -n '3340,3380p' apps/web/public/static/locales/sv/common.json
Length of output: 8595
Standardize “Round Robin” Case & Hyphenation
We still see mixed casing/hyphenation in the Swedish locale (and similar patterns likely exist in other languages):
- Line 73: “round robin-sannolikhet” (all lowercase)
- Line 1951: “Round Robin-värdar” (capitalized)
- Lines 3367: a mix of “round robin” and “Round Robin” in settings descriptions
Please update these entries (and mirror the change across all locale files) to use a single, consistent style (e.g. capitalize both words and use the same hyphen/-dash convention: “Round Robin-…”).
All code callers have been updated to the new singular key—no references to the old plural key remain.
🤖 Prompt for AI Agents
In apps/web/public/static/locales/sv/common.json around line 123, standardize
all occurrences of “round robin” to use capitalized words and the hyphenated
form before nouns (e.g. "Round Robin-…"); search the file for all variants (e.g.
"round robin", "Round Robin", "round robin-sannolikhet", "Round Robin-värdar")
and replace the value text to the consistent style ("Round Robin-…") preserving
the rest of each string, then mirror the same replacements across all other
locale files so every language uses the same capitalization and hyphenation
convention.
f719da1
to
e2e999a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 5
🔭 Outside diff range comments (2)
apps/web/public/static/locales/et/common.json (1)
3315-3357
: Fix PBAC scope phrasing (“…organisatsiooni meeskondades”).Earlier reviews suggested removing the clunky suffix; apply concise, natural phrasing.
- "pbac_desc_manage_roles": "Kõik toimingud rollidega organisatsiooni meeskondades", + "pbac_desc_manage_roles": "Kõik toimingud rollidega organisatsioonis", @@ - "pbac_desc_manage_event_types": "Kõik toimingud sündmuste tüüpidega organisatsiooni meeskondades", + "pbac_desc_manage_event_types": "Kõik toimingud sündmuste tüüpidega organisatsioonis", @@ - "pbac_desc_manage_teams": "Kõik toimingud meeskondadega organisatsiooni meeskondades", + "pbac_desc_manage_teams": "Kõik toimingud organisatsiooni meeskondadega", @@ - "pbac_desc_manage_bookings": "Kõik toimingud broneeringutega organisatsiooni meeskondades", + "pbac_desc_manage_bookings": "Kõik toimingud broneeringutega organisatsioonis",apps/web/public/static/locales/hu/common.json (1)
1-3476
: Optional: Normalize “Round-Robin” Terminology in HU LocaleWe’ve found mixed uses of körforgó vs. Round Robin vs. Round-Robin in apps/web/public/static/locales/hu/common.json. To keep the UX consistent, please pick one form (e.g. “Round-Robin”) and update these entries accordingly:
• round_robin_host_unavailable_for_booking
• round_robin_hosts
• reschedule_with_same_round_robin_host_title
• reset_interval_weighted_rr
• distribution_basis_weighted_rr
• timestamp_basis_description
• rr_load_balancing_disabled_with_groups
• round_robin_settings_description
• round_robin_settings_updated_successfully
@@ -120,7 +120,7 @@ | |||
"already_signed_up_for_this_booking_error": "Вече сте записани за тази резервация.", | |||
"hosts_unavailable_for_booking": "Някои от домакините не са налични за резервация.", | |||
"fixed_hosts_unavailable_for_booking": "Някои от фиксираните домакини не са налични за резервация.", | |||
"round_robin_hosts_unavailable_for_booking": "Няма налични домакини от тип Round Robin за резервация.", | |||
"round_robin_host_unavailable_for_booking": "Домакинът на ротационния принцип не е наличен за резервация.", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Verify key rename and locale coverage for newly added keys
- Ensure all references to the old key are removed.
- Check that new/renamed keys exist across all locales to avoid runtime fallbacks.
Also applies to: 3366-3366, 3445-3474
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "1) Searching for lingering uses of deprecated key(s):"
rg -n --hidden --glob '!*node_modules*' $'round_robin_hosts_unavailable_for_booking' || true
echo ""
echo "2) Verify new keys exist across all locales/common.json files:"
# List of critical new/renamed keys introduced in this PR (subset, expand as needed)
keys=(
"round_robin_host_unavailable_for_booking"
"oauth_clients"
"oauth_clients_description"
"create_oauth_client"
"create_oauth_client_description"
"only_admin_can_manage_directory_sync"
"only_admin_can_manage_oauth_clients"
"use_my_own_form"
"use_our_headless_routing_api"
"pbac_resource_workflow"
"pbac_resource_attributes"
"pbac_desc_view_organization_attributes"
"pbac_desc_update_organization_attributes"
"pbac_desc_delete_organization_attributes"
"pbac_desc_create_organization_attributes"
"pbac_desc_manage_roles"
"pbac_desc_manage_event_types"
"pbac_desc_manage_teams"
"pbac_desc_manage_bookings"
"rr_load_balancing_disabled_with_groups"
"add_group"
"failed_bookings"
"webhook_created_at"
"webhook_type"
"webhook_description"
"webhook_show_variable"
"stats"
"booking_status"
)
# Find all locale common.json files
mapfile -t files < <(fd -t f common.json apps/web/public/static/locales)
missing=0
for f in "${files[@]}"; do
for k in "${keys[@]}"; do
if ! jq -e --arg k "$k" 'has($k)' "$f" >/dev/null; then
echo "MISSING: $k in $f"
missing=$((missing+1))
fi
done
done
echo ""
if [[ $missing -eq 0 ]]; then
echo "All checked keys are present across locales."
else
echo "$missing missing key occurrences found. Please add translations to avoid fallback."
fi
Length of output: 1343
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
echo "1) Searching for lingering uses of deprecated key:"
rg -n --hidden --glob '!*node_modules*' 'round_robin_hosts_unavailable_for_booking' || true
echo
echo "2) Verifying new/renamed keys across all locale common.json files:"
keys=(
"round_robin_host_unavailable_for_booking"
"oauth_clients"
"oauth_clients_description"
"create_oauth_client"
"create_oauth_client_description"
"only_admin_can_manage_directory_sync"
"only_admin_can_manage_oauth_clients"
"use_my_own_form"
"use_our_headless_routing_api"
"pbac_resource_workflow"
"pbac_resource_attributes"
"pbac_desc_view_organization_attributes"
"pbac_desc_update_organization_attributes"
"pbac_desc_delete_organization_attributes"
"pbac_desc_create_organization_attributes"
"pbac_desc_manage_roles"
"pbac_desc_manage_event_types"
"pbac_desc_manage_teams"
"pbac_desc_manage_bookings"
"rr_load_balancing_disabled_with_groups"
"add_group"
"failed_bookings"
"webhook_created_at"
"webhook_type"
"webhook_description"
"webhook_show_variable"
"stats"
"booking_status"
)
# Gather all common.json locale files
files=$(fd -t f common.json apps/web/public/static/locales)
if [[ -z "$files" ]]; then
echo "ERROR: No common.json files found in apps/web/public/static/locales"
exit 1
fi
missing=0
while IFS= read -r f; do
echo "Checking translations in: $f"
for k in "${keys[@]}"; do
if ! jq -e --arg key "$k" 'has($key)' "$f" >/dev/null; then
echo " MISSING: $k"
missing=$((missing + 1))
fi
done
done <<< "$files"
echo
if [[ $missing -eq 0 ]]; then
echo "SUCCESS: All keys are present across locales."
else
echo "FAIL: $missing missing key occurrences found. Please add translations to avoid runtime fallback."
exit 2
fi
Length of output: 141749
Missing translations detected for newly added localization keys
No lingering references to the deprecated key were found, but several locales are missing entries for the newly introduced keys. Please add translations for all of the following locale files to prevent runtime fallbacks:
- apps/web/public/static/locales/hr/common.json
- apps/web/public/static/locales/id/common.json
- apps/web/public/static/locales/iw/common.json
- apps/web/public/static/locales/lv/common.json
- apps/web/public/static/locales/sk/common.json
After adding translations, re-run the locale-coverage check to confirm all keys are present.
🤖 Prompt for AI Agents
In apps/web/public/static/locales/bg/common.json at line 123 the key
"round_robin_host_unavailable_for_booking" is present but the same key is
missing in the following locale files:
apps/web/public/static/locales/hr/common.json,
apps/web/public/static/locales/id/common.json,
apps/web/public/static/locales/iw/common.json,
apps/web/public/static/locales/lv/common.json, and
apps/web/public/static/locales/sk/common.json; add the
"round_robin_host_unavailable_for_booking" entry to each of those files with an
accurate translation equivalent to the Bulgarian text ("Host for round robin is
not available for booking"), save the files, and then re-run the locale-coverage
check to confirm all keys are present.
"oauth_clients": "OAuth ক্লায়েন্ট", | ||
"oauth_clients_description": "আপনার সংগঠনের জন্য OAuth ক্লায়েন্ট পরিচালনা করুন", | ||
"create_oauth_client": "OAuth ক্লায়েন্ট তৈরি করুন", | ||
"create_oauth_client_description": "তৃতীয়-পক্ষের ইন্টিগ্রেশনের জন্য একটি নতুন OAuth ক্লায়েন্ট তৈরি করুন", | ||
"oauth_client_deletion_message": "OAuth ক্লায়েন্ট সফলভাবে মুছে ফেলা হয়েছে", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Unify “সংস্থা” vs “সংগঠন” (consistency)
This file predominantly uses “সংস্থা”. Align the new OAuth strings.
- "oauth_clients_description": "আপনার সংগঠনের জন্য OAuth ক্লায়েন্ট পরিচালনা করুন",
+ "oauth_clients_description": "আপনার সংস্থার জন্য OAuth ক্লায়েন্ট পরিচালনা করুন",
Run to verify remaining inconsistencies:
🏁 Script executed:
#!/bin/bash
# Count occurrences of 'সংস্থা' vs 'সংগঠন' for consistency auditing
echo "সংস্থা count:"; rg -n "সংস্থা" apps/web/public/static/locales/bn/common.json | wc -l
echo "সংগঠন count:"; rg -n "সংগঠন" apps/web/public/static/locales/bn/common.json | wc -l
Length of output: 342
Unify “সংস্থা” Terminology in bn/common.json
Consistency check shows 111 occurrences of “সংস্থা” versus 39 of “সংগঠন”. Please replace all instances of “সংগঠন” with “সংস্থা” (using the appropriate inflected form, e.g. “সংস্থার” for genitive) in apps/web/public/static/locales/bn/common.json.
• File to update:
– apps/web/public/static/locales/bn/common.json
• Example replacement:
- "oauth_clients_description": "আপনার সংগঠনের জন্য OAuth ক্লায়েন্ট পরিচালনা করুন",
+ "oauth_clients_description": "আপনার সংস্থার জন্য OAuth ক্লায়েন্ট পরিচালনা করুন",
Run this to verify no “সংগঠন” remains:
rg -n "সংগঠন" apps/web/public/static/locales/bn/common.json
🤖 Prompt for AI Agents
apps/web/public/static/locales/bn/common.json around lines 875-879: the file
mixes two Bengali words for "organization" ("সংগঠন" and "সংস্থা"); replace every
instance of "সংগঠন" with the preferred term "সংস্থা", preserving correct
inflections (e.g., replace "সংগঠনের"→"সংস্থার", "সংগঠনে"→"সংস্থায়", etc.)
throughout the file so grammar remains correct; after making replacements run rg
-n "সংগঠন" apps/web/public/static/locales/bn/common.json to ensure no
occurrences remain and run a quick localization smoke test to confirm strings
still render properly.
"oauth_clients": "OAuth clients", | ||
"oauth_clients_description": "Beheer OAuth clients voor je organisatie", | ||
"create_oauth_client": "OAuth client aanmaken", | ||
"create_oauth_client_description": "Maak een nieuwe OAuth client voor integraties met derden", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Optional: verify remaining occurrences of non‑hyphenated “OAuth client(s)” and “Round Robin host”
To ensure global consistency across NL locales, scan for lingering non-hyphenated forms.
Also applies to: 1844-1845, 123-123
🏁 Script executed:
#!/bin/bash
# Search Dutch locales for non-hyphenated forms to update
rg -n --glob 'apps/web/public/static/locales/nl/**/*.json' -e '"OAuth client"' -e '"OAuth clients"' -e 'Round Robin host'
Length of output: 510
Ensure consistent hyphenation in NL locale strings
We still have non-hyphenated occurrences that need updating:
- apps/web/public/static/locales/nl/common.json:123
"round_robin_host_unavailable_for_booking": "Round Robin host is niet beschikbaar voor boekingen."
- apps/web/public/static/locales/nl/common.json:875
"oauth_clients": "OAuth clients"
- apps/web/public/static/locales/nl/common.json:2963
"salesforce_route_to_owner": "Contacteigenaar zal de Round Robin host zijn indien beschikbaar"
Please replace these with the hyphenated forms:
- “Round-Robin-host”
- “OAuth-clients”
🤖 Prompt for AI Agents
In apps/web/public/static/locales/nl/common.json around lines 875-878 (also
check lines ~123 and ~2963), replace the non-hyphenated Dutch strings with the
requested hyphenated forms: change "oauth_clients": "OAuth clients" to
"oauth_clients": "OAuth-clients", change
"round_robin_host_unavailable_for_booking": "Round Robin host is niet
beschikbaar voor boekingen." to use "Round-Robin-host", and change
"salesforce_route_to_owner": "Contacteigenaar zal de Round Robin host zijn
indien beschikbaar" to use "Round-Robin-host"; update only the string values
(keep keys unchanged), preserve surrounding JSON formatting and escaping, and
run a quick linter/JSON-parse to ensure no syntax errors.
"pbac_resource_attributes": "Egenskaper", | ||
"pbac_desc_view_organization_attributes": "Visa organisationens egenskaper", | ||
"pbac_desc_update_organization_attributes": "Uppdatera organisationens egenskaper", | ||
"pbac_desc_delete_organization_attributes": "Ta bort organisationens egenskaper", | ||
"pbac_desc_create_organization_attributes": "Skapa organisationens egenskaper", | ||
"pbac_desc_view_roles": "Visa roller", | ||
"pbac_desc_update_roles": "Uppdatera roller", | ||
"pbac_desc_delete_roles": "Radera roller", | ||
"pbac_desc_manage_roles": "Alla åtgärder för roller", | ||
"pbac_desc_manage_roles": "Alla åtgärder på roller inom organisationens team", | ||
"pbac_desc_create_workflows": "Skapa och konfigurera nya arbetsflöden", | ||
"pbac_desc_view_workflows": "Visa befintliga arbetsflöden och deras konfigurationer", | ||
"pbac_desc_update_workflows": "Redigera och ändra inställningar för arbetsflöden", | ||
"pbac_desc_delete_workflows": "Ta bort arbetsflöden från systemet", | ||
"pbac_desc_manage_workflows": "Fullständig hantering av alla arbetsflöden", | ||
"pbac_desc_create_event_types": "Skapa händelsetyper", | ||
"pbac_desc_view_event_types": "Visa händelsetyper", | ||
"pbac_desc_update_event_types": "Uppdatera händelsetyper", | ||
"pbac_desc_delete_event_types": "Radera händelsetyper", | ||
"pbac_desc_manage_event_types": "Alla åtgärder för händelsetyper", | ||
"pbac_desc_manage_event_types": "Alla åtgärder på händelsetyper inom organisationens team", | ||
"pbac_desc_create_teams": "Skapa team", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Clarify org-scope PBAC descriptions (avoid “organisationens team”).
The current phrasing “inom organisationens team” is awkward/redundant. Prefer “inom organisationen” to reflect org scope and avoid “team … team”.
Apply:
- "pbac_desc_manage_roles": "Alla åtgärder på roller inom organisationens team",
+ "pbac_desc_manage_roles": "Alla åtgärder på roller inom organisationen",
- "pbac_desc_manage_event_types": "Alla åtgärder på händelsetyper inom organisationens team",
+ "pbac_desc_manage_event_types": "Alla åtgärder på händelsetyper inom organisationen",
- "pbac_desc_manage_teams": "Alla åtgärder på team inom organisationens team",
+ "pbac_desc_manage_teams": "Alla åtgärder på team inom organisationen",
- "pbac_desc_manage_bookings": "Alla åtgärder på bokningar inom organisationens team",
+ "pbac_desc_manage_bookings": "Alla åtgärder på bokningar inom organisationen"
Also applies to: 3341-3342, 3356-3357
🤖 Prompt for AI Agents
In apps/web/public/static/locales/sv/common.json around lines 3315-3334 (and
also at 3341-3342, 3356-3357), several PBAC description strings use the awkward
phrase "inom organisationens team"; update those strings to use "inom
organisationen" instead to reflect org-level scope and remove the redundant
"team" wording, ensuring you only replace the phrase where it appears and keep
the rest of each translation unchanged.
e2e999a
to
f497fcb
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 6
🔭 Outside diff range comments (1)
apps/web/public/static/locales/ar/common.json (1)
73-73
: Also localize “round robin” reference in reassignment subtitleAvoid embedded English in AR UI.
- "event_reassigned_subtitle": "لن يظهر الحدث بعد الآن في تقويمك ولن يتأثر احتمال الـ round robin الخاص بك سلبًا", + "event_reassigned_subtitle": "لن يظهر الحدث بعد الآن في تقويمك، ولن تتأثر فرصك في الترتيب الدوري سلبًا",
♻️ Duplicate comments (75)
apps/web/public/static/locales/ko/common.json (3)
875-878
: Use “타사” instead of “서드파티”Align with more standard diction in KR locales.
"oauth_clients": "OAuth 클라이언트", "oauth_clients_description": "조직의 OAuth 클라이언트 관리", "create_oauth_client": "OAuth 클라이언트 생성", - "create_oauth_client_description": "서드파티 통합을 위한 새 OAuth 클라이언트 생성", + "create_oauth_client_description": "타사 통합을 위한 새 OAuth 클라이언트 생성",
3444-3451
: Unify “이벤트 유형” → “이벤트 타입” in webhook labelsMaintain consistency with the rest of the file (e.g., “이벤트 타입” used widely).
"webhook_created_at": "웹훅 생성 시간", - "webhook_type": "이벤트 유형 슬러그", - "webhook_title": "이벤트 유형 이름", + "webhook_type": "이벤트 타입 슬러그", + "webhook_title": "이벤트 타입 이름", "webhook_start_time": "이벤트 시작 시간", "webhook_end_time": "이벤트 종료 시간", - "webhook_description": "이벤트 유형 설정에 설명된 이벤트 설명", + "webhook_description": "이벤트 타입 설정에 설명된 이벤트 설명",Run a quick check to catch any remaining “이벤트 유형” in webhook-related lines:
#!/bin/bash rg -n '이벤트 유형' apps/web/public/static/locales/ko/common.json || true
123-123
: Repo-wide key presence and stale key usage checkMake sure all newly added keys exist across locales and the old renamed key isn’t used anywhere. Prior verification already flagged gaps across several locales (hr, id, lv, sk, ta, th).
#!/usr/bin/env bash set -euo pipefail locales_root='apps/web/public/static/locales' old_key='round_robin_hosts_unavailable_for_booking' echo "Searching for stale key usages (should be none):" rg -n --fixed-strings "$old_key" "$locales_root" || true echo # Minimal set of newly added keys from this file to spot-check across locales keys=( "round_robin_host_unavailable_for_booking" "round_robin_groups_helper" "oauth_clients" "oauth_clients_description" "create_oauth_client" "create_oauth_client_description" "only_admin_can_manage_directory_sync" "only_admin_can_manage_oauth_clients" "use_my_own_form" "use_our_headless_routing_api" "pbac_resource_workflow" "pbac_resource_attributes" "pbac_desc_manage_roles" "pbac_desc_manage_event_types" "pbac_desc_manage_teams" "pbac_desc_manage_bookings" "rr_load_balancing_disabled_with_groups" "add_group" "failed_bookings" "stats" "booking_status" ) missing=0 fd common.json "$locales_root" --type f | while read -r file; do for key in "${keys[@]}"; do if ! jq -e --arg k "$key" 'has($k)' "$file" >/dev/null 2>&1; then echo "MISSING: $file → $key" missing=1 fi done done if [[ $missing -ne 0 ]]; then echo "One or more keys are missing across locales." exit 1 else echo "All checked keys present across locales." fiAlso applies to: 352-352, 875-878, 1844-1845, 2255-2256, 3292-3292, 3323-3323, 3333-3333, 3341-3341, 3356-3356, 3366-3366, 3384-3384, 3416-3417, 3444-3474
apps/web/public/static/locales/et/common.json (4)
123-123
: Standardize “host” term to Estonian (“võõrustaja”).Keep host terminology consistent across the locale.
- "round_robin_host_unavailable_for_booking": "Round Robin'i host ei ole broneerimiseks saadaval.", + "round_robin_host_unavailable_for_booking": "Round Robin'i võõrustaja ei ole broneerimiseks saadaval."
2255-2256
: Use “marsruutimine” instead of “suunamine” for “routing”.Matches the project’s preferred terminology used elsewhere in this file/locales.
- "use_our_headless_routing_api": "Kasuta meie peata suunamise API-t ja omaenda vormi esitamiseks.", + "use_our_headless_routing_api": "Kasuta meie peata marsruutimise API-t ja oma vormi esitamiseks.",
3324-3324
: Tighten PBAC scope descriptions (“organisatsioonis” vs. “organisatsiooni meeskondades”).Shorter, more natural phrasing; aligns with earlier guidance.
- "pbac_desc_manage_roles": "Kõik toimingud rollidega organisatsiooni meeskondades", + "pbac_desc_manage_roles": "Kõik toimingud rollidega organisatsioonis", @@ - "pbac_desc_manage_event_types": "Kõik toimingud sündmuste tüüpidega organisatsiooni meeskondades", + "pbac_desc_manage_event_types": "Kõik toimingud sündmuste tüüpidega organisatsioonis", @@ - "pbac_desc_manage_teams": "Kõik toimingud meeskondadega organisatsiooni meeskondades", + "pbac_desc_manage_teams": "Kõik toimingud organisatsiooni meeskondadega", @@ - "pbac_desc_manage_bookings": "Kõik toimingud broneeringutega organisatsiooni meeskondades", + "pbac_desc_manage_bookings": "Kõik toimingud broneeringutega organisatsioonis",Also applies to: 3334-3334, 3342-3342, 3357-3357
3444-3464
: Standardize “webhook” and related nouns; fix “slug” and “locale” nouns.Use “veebihaak/veebihaagi” consistently; “lühinimi” for slug; “lokaat” for locale; “Ümberajastamise UID”.
"webhook_trigger_event": "Käivitussündmuse nimi (nt BOOKING_CREATED, BOOKING_CANCELLED)", - "webhook_created_at": "Veebikonksu loomise aeg", - "webhook_type": "Sündmuse tüübi slug", + "webhook_created_at": "Veebihaagi loomise aeg", + "webhook_type": "Sündmuse tüübi lühinimi", "webhook_title": "Sündmuse tüübi nimi", "webhook_start_time": "Sündmuse algusaeg", "webhook_end_time": "Sündmuse lõpuaeg", "webhook_description": "Sündmuse kirjeldus, nagu määratud sündmuse tüübi seadetes", "webhook_location": "Sündmuse asukoht", "webhook_uid": "Broneeringu UID", - "webhook_reschedule_uid": "Ümberplaneerimise UID", + "webhook_reschedule_uid": "Ümberajastamise UID", "webhook_cancellation_reason": "Tühistamise põhjus", "webhook_rejection_reason": "Keeldumise põhjus", "webhook_organizer_name": "Korraldaja nimi", "webhook_organizer_email": "Korraldaja e-post", "webhook_organizer_timezone": "Korraldaja ajavöönd (nt 'America/New_York', 'Asia/Kolkata')", - "webhook_organizer_locale": "Korraldaja lokaad (nt 'en', 'fr')", + "webhook_organizer_locale": "Korraldaja lokaat (nt 'en', 'fr')", "webhook_attendee_name": "Esimese osaleja nimi", "webhook_attendee_email": "Esimese osaleja e-post", "webhook_attendee_timezone": "Esimese osaleja ajavöönd", - "webhook_attendee_locale": "Esimese osaleja lokaad", + "webhook_attendee_locale": "Esimese osaleja lokaat",apps/web/public/static/locales/az/common.json (5)
3315-3320
: PBAC descriptions: use verbal-noun form, not imperativeExisting PBAC strings use verbal-noun forms (“… baxmaq/yeniləmək/silmək/yaratmaq”). These new entries use imperatives (“göstər”, “yeniləyin”, “silmək” mixed). Standardize for consistency.
Apply:
- "pbac_desc_view_organization_attributes": "Təşkilat atributlarını göstər", - "pbac_desc_update_organization_attributes": "Təşkilat atributlarını yeniləyin", - "pbac_desc_delete_organization_attributes": "Təşkilat atributlarını silin", - "pbac_desc_create_organization_attributes": "Təşkilat atributları yaradın", + "pbac_desc_view_organization_attributes": "Təşkilat atributlarına baxmaq", + "pbac_desc_update_organization_attributes": "Təşkilat atributlarını yeniləmək", + "pbac_desc_delete_organization_attributes": "Təşkilat atributlarını silmək", + "pbac_desc_create_organization_attributes": "Təşkilat atributları yaratmaq",
3323-3329
: PBAC workflow/roles descriptions: unify grammatical formAlign with verbal-noun style used elsewhere; avoid imperatives like “redaktə edin”, “göstərin”.
- "pbac_desc_manage_roles": "Təşkilat komandaları üzrə bütün rollarda əməliyyatlar", - "pbac_desc_create_workflows": "Yeni iş axınları yaradın və qurun", - "pbac_desc_view_workflows": "Mövcud iş axınlarını və onların konfiqurasiyalarını göstərin", - "pbac_desc_update_workflows": "İş axını parametrlərini redaktə edin və dəyişdirin", - "pbac_desc_delete_workflows": "İş axınlarını sistemdən silin", - "pbac_desc_manage_workflows": "Bütün iş axınlarına tam idarəetmə girişi", + "pbac_desc_manage_roles": "Təşkilat komandaları üzrə bütün rollar üzrə əməliyyatlar", + "pbac_desc_create_workflows": "İş axınları yaratmaq və qurmaq", + "pbac_desc_view_workflows": "Mövcud iş axınlarını və onların konfiqurasiyalarını göstərmək", + "pbac_desc_update_workflows": "İş axını parametrlərini redaktə etmək və dəyişdirmək", + "pbac_desc_delete_workflows": "İş axınlarını sistemdən silmək", + "pbac_desc_manage_workflows": "İş axınları üzrə bütün əməliyyatlar",
3333-3333
: PBAC event types manage: grammar alignmentAvoid mixed structure; align to the established “bütün … üzrə əməliyyatlar”.
- "pbac_desc_manage_event_types": "Təşkilat komandaları üzrə tədbir növləri üzrə bütün əməliyyatlar", + "pbac_desc_manage_event_types": "Təşkilat komandaları üzrə bütün tədbir növləri üzrə əməliyyatlar",
3341-3341
: PBAC teams manage: minor grammar tweakMatch “bütün … üzrə əməliyyatlar” pattern.
- "pbac_desc_manage_teams": "Təşkilat komandaları üzrə bütün komanda əməliyyatları", + "pbac_desc_manage_teams": "Təşkilat komandaları üzrə bütün komandalar üzrə əməliyyatlar",
3356-3356
: PBAC bookings manage: consistent phrasingPrefer “bütün … üzrə əməliyyatlar” to mirror siblings.
- "pbac_desc_manage_bookings": "Təşkilat komandaları üzrə bütün rezervasiya əməliyyatları", + "pbac_desc_manage_bookings": "Təşkilat komandaları üzrə bütün rezervasiyalar üzrə əməliyyatlar",apps/web/public/static/locales/ca/common.json (3)
123-123
: Unify “round robin” casing for consistency.Elsewhere in this locale it’s lowercase. Align this entry.
- "round_robin_host_unavailable_for_booking": "L'amfitrió de Round Robin no està disponible per a la reserva.", + "round_robin_host_unavailable_for_booking": "L'amfitrió de round robin no està disponible per a la reserva.",
3383-3383
: Use imperative voice for action label (“Afegeix un grup”).Matches other “add_*” keys.
- "add_group": "Afegir grup", + "add_group": "Afegeix un grup",
2255-2256
: Fix terminology (“routing/headless”) and grammar (“els enviaments”).Use Catalan terms and correct article agreement.
- "use_my_own_form": "Utilitza el meu propi formulari", - "use_our_headless_routing_api": "Utilitza la nostra API de routing headless i fes servir el teu propi formulari per a les enviaments.", + "use_my_own_form": "Utilitza el meu propi formulari", + "use_our_headless_routing_api": "Utilitza la nostra API d'encaminament sense interfície i fes servir el teu propi formulari per als enviaments.",apps/web/public/static/locales/el/common.json (1)
123-123
: Hyphenate “Round‑Robin” and use “διοργανωτής” for consistencyAligns with the project’s preferred terminology used elsewhere (διοργανωτής vs οικοδεσπότης) and hyphenation.
- "round_robin_host_unavailable_for_booking": "Ο οικοδεσπότης Round Robin δεν είναι διαθέσιμος για κράτηση.", + "round_robin_host_unavailable_for_booking": "Ο διοργανωτής Round-Robin δεν είναι διαθέσιμος για κράτηση.",apps/web/public/static/locales/zh-TW/common.json (2)
875-879
: 用詞不一致:「用戶端」↔「客戶端」;請與現有「OAuth 客戶端」對齊現有字串(例如 Line 879「OAuth 客戶端已成功刪除」)使用「客戶端」。本段新增多處使用「用戶端」,導致不一致。請統一為「客戶端」。
- "oauth_clients": "OAuth 用戶端", - "oauth_clients_description": "管理貴組織的 OAuth 用戶端", - "create_oauth_client": "建立 OAuth 用戶端", - "create_oauth_client_description": "為第三方整合建立新的 OAuth 用戶端" + "oauth_clients": "OAuth 客戶端", + "oauth_clients_description": "管理貴組織的 OAuth 客戶端", + "create_oauth_client": "建立 OAuth 客戶端", + "create_oauth_client_description": "為第三方整合建立新的 OAuth 客戶端"- "only_admin_can_manage_oauth_clients": "只有組織的管理員或擁有者可以管理 OAuth 用戶端", + "only_admin_can_manage_oauth_clients": "只有組織的管理員或擁有者可以管理 OAuth 客戶端",Run this to find remaining inconsistent occurrences in this file:
#!/bin/bash rg -n --no-heading '用戶端' apps/web/public/static/locales/zh-TW/common.json || trueAlso applies to: 1844-1846
3444-3473
: Standardize webhook labels: prefer「活動」over「事件」+ concise phrasingThe rest of the zh-TW UI uses「活動」as the canonical term; this block mixes in「事件」and adds unnecessary「的」. Unify terms and tighten labels.
- "webhook_trigger_event": "觸發事件的名稱(例如:BOOKING_CREATED、BOOKING_CANCELLED)", - "webhook_created_at": "Webhook 的建立時間", - "webhook_type": "事件類型的代稱", - "webhook_title": "事件類型名稱", - "webhook_start_time": "事件的開始時間", - "webhook_end_time": "事件的結束時間", - "webhook_description": "事件的描述,根據事件類型設定中的描述", - "webhook_location": "事件地點", + "webhook_trigger_event": "觸發活動的名稱(例如:BOOKING_CREATED、BOOKING_CANCELLED)", + "webhook_created_at": "Webhook 建立時間", + "webhook_type": "活動類型代碼", + "webhook_title": "活動類型名稱", + "webhook_start_time": "活動開始時間", + "webhook_end_time": "活動結束時間", + "webhook_description": "活動描述(取自活動類型設定)", + "webhook_location": "活動地點",- "webhook_uid": "預約的 UID", - "webhook_reschedule_uid": "重新排程的 UID", + "webhook_uid": "預約 UID", + "webhook_reschedule_uid": "重新安排 UID",- "webhook_event_and_booking": "事件與預約", + "webhook_event_and_booking": "活動與預約",(Leave “Webhook” capitalization as-is per brand term.)
apps/web/public/static/locales/nl/common.json (3)
123-123
: Hyphenate “round-robin-host” for NL consistencyPrior feedback still applies. Use the hyphenated compound.
- "round_robin_host_unavailable_for_booking": "Round Robin host is niet beschikbaar voor boekingen.", + "round_robin_host_unavailable_for_booking": "Round-robin-host is niet beschikbaar voor boekingen.",
1844-1845
: Consistent wording: “mapsynchronisatie” and “OAuth‑clients”Keep “mapsynchronisatie” (used for “directory_sync”) and hyphenate OAuth‑clients.
- "only_admin_can_manage_directory_sync": "Alleen de beheerder of eigenaar van de organisatie kan directory sync-instellingen beheren", - "only_admin_can_manage_oauth_clients": "Alleen de beheerder of eigenaar van de organisatie kan OAuth clients beheren", + "only_admin_can_manage_directory_sync": "Alleen de beheerder of eigenaar van de organisatie kan mapsynchronisatie-instellingen beheren", + "only_admin_can_manage_oauth_clients": "Alleen de beheerder of eigenaar van de organisatie kan OAuth-clients beheren",
875-878
: Hyphenate “OAuth‑client(s)”Align with standard hyphenation used elsewhere in the app and NL style.
- "oauth_clients": "OAuth clients", - "oauth_clients_description": "Beheer OAuth clients voor je organisatie", - "create_oauth_client": "OAuth client aanmaken", - "create_oauth_client_description": "Maak een nieuwe OAuth client voor integraties met derden", + "oauth_clients": "OAuth-clients", + "oauth_clients_description": "Beheer OAuth-clients voor je organisatie", + "create_oauth_client": "OAuth-client aanmaken", + "create_oauth_client_description": "Maak een nieuwe OAuth-client voor integraties met derden",apps/web/public/static/locales/da/common.json (3)
1844-1846
: Use product term “Directory Sync” (terminology consistency)Match product vocabulary; “synkronisering af mapper” suggests filesystem folders. Use “Directory Sync.”
- "only_admin_can_manage_directory_sync": "Kun organisationens administrator eller ejer kan administrere indstillinger for synkronisering af mapper", + "only_admin_can_manage_directory_sync": "Kun organisationens administrator eller ejer kan administrere indstillinger for Directory Sync",
3315-3320
: Standardize PBAC “attributes” term to “Attributter”Other PBAC strings use “attribut(ter)”; replace “Egenskaber.”
- "pbac_resource_attributes": "Egenskaber", + "pbac_resource_attributes": "Attributter",
3445-3475
: Webhook metadata: minor wording improvement for created timestampPrefer “Oprettelsestidspunkt for webhooken” (clearer) for webhook_created_at.
- "webhook_created_at": "Tidspunktet for webhooken", + "webhook_created_at": "Oprettelsestidspunkt for webhooken",Also ensure the new webhook_* keys are present across all locales to avoid runtime fallbacks.
apps/web/public/static/locales/es-419/common.json (1)
123-123
: Consistency with prior copy decision: use “para la reserva”.Previously suggested change for consistency with Line 121 remains unaddressed. Recommend singular form.
- "round_robin_host_unavailable_for_booking": "El anfitrión de Round Robin no está disponible para reservas.", + "round_robin_host_unavailable_for_booking": "El anfitrión de Round Robin no está disponible para la reserva.",apps/web/public/static/locales/it/common.json (2)
123-123
: Normalize “round robin” and align role term with established styleUse lowercase “round robin” and “organizzatore” instead of “host” for internal consistency with nearby strings.
- "round_robin_host_unavailable_for_booking": "L'host Round Robin non è disponibile per la prenotazione.", + "round_robin_host_unavailable_for_booking": "L'organizzatore round robin non è disponibile per la prenotazione.",
3366-3366
: Uniformare “Round Robin” → “round robin”Keep “round robin” lowercase for internal consistency (matches other adjustments requested in this file).
- "rr_load_balancing_disabled_with_groups": "Il bilanciamento del carico non è disponibile con i gruppi Round Robin", + "rr_load_balancing_disabled_with_groups": "Il bilanciamento del carico non è disponibile con i gruppi round robin",apps/web/public/static/locales/km/common.json (8)
352-352
: Fix Khmer phrasing for “take turns” in round-robin groups.Use “វេនគ្នា” instead of “លើកដៃ”.
Apply this diff:
- "round_robin_groups_helper": "មនុស្សក្នុងក្រុមនឹងលើកដៃជាបន្តបន្ទាប់ ហើយមនុស្សម្នាក់ពីក្រុមនីមួយៗនឹងចូលរួមក្នុងព្រឹត្តិការណ៍។", + "round_robin_groups_helper": "មនុស្សក្នុងក្រុមនឹងវេនគ្នា ហើយមនុស្សម្នាក់ពីក្រុមនីមួយៗនឹងចូលរួមក្នុងព្រឹត្តិការណ៍។",
875-878
: Use the consistent term for “Organization” (“អង្គការ”, not “អង្គភាព”).Keep org terminology consistent across the km locale.
Apply this diff:
"oauth_clients": "កម្មវិធី OAuth", -"oauth_clients_description": "គ្រប់គ្រងកម្មវិធី OAuth សម្រាប់អង្គភាពរបស់អ្នក", +"oauth_clients_description": "គ្រប់គ្រងកម្មវិធី OAuth សម្រាប់អង្គការរបស់អ្នក", "create_oauth_client": "បង្កើតកម្មវិធី OAuth", "create_oauth_client_description": "បង្កើតកម្មវិធី OAuth ថ្មីសម្រាប់ការតភ្ជាប់ជាមួយកម្មវិធីភាគីទីបី",Run to find remaining occurrences to update similarly:
#!/bin/bash rg -n $'អង្គភាព' apps/web/public/static/locales/km/common.json
1844-1845
: Admin notices: replace “អង្គភាព” with “អង្គការ”.Align with the rest of the locale.
Apply this diff:
-"only_admin_can_manage_directory_sync": "មានតែអ្នកគ្រប់គ្រងឬម្ចាស់អង្គភាពប៉ុណ្ណោះដែលអាចគ្រប់គ្រងការកំណត់ការធ្វើសមកាលកម្មថត", +"only_admin_can_manage_directory_sync": "មានតែអ្នកគ្រប់គ្រងឬម្ចាស់អង្គការប៉ុណ្ណោះដែលអាចគ្រប់គ្រងការកំណត់ការធ្វើសមកាលកម្មថត", -"only_admin_can_manage_oauth_clients": "មានតែអ្នកគ្រប់គ្រងឬម្ចាស់អង្គភាពប៉ុណ្ណោះដែលអាចគ្រប់គ្រងកម្មវិធី OAuth", +"only_admin_can_manage_oauth_clients": "មានតែអ្នកគ្រប់គ្រងឬម្ចាស់អង្គការប៉ុណ្ណោះដែលអាចគ្រប់គ្រងកម្មវិធី OAuth",
2255-2256
: “Headless” should not be translated literally.Keep “Headless” in English for clarity.
Apply this diff:
"use_my_own_form": "ប្រើទម្រង់ផ្ទាល់ខ្លួនរបស់ខ្ញុំ", -"use_our_headless_routing_api": "ប្រើ API ដឹកនាំដោយគ្មានចំណងជើងរបស់យើង និងប្រើទម្រង់ផ្ទាល់ខ្លួនរបស់អ្នកសម្រាប់ការដាក់ស្នើ។", +"use_our_headless_routing_api": "ប្រើ API Routing (Headless) របស់យើង ហើយប្រើទម្រង់ផ្ទាល់ខ្លួនរបស់អ្នកសម្រាប់ការដាក់ស្នើ។",
3315-3319
: PBAC attribute descriptors: replace “អង្គភាព” with “អង្គការ”.Consistency with org phrasing.
Apply this diff:
"pbac_resource_attributes": "គុណលក្ខណៈ", -"pbac_desc_view_organization_attributes": "មើលគុណលក្ខណៈអង្គភាព", +"pbac_desc_view_organization_attributes": "មើលគុណលក្ខណៈអង្គការ", -"pbac_desc_update_organization_attributes": "ធ្វើបច្ចុប្បន្នភាពគុណលក្ខណៈអង្គភាព", +"pbac_desc_update_organization_attributes": "ធ្វើបច្ចុប្បន្នភាពគុណលក្ខណៈអង្គការ", -"pbac_desc_delete_organization_attributes": "លុបគុណលក្ខណៈអង្គភាព", +"pbac_desc_delete_organization_attributes": "លុបគុណលក្ខណៈអង្គការ", -"pbac_desc_create_organization_attributes": "បង្កើតគុណលក្ខណៈអង្គភាព", +"pbac_desc_create_organization_attributes": "បង្កើតគុណលក្ខណៈអង្គការ",
3333-3333
: PBAC event types descriptor: use organization scope phrasing.Apply this diff:
-"pbac_desc_manage_event_types": "សកម្មភាពទាំងអស់លើប្រភេទព្រឹត្តិការណ៍ក្នុងក្រុមអង្គភាព", +"pbac_desc_manage_event_types": "សកម្មភាពទាំងអស់លើប្រភេទព្រឹត្តិការណ៍ក្នុងអង្គការ",
3341-3341
: PBAC teams descriptor: remove “ក្រុមអង្គភាព”.Apply this diff:
-"pbac_desc_manage_teams": "សកម្មភាពទាំងអស់លើក្រុមក្នុងក្រុមអង្គភាព", +"pbac_desc_manage_teams": "សកម្មភាពទាំងអស់លើក្រុមក្នុងអង្គការ",
3356-3356
: PBAC bookings descriptor: use “អង្គការ”.Apply this diff:
-"pbac_desc_manage_bookings": "សកម្មភាពទាំងអស់លើការកក់ក្នុងក្រុមអង្គភាព", +"pbac_desc_manage_bookings": "សកម្មភាពទាំងអស់លើការកក់ក្នុងអង្គការ",apps/web/public/static/locales/tr/common.json (5)
123-123
: Align RR terminology: use “Döngüsel organizatör”.Elsewhere in TR locale you use “Döngüsel Organizatör(ler)”. Update for consistency with in-product terminology.
Apply:
- "round_robin_host_unavailable_for_booking": "Sıralı ev sahibi rezervasyon için uygun değil.", + "round_robin_host_unavailable_for_booking": "Döngüsel organizatör rezervasyon için uygun değil.",Run to ensure no lingering usages of the old plural key remain:
#!/bin/bash # Verify old key is not referenced anywhere rg -n 'round_robin_hosts_unavailable_for_booking'
875-878
: Standardize “Organizasyon” → “Kuruluş” (OAuth section).TR locale elsewhere prefers “Kuruluş”. Update these new strings accordingly.
- "oauth_clients_description": "Organizasyonunuz için OAuth istemcilerini yönetin", + "oauth_clients_description": "Kuruluşunuz için OAuth istemcilerini yönetin",
1844-1845
: Standardize “organizasyonun” → “kuruluşun” (admin-only notices).Keep admin notices consistent with locale-wide choice “Kuruluş”.
- "only_admin_can_manage_directory_sync": "Dizin senkronizasyon ayarlarını yalnızca organizasyonun yöneticisi veya sahibi yönetebilir", - "only_admin_can_manage_oauth_clients": "OAuth istemcilerini yalnızca organizasyonun yöneticisi veya sahibi yönetebilir", + "only_admin_can_manage_directory_sync": "Dizin senkronizasyonu ayarlarını yalnızca kuruluşun yöneticisi veya sahibi yönetebilir", + "only_admin_can_manage_oauth_clients": "OAuth istemcilerini yalnızca kuruluşun yöneticisi veya sahibi yönetebilir",
3292-3292
: PBAC: use “Kuruluş” for consistency across descriptors.Replace “Organizasyon” with “Kuruluş” in these new permission descriptions.
- "pbac_desc_view_organization_attributes": "Organizasyon özniteliklerini görüntüle", - "pbac_desc_update_organization_attributes": "Organizasyon özniteliklerini güncelle", - "pbac_desc_delete_organization_attributes": "Organizasyon özniteliklerini sil", - "pbac_desc_create_organization_attributes": "Organizasyon öznitelikleri oluştur", + "pbac_desc_view_organization_attributes": "Kuruluş özniteliklerini görüntüle", + "pbac_desc_update_organization_attributes": "Kuruluş özniteliklerini güncelle", + "pbac_desc_delete_organization_attributes": "Kuruluş özniteliklerini sil", + "pbac_desc_create_organization_attributes": "Kuruluş öznitelikleri oluştur", - "pbac_desc_manage_roles": "Organizasyon ekipleri genelinde roller üzerindeki tüm işlemler", + "pbac_desc_manage_roles": "Kuruluş ekipleri genelinde roller üzerindeki tüm işlemler", - "pbac_desc_manage_event_types": "Organizasyon ekipleri genelinde etkinlik türleri üzerindeki tüm işlemler", + "pbac_desc_manage_event_types": "Kuruluş ekipleri genelinde etkinlik türleri üzerindeki tüm işlemler", - "pbac_desc_manage_teams": "Organizasyon ekipleri genelinde ekipler üzerindeki tüm işlemler", + "pbac_desc_manage_teams": "Kuruluş ekipleri genelinde ekipler üzerindeki tüm işlemler", - "pbac_desc_manage_bookings": "Organizasyon ekipleri genelinde rezervasyonlar üzerindeki tüm işlemler", + "pbac_desc_manage_bookings": "Kuruluş ekipleri genelinde rezervasyonlar üzerindeki tüm işlemler",Also applies to: 3315-3320, 3324-3329, 3333-3334, 3342-3342, 3356-3356
3444-3475
: Webhook labels: unify terminology and organizer wording.Earlier strings in this file use “Web kancası” and “Organizatör”. Update these new webhook variable labels for consistency and clarity.
- "webhook_created_at": "Webhook zamanı", + "webhook_created_at": "Web kancasının oluşturulma zamanı", - "webhook_reschedule_uid": "Yeniden planlama için UID", + "webhook_reschedule_uid": "Yeniden planlama UID'si", - "webhook_organizer_name": "Düzenleyenin adı", - "webhook_organizer_email": "Düzenleyenin e-postası", - "webhook_organizer_timezone": "Düzenleyenin saat dilimi (örn. 'America/New_York', 'Asia/Kolkata')", - "webhook_organizer_locale": "Düzenleyenin yerel ayarı (örn. 'en', 'fr')", + "webhook_organizer_name": "Organizatörün adı", + "webhook_organizer_email": "Organizatörün e-postası", + "webhook_organizer_timezone": "Organizatörün saat dilimi (örn. 'America/New_York', 'Asia/Kolkata')", + "webhook_organizer_locale": "Organizatörün yerel ayarı (örn. 'en', 'fr')",apps/web/public/static/locales/pl/common.json (1)
3444-3467
: Polish terminology consistency for webhook fields (“E‑mail”, “ustawienia regionalne”, and UID phrasing).Unify translations to match established terminology elsewhere in the file:
- Use “E‑mail” (with hyphen) instead of “Email”.
- Translate “locale” as “ustawienia regionalne” (not “Język”).
- Prefer “UID zmiany terminu” over “UID do zmiany terminu”.
Apply this diff:
- "webhook_reschedule_uid": "UID do zmiany terminu", + "webhook_reschedule_uid": "UID zmiany terminu", - "webhook_organizer_email": "Email organizatora", + "webhook_organizer_email": "E-mail organizatora", - "webhook_organizer_locale": "Język organizatora (np. 'en', 'fr')", + "webhook_organizer_locale": "Ustawienia regionalne organizatora (np. 'en', 'fr')", - "webhook_attendee_email": "Email pierwszego uczestnika", + "webhook_attendee_email": "E-mail pierwszego uczestnika", - "webhook_attendee_locale": "Język pierwszego uczestnika", + "webhook_attendee_locale": "Ustawienia regionalne pierwszego uczestnika",apps/web/public/static/locales/zh-CN/common.json (1)
3366-3366
: Replace remaining English “Round Robin” with Chinese term “轮流”Keep terminology fully localized and consistent with other strings (e.g., “轮流模式”).
Apply this diff:
- "rr_load_balancing_disabled_with_groups": "负载均衡在 Round Robin 组中不可用", + "rr_load_balancing_disabled_with_groups": "轮流组中不支持负载均衡",apps/web/public/static/locales/ar/common.json (6)
3315-3320
: PBAC attributes: standardize “Organization”Keep PBAC descriptor texts consistent.
- "pbac_desc_view_organization_attributes": "عرض سمات المؤسسة", - "pbac_desc_update_organization_attributes": "تحديث سمات المؤسسة", - "pbac_desc_delete_organization_attributes": "حذف سمات المؤسسة", - "pbac_desc_create_organization_attributes": "إنشاء سمات المؤسسة", + "pbac_desc_view_organization_attributes": "عرض سمات المنظمة", + "pbac_desc_update_organization_attributes": "تحديث سمات المنظمة", + "pbac_desc_delete_organization_attributes": "حذف سمات المنظمة", + "pbac_desc_create_organization_attributes": "إنشاء سمات المنظمة",
3366-3366
: Localize “round robin” in load-balancing noticeAvoid English leakage in AR locale.
- "rr_load_balancing_disabled_with_groups": "توزيع الحمل غير متاح مع مجموعات round robin", + "rr_load_balancing_disabled_with_groups": "توزيع الحمل غير متاح مع مجموعات الترتيب الدوري",
1844-1845
: Replace “المؤسسة” with “المنظمة” in admin noticesAlign with established usage elsewhere in this file.
- "only_admin_can_manage_directory_sync": "يمكن لمسؤول المؤسسة أو مالكها فقط إدارة إعدادات مزامنة الدليل", - "only_admin_can_manage_oauth_clients": "يمكن لمسؤول المؤسسة أو مالكها فقط إدارة عملاء OAuth", + "only_admin_can_manage_directory_sync": "يمكن لمسؤول المنظمة أو مالكها فقط إدارة إعدادات مزامنة الدليل", + "only_admin_can_manage_oauth_clients": "يمكن لمسؤول المنظمة أو مالكها فقط إدارة عملاء OAuth",
875-878
: Unify “Organization” term to “المنظمة”Consistency with the rest of the file.
- "oauth_clients_description": "إدارة عملاء OAuth لمؤسستك", + "oauth_clients_description": "إدارة عملاء OAuth لمنظمتك",
123-123
: Standardize round-robin termUse the established Arabic term “الترتيب الدوري” instead of “التناوب الدوري”.
- "round_robin_host_unavailable_for_booking": "مضيف التناوب الدوري غير متاح للحجز.", + "round_robin_host_unavailable_for_booking": "مضيف الترتيب الدوري غير متاح للحجز.",
3444-3474
: Fix Arabic webhook translations and unify “الويبهوك” spellingPlease update the Arabic locale to correct mistranslations for webhook fields and standardize spelling across the file.
• In apps/web/public/static/locales/ar/common.json, around lines 3444–3474:
- Change
webhook_trigger_event
to “اسم حدث المُشغِّل (مثل BOOKING_CREATED، BOOKING_CANCELLED)”- Change
webhook_created_at
to “وقت إنشاء الويبهوك”- Change
webhook_type
to “معرّف نوع الحدث”- Change
webhook_show_variable
to “إظهار المتغير المتاح”• Across the entire file (e.g. lines 230–3192), normalize all variants of “ويب هوك”/“ويبهوك”/“الويبهوك” to:
- Singular: “الويبهوك”
- Plural: “الويبهوكس”
Suggested diff:
- "webhook_trigger_event": "اسم حدث المشغل (مثل BOOKING_CREATED، BOOKING_CANCELLED)", + "webhook_trigger_event": "اسم حدث المُشغِّل (مثل BOOKING_CREATED، BOOKING_CANCELLED)", - "webhook_created_at": "وقت الويب هوك", + "webhook_created_at": "وقت إنشاء الويبهوك", - "webhook_type": "رابط نوع الحدث", + "webhook_type": "معرّف نوع الحدث", - "webhook_show_variable": "إظهار المتغيرات المتاحة", + "webhook_show_variable": "إظهار المتغير المتاح",Please apply these updates and run a global replace to ensure consistency.
apps/web/public/static/locales/ro/common.json (6)
875-878
: Switch to polite/plural tone (“dvs.”) for OAuth client strings.These regressed to the informal tone. Align with the project-wide “polite” voice.
- "oauth_clients": "Clienți OAuth", - "oauth_clients_description": "Gestionează clienții OAuth pentru organizația ta", - "create_oauth_client": "Creează un client OAuth", - "create_oauth_client_description": "Creează un nou client OAuth pentru integrări terțe", + "oauth_clients": "Clienți OAuth", + "oauth_clients_description": "Gestionați clienții OAuth pentru organizația dvs.", + "create_oauth_client": "Creați un client OAuth", + "create_oauth_client_description": "Creați un nou client OAuth pentru integrări terțe",
2255-2257
: Use polite/plural tone for embedding/headless routing options.Keep “Folosiți … propriul dvs.” to match the rest of the UI.
- "use_my_own_form": "Folosește propriul meu formular", - "use_our_headless_routing_api": "Folosește API-ul nostru de rutare fără interfață și propriul tău formular pentru trimitere.", + "use_my_own_form": "Folosiți propriul dvs. formular", + "use_our_headless_routing_api": "Folosiți API‑ul nostru de rutare fără interfață și propriul dvs. formular pentru trimitere.",
3315-3334
: PBAC descriptors: switch to polite/plural verbs (Vizualizați, Actualizați, Ștergeți, Creați, Editați, Eliminați).Maintain consistent voice across permissions text.
- "pbac_resource_attributes": "Atribute", - "pbac_desc_view_organization_attributes": "Vizualizează atributele organizației", - "pbac_desc_update_organization_attributes": "Actualizează atributele organizației", - "pbac_desc_delete_organization_attributes": "Șterge atributele organizației", - "pbac_desc_create_organization_attributes": "Creează atributele organizației", + "pbac_resource_attributes": "Atribute", + "pbac_desc_view_organization_attributes": "Vizualizați atributele organizației", + "pbac_desc_update_organization_attributes": "Actualizați atributele organizației", + "pbac_desc_delete_organization_attributes": "Ștergeți atributele organizației", + "pbac_desc_create_organization_attributes": "Creați atributele organizației", @@ - "pbac_desc_manage_roles": "Toate acțiunile asupra rolurilor din echipele organizației", - "pbac_desc_create_workflows": "Creează și configurează fluxuri de lucru noi", - "pbac_desc_view_workflows": "Vizualizează fluxurile de lucru existente și configurațiile acestora", - "pbac_desc_update_workflows": "Editează și modifică setările fluxurilor de lucru", - "pbac_desc_delete_workflows": "Elimină fluxurile de lucru din sistem", - "pbac_desc_manage_workflows": "Acces complet de gestionare pentru toate fluxurile de lucru", + "pbac_desc_manage_roles": "Toate acțiunile asupra rolurilor din echipele organizației", + "pbac_desc_create_workflows": "Creați și configurați fluxuri de lucru noi", + "pbac_desc_view_workflows": "Vizualizați fluxurile de lucru existente și configurațiile acestora", + "pbac_desc_update_workflows": "Editați și modificați setările fluxurilor de lucru", + "pbac_desc_delete_workflows": "Eliminați fluxurile de lucru din sistem", + "pbac_desc_manage_workflows": "Acces complet de gestionare pentru toate fluxurile de lucru", @@ - "pbac_desc_manage_event_types": "Toate acțiunile asupra tipurilor de evenimente din echipele organizației", + "pbac_desc_manage_event_types": "Toate acțiunile asupra tipurilor de evenimente din echipele organizației", @@ - "pbac_desc_manage_teams": "Toate acțiunile asupra echipelor din echipele organizației", + "pbac_desc_manage_teams": "Toate acțiunile asupra echipelor din echipele organizației", @@ - "pbac_desc_manage_bookings": "Toate acțiunile asupra rezervărilor din echipele organizației", + "pbac_desc_manage_bookings": "Toate acțiunile asupra rezervărilor din echipele organizației",Note: The manage_* lines retain content; the imperative changes affect the other descriptors in this block.
Also applies to: 3341-3357
3366-3366
: Keep terminology consistent: “Echilibrarea încărcării” and “round‑robin”.Align with prior usage and glossary.
- "rr_load_balancing_disabled_with_groups": "Distribuirea sarcinilor nu este disponibilă cu grupurile Round Robin", + "rr_load_balancing_disabled_with_groups": "Echilibrarea încărcării nu este disponibilă cu grupurile round‑robin",
3445-3474
: Webhook labels: improve clarity, tone, and “rezervare” consistency.
- Prefer concise “Creat la” for a timestamp label.
- Use polite imperatives.
- Replace “programare” with “rezervare”.
- "webhook_trigger_event": "Numele evenimentului declanșator (de exemplu, BOOKING_CREATED, BOOKING_CANCELLED)", - "webhook_created_at": "Ora creării webhook-ului", + "webhook_trigger_event": "Numele evenimentului declanșator (de exemplu, BOOKING_CREATED, BOOKING_CANCELLED)", + "webhook_created_at": "Creat la", @@ - "webhook_hide_variables": "Ascunde variabilele", - "webhook_show_variable": "Afișează variabilele disponibile", - "webhook_event_and_booking": "Eveniment și programare", + "webhook_hide_variables": "Ascundeți variabilele", + "webhook_show_variable": "Afișați variabilele disponibile", + "webhook_event_and_booking": "Eveniment și rezervare",
3473-3474
: Use Romanian term for booking state consistently.Prefer “Starea rezervării”.
- "stats": "Statistici", - "booking_status": "Status programare", + "stats": "Statistici", + "booking_status": "Starea rezervării",apps/web/public/static/locales/ru/common.json (4)
123-123
: Use “Организатор” instead of “Хост” for Round Robin consistencyReplace “Хост” with “Организатор” to stay consistent with existing RU locale terminology (e.g., awaiting_host → “организатор”).
Apply:
- "round_robin_host_unavailable_for_booking": "Хост Round Robin недоступен для бронирования.", + "round_robin_host_unavailable_for_booking": "Организатор Round Robin недоступен для бронирования.",Also verify there are no remaining usages of the old plural key name throughout the codebase.
#!/bin/bash # Search for old key in repo (to ensure it's fully migrated across locales and code) rg -n 'round_robin_hosts_unavailable_for_booking|round_robin_host_unavailable_for_booking' -A 2 -B 2
875-879
: Standardize OAuth hyphenation and adjacent stringThe new OAuth entries use the correct “OAuth-клиент(ы)” form. Please fix the adjacent legacy string at Line 879 to match:
- "oauth_client_deletion_message": "OAuth клиент успешно удален", + "oauth_client_deletion_message": "OAuth-клиент успешно удален",Additionally, prior feedback still applies to rename keys starting with “oAuth_” (see around Lines 2441–2445) to “OAuth_” and adjust their values (“OAuth-клиент”) for casing/hyphenation consistency.
3292-3334
: PBAC additions look good; adjust scope phrasing for roles
- New resources and workflow descriptors are solid.
- Please update scope wording for roles to reflect organization scope (not “в командах организации”), per previous guidance.
Apply:
- "pbac_desc_manage_roles": "Все действия с ролями в командах организации", + "pbac_desc_manage_roles": "Все действия с ролями в организации",Note: Keep “pbac_desc_manage_event_types” as “в командах организации” (current text is OK).
3356-3356
: PBAC: bookings scope should be organization-wideAlign the bookings scope to organization level (not team-only), per prior scope updates.
- "pbac_desc_manage_bookings": "Все действия с бронированиями в командах организации", + "pbac_desc_manage_bookings": "Все действия с бронированиями в организации",apps/web/public/static/locales/uk/common.json (4)
123-123
: Unify “host” terminology: replace “Організатор” with “Ведучий”.Align with the rest of the locale where “ведучий/ведучі” is used for host.
- "round_robin_host_unavailable_for_booking": "Організатор почергового розподілу недоступний для бронювання.", + "round_robin_host_unavailable_for_booking": "Ведучий почергового розподілу недоступний для бронювання.",
875-878
: Hyphenate “OAuth-клієнт” and tighten phrasing.Follow Ukrainian hyphenation for compound foreign terms and streamline sentences.
- "oauth_clients": "OAuth клієнти", - "oauth_clients_description": "Керуйте OAuth клієнтами для вашої організації", - "create_oauth_client": "Створити OAuth клієнта", - "create_oauth_client_description": "Створіть нового OAuth клієнта для інтеграцій з третіми сторонами", + "oauth_clients": "OAuth-клієнти", + "oauth_clients_description": "Керуйте OAuth-клієнтами вашої організації", + "create_oauth_client": "Створити OAuth-клієнта", + "create_oauth_client_description": "Створіть нового OAuth‑клієнта для інтеграцій зі сторонніми сервісами",
1844-1845
: Consistency: use “Лише …” and hyphenate “OAuth-клієнтами”.Matches style used elsewhere (“Лише …”) and corrects hyphenation.
- "only_admin_can_manage_directory_sync": "Тільки адміністратор або власник організації може керувати налаштуваннями синхронізації каталогу", - "only_admin_can_manage_oauth_clients": "Тільки адміністратор або власник організації може керувати OAuth клієнтами", + "only_admin_can_manage_directory_sync": "Лише адміністратор або власник організації може керувати налаштуваннями синхронізації каталогу", + "only_admin_can_manage_oauth_clients": "Лише адміністратор або власник організації може керувати OAuth-клієнтами",
3444-3474
: Standardize: “вебгук” (not “вебхук”), lowercase “слаг”, prefer “Учасники”, and pluralize “Показати змінні”.These align with existing usage and earlier decisions in this locale.
- "webhook_created_at": "Час створення вебхука", - "webhook_type": "Слаг типу події", + "webhook_created_at": "Час створення вебгука", + "webhook_type": "слаг типу події", @@ - "webhook_team_members": "Члени забронованої команди", + "webhook_team_members": "Учасники забронованої команди", @@ - "webhook_show_variable": "Показати доступні змінні", + "webhook_show_variable": "Показати змінні",To scan the file for remaining inconsistencies and harmonize globally, you can run:
#!/bin/bash # Ukrainian locale consistency checks rg -n $'вебхук|вебгук' apps/web/public/static/locales/uk/common.json rg -n $'\\bСлаг\\b|\\bслаг\\b' apps/web/public/static/locales/uk/common.json rg -n $'OAuth клієнт(ами|а|и)?' apps/web/public/static/locales/uk/common.json rg -n $'Члени забронованої команди|Учасники забронованої команди' apps/web/public/static/locales/uk/common.jsonapps/web/public/static/locales/no/common.json (3)
123-123
: Use “bestilling” instead of “booking” (regression from earlier suggestion).This key previously switched to “bestilling” for Norwegian style consistency. It’s reverted here.
- "round_robin_host_unavailable_for_booking": "Round Robin-vert er ikke tilgjengelig for booking.", + "round_robin_host_unavailable_for_booking": "Round Robin-vert er ikke tilgjengelig for bestilling.",
3324-3341
: PBAC phrasing consistency: “organisasjonens team” and “hendelsestyper”.Earlier feedback (accepted) updated these; current values show a regression. Align terminology across the PBAC section.
- "pbac_desc_manage_roles": "Alle handlinger på roller på tvers av organisasjonsteam", + "pbac_desc_manage_roles": "Alle handlinger på roller på tvers av organisasjonens team", @@ - "pbac_desc_manage_event_types": "Alle handlinger på arrangementstyper på tvers av organisasjonsteam", + "pbac_desc_manage_event_types": "Alle handlinger på hendelsestyper på tvers av organisasjonens team", @@ - "pbac_desc_manage_teams": "Alle handlinger på team på tvers av organisasjonsteam", + "pbac_desc_manage_teams": "Alle handlinger på team på tvers av organisasjonens team", @@ - "pbac_desc_manage_bookings": "Alle handlinger på bookinger på tvers av organisasjonsteam", + "pbac_desc_manage_bookings": "Alle handlinger på bookinger på tvers av organisasjonens team",Also applies to: 3356-3356
3444-3472
: Regression: webhook labels reverted to verbose sentences — switch back to concise UI labels.These keys are used as UI labels, not help text. Prior commit trimmed them; current file reintroduces long descriptions. Re-apply concise, noun-style labels for readability.
- "webhook_trigger_event": "Navnet på utløserhendelsen (f.eks. BOOKING_CREATED, BOOKING_CANCELLED)", + "webhook_trigger_event": "Utløserhendelse", - "webhook_created_at": "Tidspunktet for webhook", + "webhook_created_at": "Opprettet", - "webhook_type": "Hendelsestype-slug", + "webhook_type": "Hendelsestype (slug)", - "webhook_title": "Navnet på hendelsestypen", + "webhook_title": "Tittel", - "webhook_start_time": "Hendelsens starttid", + "webhook_start_time": "Starttid", - "webhook_end_time": "Hendelsens sluttid", + "webhook_end_time": "Sluttid", - "webhook_description": "Hendelsens beskrivelse som beskrevet i innstillingene for hendelsestypen", + "webhook_description": "Beskrivelse", - "webhook_location": "Hendelsens sted", + "webhook_location": "Sted", - "webhook_uid": "UID for bestillingen", + "webhook_uid": "Booking-UID", - "webhook_reschedule_uid": "UID for omplanlegging", + "webhook_reschedule_uid": "Ombookings-UID", - "webhook_cancellation_reason": "Grunn for avbestilling", + "webhook_cancellation_reason": "Avbestillingsgrunn", - "webhook_rejection_reason": "Grunn for avvisning", + "webhook_rejection_reason": "Avslagsgrunn", - "webhook_organizer_name": "Navn på arrangøren", + "webhook_organizer_name": "Arrangørens navn", - "webhook_organizer_email": "E-post til arrangøren", + "webhook_organizer_email": "Arrangørens e-post", - "webhook_organizer_timezone": "Tidssone for arrangøren (f.eks. 'America/New_York', 'Asia/Kolkata')", + "webhook_organizer_timezone": "Arrangørens tidssone", - "webhook_organizer_locale": "Språk for arrangøren (f.eks. 'en', 'fr')", + "webhook_organizer_locale": "Arrangørens språk", - "webhook_attendee_name": "Navn på første deltaker", + "webhook_attendee_name": "Første deltakers navn", - "webhook_attendee_email": "E-post til første deltaker", + "webhook_attendee_email": "Første deltakers e-post", - "webhook_attendee_timezone": "Tidssone for første deltaker", + "webhook_attendee_timezone": "Første deltakers tidssone", - "webhook_attendee_locale": "Språk for første deltaker", + "webhook_attendee_locale": "Første deltakers språk", - "webhook_team_name": "Navn på teamet som er bestilt", + "webhook_team_name": "Teamnavn", - "webhook_team_members": "Medlemmer av teamet som er bestilt", + "webhook_team_members": "Teammedlemmer", - "webhook_video_call_url": "Video-URL for møtet", + "webhook_video_call_url": "Video-URL", - "webhook_hide_variables": "Skjul variabler", + "webhook_hide_variables": "Skjul variabler", - "webhook_show_variable": "Vis tilgjengelige variabler", + "webhook_show_variable": "Vis variabler", - "webhook_event_and_booking": "Arrangement og bestilling", + "webhook_event_and_booking": "Arrangement og booking", - "webhook_people": "Folk", + "webhook_people": "Personer", - "webhook_teams": "Team", + "webhook_teams": "Team", - "webhook_metadata": "Metadata", + "webhook_metadata": "Metadata",Please also sanity-check the rendered UI in packages/features/webhooks/components/WebhookForm.tsx to confirm the labels still fit and no explanatory text was expected.
apps/web/public/static/locales/es/common.json (4)
123-123
: Lowercase “round robin” for consistency with locale usageUse lowercase to match other occurrences and maintain terminology consistency.
- "round_robin_host_unavailable_for_booking": "El anfitrión de Round Robin no está disponible para reservas.", + "round_robin_host_unavailable_for_booking": "El anfitrión de round robin no está disponible para reservas.",
875-878
: Tone consistency: prefer “Administra” over “Gestiona”Aligns with prevalent tone elsewhere in this file.
- "oauth_clients_description": "Gestiona los clientes OAuth para tu organización", + "oauth_clients_description": "Administra los clientes OAuth para tu organización",
3416-3417
: LGTM: Analytics/status labels“Reservas fallidas” and “Estadísticas/Estado de la reserva” read well.
3444-3472
: Refine two webhook labels for clarityImprove specificity for created-at and type fields.
- "webhook_created_at": "La hora del webhook", + "webhook_created_at": "Fecha y hora de creación del webhook", - "webhook_type": "El slug del tipo de evento", + "webhook_type": "Identificador (slug) del tipo de evento",apps/web/public/static/locales/de/common.json (3)
123-123
: Standardize Round‑Robin term and hyphenation (“Veranstalter”).Use “Round‑Robin” (hyphenated) and “Veranstalter” for consistency with other entries and prior guidance.
- "round_robin_host_unavailable_for_booking": "Round Robin-Gastgeber ist für Buchungen nicht verfügbar.", + "round_robin_host_unavailable_for_booking": "Round‑Robin‑Veranstalter ist für Buchungen nicht verfügbar.",
3315-3334
: Fix awkward PBAC scope phrasing (“… in den Teams der Organisation”).Avoid repetition like “Teams in den Teams…”. Use “innerhalb der Organisation” for clarity and parallelism.
- "pbac_desc_manage_roles": "Alle Aktionen für Rollen in den Teams der Organisation", + "pbac_desc_manage_roles": "Alle Aktionen für Rollen innerhalb der Organisation", - "pbac_desc_manage_event_types": "Alle Aktionen für Ereignistypen in den Teams der Organisation", + "pbac_desc_manage_event_types": "Alle Aktionen für Ereignistypen innerhalb der Organisation", - "pbac_desc_manage_teams": "Alle Aktionen für Teams in den Teams der Organisation", + "pbac_desc_manage_teams": "Alle Aktionen für Teams innerhalb der Organisation", - "pbac_desc_manage_bookings": "Alle Aktionen für Buchungen in den Teams der Organisation", + "pbac_desc_manage_bookings": "Alle Aktionen für Buchungen innerhalb der Organisation",Also applies to: 3341-3341, 3356-3356
3366-3366
: Localize “Load Balancing” and hyphenate “Round‑Robin‑Gruppen”.Align with earlier usage of “Lastverteilung”.
- "rr_load_balancing_disabled_with_groups": "Load Balancing ist mit Round Robin Gruppen nicht verfügbar", + "rr_load_balancing_disabled_with_groups": "Lastverteilung ist mit Round‑Robin‑Gruppen nicht verfügbar",apps/web/public/static/locales/ja/common.json (3)
1844-1845
: Unify “Owner” term to 所有者 (not オーナー) for consistency
This mirrors prior guidance and usage elsewhere in this file.Apply:
- "only_admin_can_manage_directory_sync": "組織の管理者またはオーナーのみがディレクトリ同期設定を管理できます", - "only_admin_can_manage_oauth_clients": "組織の管理者またはオーナーのみがOAuthクライアントを管理できます", + "only_admin_can_manage_directory_sync": "組織の管理者または所有者のみがディレクトリ同期設定を管理できます", + "only_admin_can_manage_oauth_clients": "組織の管理者または所有者のみがOAuthクライアントを管理できます",
3323-3323
: Replace awkward “組織チーム全体の…” with “組織全体の…”
This phrasing was previously flagged; align with the simpler, consistent form.Apply:
- "pbac_desc_manage_roles": "組織チーム全体のロールに対するすべてのアクション", + "pbac_desc_manage_roles": "組織全体のロールに対するすべてのアクション", - "pbac_desc_manage_event_types": "組織チーム全体のイベントタイプに対するすべてのアクション", + "pbac_desc_manage_event_types": "組織全体のイベントタイプに対するすべてのアクション", - "pbac_desc_manage_teams": "組織チーム全体のチームに対するすべてのアクション", + "pbac_desc_manage_teams": "組織全体のチームに対するすべてのアクション", - "pbac_desc_manage_bookings": "組織チーム全体の予約に対するすべてのアクション", + "pbac_desc_manage_bookings": "組織全体の予約に対するすべてのアクション",Also applies to: 3333-3333, 3341-3341, 3356-3356
3366-3366
: Standardize “load balancing” translation to 負荷分散
Other strings in this file already use 負荷分散; align this one.Apply:
- "rr_load_balancing_disabled_with_groups": "ラウンドロビングループではロードバランシングを利用できません", + "rr_load_balancing_disabled_with_groups": "ラウンドロビングループでは負荷分散を利用できません",Optionally verify remaining occurrences to standardize across the file:
#!/bin/bash rg -n 'ロードバランシング|負荷分散' apps/web/public/static/locales/ja/common.json
"pbac_desc_manage_roles": "جميع الإجراءات على الأدوار عبر فرق المؤسسة", | ||
"pbac_desc_create_workflows": "إنشاء وإعداد سير عمل جديد", | ||
"pbac_desc_view_workflows": "عرض سير العمل الحالي وإعداداته", | ||
"pbac_desc_update_workflows": "تعديل وتغيير إعدادات سير العمل", | ||
"pbac_desc_delete_workflows": "إزالة سير العمل من النظام", | ||
"pbac_desc_manage_workflows": "وصول كامل لإدارة جميع سير العمل", | ||
"pbac_desc_create_event_types": "إنشاء أنواع الأحداث", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
PBAC manage-scope strings: replace “المؤسسة” with “المنظمة”
Maintain consistent org terminology across PBAC scope lines.
- "pbac_desc_manage_roles": "جميع الإجراءات على الأدوار عبر فرق المؤسسة",
+ "pbac_desc_manage_roles": "جميع الإجراءات على الأدوار عبر فرق المنظمة",
- "pbac_desc_manage_event_types": "جميع الإجراءات على أنواع الفعاليات عبر فرق المؤسسة",
+ "pbac_desc_manage_event_types": "جميع الإجراءات على أنواع الفعاليات عبر فرق المنظمة",
- "pbac_desc_manage_teams": "جميع الإجراءات على الفرق عبر فرق المؤسسة",
+ "pbac_desc_manage_teams": "جميع الإجراءات على الفرق عبر فرق المنظمة",
- "pbac_desc_manage_bookings": "جميع الإجراءات على الحجوزات عبر فرق المؤسسة",
+ "pbac_desc_manage_bookings": "جميع الإجراءات على الحجوزات عبر فرق المنظمة",
Also applies to: 3333-3333, 3341-3341, 3356-3356
🤖 Prompt for AI Agents
In apps/web/public/static/locales/ar/common.json around lines 3323-3329 (and
also update lines 3333, 3341, 3356 as noted), replace the Arabic word "المؤسسة"
with "المنظمة" in the PBAC manage-scope strings so the org terminology is
consistent; locate the PBAC scope lines that reference "المؤسسة" and change them
to use "المنظمة", then run a quick lint/locale validation to ensure no syntax
errors.
@@ -120,7 +120,7 @@ | |||
"already_signed_up_for_this_booking_error": "Έχετε ήδη εγγραφεί για αυτή την κράτηση", | |||
"hosts_unavailable_for_booking": "Ορισμένοι από τους οικοδεσπότες δεν είναι διαθέσιμοι για κράτηση", | |||
"fixed_hosts_unavailable_for_booking": "Ορισμένοι από τους σταθερούς οικοδεσπότες δεν είναι διαθέσιμοι για κράτηση.", | |||
"round_robin_hosts_unavailable_for_booking": "Κανένας οικοδεσπότης Round Robin δεν είναι διαθέσιμος για κράτηση.", | |||
"round_robin_host_unavailable_for_booking": "Ο οικοδεσπότης Round Robin δεν είναι διαθέσιμος για κράτηση.", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Verify no stale references and unify “Round‑Robin” across EL locale
- Ensure the old key round_robin_hosts_unavailable_for_booking is not referenced anywhere.
- Standardize “Round‑Robin” hyphenation across this EL file.
Also applies to: 3366-3366
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "Searching for stale key usages..."
rg -n $'round_robin_hosts_unavailable_for_booking' -g '!node_modules' || true
echo
echo "Checking EL locale for inconsistent 'Round Robin' hyphenation..."
echo "Occurrences of 'Round Robin' (should be zero after standardization):"
rg -n $'"[^"]*Round Robin[^"]*"' apps/web/public/static/locales/el/common.json || true
echo
echo "Occurrences of 'Round-Robin' (preferred):"
rg -n $'"[^"]*Round-Robin[^"]*"' apps/web/public/static/locales/el/common.json || true
Length of output: 1546
Standardize “Round-Robin” Hyphenation in EL Locale
No occurrences of the old key round_robin_hosts_unavailable_for_booking
were found. However, there are several untranslated strings still using “Round Robin” without the hyphen. Please update these entries in apps/web/public/static/locales/el/common.json
:
- Line 123 (
round_robin_host_unavailable_for_booking
):
“Ο οικοδεσπότης Round Robin δεν είναι διαθέσιμος για κράτηση.” → “Ο οικοδεσπότης Round-Robin δεν είναι διαθέσιμος για κράτηση.” - Line 806 (
round_robin
):
“Round Robin” → “Round-Robin” - Line 3101 (
reset_interval_weighted_rr
):
“Επαναφορά διαστήματος για σταθμισμένο Round Robin” → “Επαναφορά διαστήματος για σταθμισμένο Round-Robin” - Line 3118 (
rr_interval_successfully_updated
):
“Το διάστημα Round Robin ενημερώθηκε με επιτυχία” → “Το διάστημα Round-Robin ενημερώθηκε με επιτυχία” - Line 3263 (
rr_settings_successfully_updated
):
“Οι ρυθμίσεις Round Robin ενημερώθηκαν με επιτυχία” → “Οι ρυθμίσεις Round-Robin ενημερώθηκαν με επιτυχία” - Line 3264 (
distribution_basis_weighted_rr
):
“Βάση κατανομής για σταθμισμένο Round Robin” → “Βάση κατανομής για σταθμισμένο Round-Robin” - Line 3366 (
rr_load_balancing_disabled_with_groups
):
“Η εξισορρόπηση φόρτου δεν είναι διαθέσιμη με ομάδες Round Robin” → “Η εξισορρόπηση φόρτου δεν είναι διαθέσιμη με ομάδες Round-Robin”
🤖 Prompt for AI Agents
In apps/web/public/static/locales/el/common.json around lines 123, 806, 3101,
3118, 3263, 3264 and 3366, the Greek translations use "Round Robin" without the
hyphen; update the values for the specified keys to use "Round-Robin" (line 123:
round_robin_host_unavailable_for_booking → "Ο οικοδεσπότης Round-Robin δεν είναι
διαθέσιμος για κράτηση.", line 806: round_robin → "Round-Robin", line 3101:
reset_interval_weighted_rr → "Επαναφορά διαστήματος για σταθμισμένο
Round-Robin", line 3118: rr_interval_successfully_updated → "Το διάστημα
Round-Robin ενημερώθηκε με επιτυχία", line 3263:
rr_settings_successfully_updated → "Οι ρυθμίσεις Round-Robin ενημερώθηκαν με
επιτυχία", line 3264: distribution_basis_weighted_rr → "Βάση κατανομής για
σταθμισμένο Round-Robin", line 3366: rr_load_balancing_disabled_with_groups → "Η
εξισορρόπηση φόρτου δεν είναι διαθέσιμη με ομάδες Round-Robin"); ensure exact
spelling and hyphenation are applied and keep surrounding punctuation unchanged.
@@ -120,7 +120,7 @@ | |||
"already_signed_up_for_this_booking_error": "Je bent al ingeschreven voor deze boeking.", | |||
"hosts_unavailable_for_booking": "Sommige hosts zijn niet beschikbaar voor boeking.", | |||
"fixed_hosts_unavailable_for_booking": "Sommige vaste hosts zijn niet beschikbaar voor boeking.", | |||
"round_robin_hosts_unavailable_for_booking": "Geen Round Robin hosts beschikbaar voor boeking.", | |||
"round_robin_host_unavailable_for_booking": "Round Robin host is niet beschikbaar voor boekingen.", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
One more scan for lingering non‑hyphenated forms (“Round Robin host”, “OAuth clients”)
Ensure global consistency across NL locales; a few occurrences still remain (including Salesforce routing key at Line 2963).
Run to locate lingering instances:
Also applies to: 875-878, 1844-1845, 2963-2963
🏁 Script executed:
#!/bin/bash
# Find non-hyphenated occurrences in NL locales
rg -n --glob 'apps/web/public/static/locales/nl/**/*.json' -e '"OAuth clients"' -e '"OAuth client"' -e 'Round Robin host' -e 'Round Robin' || true
Length of output: 1732
Update remaining non-hyphenated “Round Robin” and “OAuth clients” in NL locale
We still have several keys in apps/web/public/static/locales/nl/common.json
using the non-hyphenated forms. Please replace:
"Round Robin"
→"Round-Robin"
"OAuth clients"
→"OAuth-clients"
"OAuth client"
→"OAuth-client"
Affected entries:
• Line 123: round_robin_host_unavailable_for_booking
• Line 806: round_robin
• Line 875: oauth_clients
• Line 1751: billing_freeplan_description
• Line 2963: salesforce_route_to_owner
• Line 2965: salesforce_do_not_route_to_owner
• Line 3101: reset_interval_weighted_rr
• Line 3118: rr_interval_successfully_updated
• Line 3263: rr_settings_successfully_updated
• Line 3264: distribution_basis_weighted_rr
• Line 3368: round_robin_settings_updated_successfully
🤖 Prompt for AI Agents
In apps/web/public/static/locales/nl/common.json around lines 123, 806, 875,
1751, 2963, 2965, 3101, 3118, 3263, 3264 and 3368, several Dutch translation
strings use the non-hyphenated forms "Round Robin" and "OAuth clients"/"OAuth
client"; update those strings by replacing "Round Robin" with "Round-Robin",
"OAuth clients" with "OAuth-clients", and "OAuth client" with "OAuth-client"
while preserving the rest of each translation and punctuation.
"oauth_clients": "Ứng dụng OAuth", | ||
"oauth_clients_description": "Quản lý ứng dụng OAuth cho tổ chức của bạn", | ||
"create_oauth_client": "Tạo ứng dụng OAuth", | ||
"create_oauth_client_description": "Tạo một ứng dụng OAuth mới cho tích hợp bên thứ ba", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
OAuth phrasing here looks consistent; normalize across file
These four entries read well. There are still occurrences elsewhere mixing “OAuth client/Client” (English) with Vietnamese. Let’s normalize all to “Ứng dụng OAuth” for labels and “ứng dụng OAuth” mid-sentence.
Would you like me to submit a follow-up patch to unify the remaining occurrences listed below (e.g., admin_oAuth_description, oauth_client_updated_successfully, oauth_client_not_found, select_oAuth_client)?
Run to verify leftovers:
🏁 Script executed:
#!/bin/bash
rg -n --hidden $'"OAuth client"|"OAuth Client"' apps/web/public/static/locales/vi/common.json
Length of output: 94
#!/bin/bash
Look for mixed-case OAuth usages in keys/values to identify inconsistencies
rg -n 'OAuth|oAuth' apps/web/public/static/locales/vi/common.json
#!/bin/bash
Broadly search for any occurrences of “oauth” (case-insensitive) in keys or values
to identify all spots needing “Ứng dụng OAuth”/“ứng dụng OAuth” normalization.
rg -n -i 'oauth' apps/web/public/static/locales/vi/common.json
🏁 Script executed:
#!/bin/bash
# Search for all case-insensitive "oauth" occurrences to identify inconsistent phrasing
rg -n -i oauth apps/web/public/static/locales/vi/common.json
Length of output: 1792
Normalize OAuth phrasing across Vietnamese translations
I’ve found multiple inconsistent occurrences of “OAuth client/Client” in apps/web/public/static/locales/vi/common.json
. To unify on “Ứng dụng OAuth” (for labels) and “ứng dụng OAuth” (within sentences), here are all the spots that would need updating:
• Line 240 (webhook_update_form_description
):
“Thêm một webhook vào OAuthClient của bạn.”
→ “Thêm một webhook vào ứng dụng OAuth của bạn.”
• Line 879 (oauth_client_deletion_message
):
“Đã xóa thành công OAuth client”
→ “Đã xóa thành công ứng dụng OAuth”
• Line 1889 (admin_oAuth_description
):
“Thêm OAuth Client mới”
→ “Thêm ứng dụng OAuth mới”
• Line 2441 (oAuth
):
“OAuth”
→ “Ứng dụng OAuth”
• Line 2442 (oAuth_client_creation_form
):
“Biểu mẫu tạo OAuth client”
→ “Biểu mẫu tạo ứng dụng OAuth”
• Line 2443 (oAuth_client_creation_form_description
):
“Đây là biểu mẫu để tạo một OAuth client mới”
→ “Đây là biểu mẫu để tạo một ứng dụng OAuth mới”
• Line 2444 (oAuth_client_updation_form
):
“Biểu mẫu cập nhật OAuth client”
→ “Biểu mẫu cập nhật ứng dụng OAuth”
• Line 2445 (oAuth_client_updation_form_description
):
“Đây là biểu mẫu để chỉnh sửa một OAuth client hiện có”
→ “Đây là biểu mẫu để chỉnh sửa một ứng dụng OAuth hiện có”
• Line 2485 (oauth_access_information
):
“…Bạn cho phép ứng dụng này sử dụng thông tin…”
→ “…Bạn cho phép ứng dụng OAuth này sử dụng thông tin…”
• Line 2762 (updating_oauth_client_error
):
“Đã xảy ra lỗi khi cập nhật OAuth client,…”
→ “Đã xảy ra lỗi khi cập nhật ứng dụng OAuth,…”
• Line 2763 (creating_oauth_client_error
):
“Đã xảy ra lỗi khi tạo OAuth client,…”
→ “Đã xảy ra lỗi khi tạo ứng dụng OAuth,…”
• Line 3044 (managed_users_description
):
“Xem tất cả người dùng được quản lý được tạo bởi OAuth client của bạn”
→ “Xem tất cả người dùng được quản lý được tạo bởi ứng dụng OAuth của bạn”
• Line 3049 (select_oAuth_client
):
“Chọn OAuth Client”
→ “Chọn ứng dụng OAuth”
• Line 3187 (oauth_client_updated_successfully
):
“Đã cập nhật OAuth client thành công”
→ “Đã cập nhật ứng dụng OAuth thành công”
• Line 3188 (oauth_client_not_found
):
“Không tìm thấy OAuth Client.”
→ “Không tìm thấy ứng dụng OAuth.”
Let me know if you’d like me to submit a follow-up patch with these replacements.
🤖 Prompt for AI Agents
In apps/web/public/static/locales/vi/common.json around lines 875-878, several
keys use inconsistent "OAuth client/Client" phrasing; update the listed keys to
use "Ứng dụng OAuth" for labels and "ứng dụng OAuth" within
sentences—specifically change webhook_update_form_description,
oauth_client_deletion_message, admin_oAuth_description, oAuth,
oAuth_client_creation_form, oAuth_client_creation_form_description,
oAuth_client_updation_form, oAuth_client_updation_form_description,
oauth_access_information, updating_oauth_client_error,
creating_oauth_client_error, managed_users_description, select_oAuth_client,
oauth_client_updated_successfully, and oauth_client_not_found to the
translations provided in the review (use exact casing: "Ứng dụng OAuth" for
standalone labels and "ứng dụng OAuth" inside sentences) and run a quick grep
through the file to ensure no other occurrences remain.
f497fcb
to
48a3400
Compare
There was a problem hiding this 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/bn/common.json (1)
2441-2445
: Update Bengali locale to use “OAuth” consistentlyThe Bengali translations still use “Oauth” (lowercase “a”) in four entries. Please update these to the correct “OAuth” branding in
apps/web/public/static/locales/bn/common.json
:• Line 2441:
"oAuth": "Oauth",
→"oAuth": "OAuth",
• Line 2442:"oAuth_client_creation_form": "Oauth ক্লায়েন্ট তৈরির ফর্ম",
→"oAuth_client_creation_form": "OAuth ক্লায়েন্ট তৈরির ফর্ম",
• Line 2444:"oAuth_client_updation_form": "Oauth ক্লায়েন্ট আপডেট ফর্ম",
→"oAuth_client_updation_form": "OAuth ক্লায়েন্ট আপডেট ফর্ম",
• Line 3049:"select_oAuth_client": "Oauth ক্লায়েন্ট নির্বাচন করুন",
→"select_oAuth_client": "OAuth ক্লায়েন্ট নির্বাচন করুন",
--- a/apps/web/public/static/locales/bn/common.json +++ b/apps/web/public/static/locales/bn/common.json @@ -2441,5 +2441,5 @@ "oAuth": "Oauth", - "oAuth": "Oauth", + "oAuth": "OAuth", "oAuth_client_creation_form": "Oauth ক্লায়েন্ট তৈরির ফর্ম", - "oAuth_client_creation_form": "Oauth ক্লায়েন্ট তৈরির ফর্ম", + "oAuth_client_creation_form": "OAuth ক্লায়েন্ট তৈরির ফর্ম", "oAuth_client_creation_form_description": "এটি একটি নতুন ওআউথ ক্লায়েন্ট তৈরি করার ফর্ম", "oAuth_client_updation_form": "Oauth ক্লায়েন্ট আপডেট ফর্ম", @@ -3049,1 +3049,1 @@ - "select_oAuth_client": "Oauth ক্লায়েন্ট নির্বাচন করুন", + "select_oAuth_client": "OAuth ক্লায়েন্ট নির্বাচন করুন",apps/web/public/static/locales/ja/common.json (1)
2442-2446
: Unify OAuth key casing for consistencyThere are both
oauth_*
(lines 875, 876, 879, 2485, 3187, 3188) andoAuth_*
(lines 2442–2445) keys inapps/web/public/static/locales/ja/common.json
. This inconsistency can lead to lookup errors—please choose one convention (e.g. all lowercaseoauth_*
) and align the keys.
- apps/web/public/static/locales/ja/common.json:
- Rename at lines 2442–2445:
oAuth_client_creation_form
→oauth_client_creation_form
oAuth_client_creation_form_description
→oauth_client_creation_form_description
oAuth_client_updation_form
→oauth_client_updation_form
oAuth_client_updation_form_description
→oauth_client_updation_form_description
- Update any code or tests that reference the renamed keys.
@@ -349,6 +349,7 @@ | |||
"available_apps_lower_case": "mövcud tətbiqlər", | |||
"available_apps_desc": "Aşağıda populyar tətbiqləri görün və <0>Tətbiq Mağazamızda</0> daha çoxunu kəşf edin", | |||
"fixed_host_helper": "Tədbirdə iştirak etməli olan hər kəsi əlavə edin. <0>Ətraflı öyrənin</0>", | |||
"round_robin_groups_helper": "Qrupdakı insanlar növbə ilə iştirak edir, hər qrupdan bir nəfər tədbirdə iştirak edəcək.", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Grammar agreement (plural subject requires plural verb)
“insanlar ... edir” should be “edirlər”.
- "round_robin_groups_helper": "Qrupdakı insanlar növbə ilə iştirak edir, hər qrupdan bir nəfər tədbirdə iştirak edəcək.",
+ "round_robin_groups_helper": "Qrupdakı insanlar növbə ilə iştirak edirlər, hər qrupdan bir nəfər tədbirdə iştirak edəcək.",
Additionally, for consistency, Line 353 (“round_robin_helper”) uses the same singular verb form. Consider updating it similarly:
"round_robin_helper": "Qrupdakı insanlar növbə ilə iştirak edirlər və tədbirdə yalnız bir nəfər iştirak edəcək."
🤖 Prompt for AI Agents
In apps/web/public/static/locales/az/common.json around line 352, the
Azerbaijani string uses singular verb form ("edir") with a plural subject
("insanlar"); change "edir" to the plural "edirlar/edirlər" (use the correct
orthography "edirlər") so the sentence reads "insanlar ... edirlər". Also update
the adjacent key on line 353 ("round_robin_helper") to use the same plural verb
form for consistency, e.g. replace the singular verb with "edirlər" so both
translations agree with the plural subject.
"oauth_clients": "OAuth-Clients", | ||
"oauth_clients_description": "Verwalten Sie OAuth-Clients für Ihre Organisation", | ||
"create_oauth_client": "OAuth-Client erstellen", | ||
"create_oauth_client_description": "Erstellen Sie einen neuen OAuth-Client für Drittanbieter-Integrationen", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Unify key casing for OAuth across the file (and code).
This file mixes oauth_*
and oAuth*
keys (e.g., Line 2441 et seq use oAuth
). For consistency and discoverability, prefer oauth_*
everywhere. Renaming requires updating code references accordingly.
Proposed renames in this file (non-exhaustive):
- admin_oAuth_description → admin_oauth_description
- oAuth → oauth
- oAuth_client_creation_form → oauth_client_creation_form
- oAuth_client_creation_form_description → oauth_client_creation_form_description
- oAuth_client_updation_form → oauth_client_updation_form
- oAuth_client_updation_form_description → oauth_client_updation_form_description
- select_oAuth_client → select_oauth_client
Run to find mixed-case keys and usages:
🏁 Script executed:
#!/bin/bash
# List mixed-case OAuth keys in locales
rg -n --glob 'apps/web/public/static/locales/**/*.json' '"oAuth'
# Find code usages of these keys (update as needed)
rg -n "oAuth_client_|admin_oAuth_|select_oAuth_client"
Length of output: 52383
Unify OAuth key casing across locales and code
We currently have mixed‐case oauth_*
and oAuth*
keys in our locale files, lockfile and code. For consistency and easier maintenance, all keys should use lowercase oauth_*
.
Locations requiring updates:
- Locale files:
- apps/web/public/static/locales/*/common.json (lines ≈2441–2445 in each language)
- Lockfile:
- i18n.lock entries at lines 1886, 2439–2442 and 3046
- Code references:
- apps/web/modules/settings/platform/oauth-clients/create-new-view.tsx
- apps/web/modules/settings/platform/managed-users/managed-users-view.tsx
- apps/web/modules/settings/platform/oauth-clients/[clientId]/edit/edit-view.tsx
- apps/web/app/(use-page-wrapper)/settings/(admin-layout)/admin/oAuth/page.tsx
- apps/web/app/(use-page-wrapper)/settings/platform/oauth-clients/**
Proposed key renames (non-exhaustive):
oAuth
→oauth
admin_oAuth_description
→admin_oauth_description
oAuth_client_creation_form
→oauth_client_creation_form
oAuth_client_creation_form_description
→oauth_client_creation_form_description
oAuth_client_updation_form
→oauth_client_updation_form
oAuth_client_updation_form_description
→oauth_client_updation_form_description
select_oAuth_client
→select_oauth_client
After renaming, update all t(...)
and import references accordingly and regenerate your translation lockfile.
🤖 Prompt for AI Agents
In apps/web/public/static/locales/de/common.json around lines 875–878, keys use
mixed casing for OAuth (e.g., "oauth_*" vs "oAuth*"); update these keys to use
lowercase "oauth_*" consistently (apply same renames shown in the comment: e.g.,
oAuth → oauth, admin_oAuth_description → admin_oauth_description,
oAuth_client_creation_form → oauth_client_creation_form, etc.), then update the
same key names across all locale files under apps/web/public/static/locales,
update the corresponding i18n.lock entries (lines referenced in the review), and
search/replace all code references and t(...) calls in the listed files and any
other occurrences (apps/web/modules/settings/... and apps/web/app/... paths) so
they import/use the new lowercase keys; finally regenerate the translation
lockfile to reflect the changes.
48a3400
to
a50eafc
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 14
🔭 Outside diff range comments (2)
apps/web/public/static/locales/bn/common.json (1)
2441-2445
: Normalize OAuth references inbn/common.json
Please unify the “OAuth” branding in apps/web/public/static/locales/bn/common.json:
• Values only (safe): change any occurrence of “Oauth” or lowercase “oAuth” in translation strings to “OAuth”
• Optional (breaking): rename keys fromoAuth_*
/admin_oAuth_*
/select_oAuth_*
tooauth_*
for consistent key namingLocations to update:
- Line 1889:
"admin_oAuth_description"
- Lines 2441–2445: keys
oAuth
,oAuth_client_creation_form
,oAuth_client_creation_form_description
,oAuth_client_updation_form
,oAuth_client_updation_form_description
- Line 3049:
"select_oAuth_client"
Minimal change (values only):
--- a/apps/web/public/static/locales/bn/common.json +++ b/apps/web/public/static/locales/bn/common.json @@ -2441,5 +2441,5 @@ - "oAuth": "Oauth", + "oAuth": "OAuth", - "oAuth_client_creation_form": "Oauth ক্লায়েন্ট তৈরির ফর্ম", + "oAuth_client_creation_form": "OAuth ক্লায়েন্ট তৈরির ফর্ম", - "oAuth_client_creation_form_description": "এটি একটি নতুন ওআউথ ক্লায়েন্ট তৈরি করার ফর্ম", + "oAuth_client_creation_form_description": "এটি একটি নতুন OAuth ক্লায়েন্ট তৈরি করার ফর্ম", - "oAuth_client_updation_form": "Oauth ক্লায়েন্ট আপডেট ফর্ম", + "oAuth_client_updation_form": "OAuth ক্লায়েন্ট আপডেট ফর্ম", - "oAuth_client_updation_form_description": "এটি একটি বিদ্যমান ওআউথ ক্লায়েন্ট সম্পাদনা করার ফর্ম", + "oAuth_client_updation_form_description": "এটি একটি বিদ্যমান OAuth ক্লায়েন্ট সম্পাদনা করার ফর্ম", @@ -3049 +3049 @@ - "select_oAuth_client": "Oauth ক্লায়েন্ট নির্বাচন করুন", + "select_oAuth_client": "OAuth ক্লায়েন্ট নির্বাচন করুন",Optional renaming of keys (breaking change):
--- a/apps/web/public/static/locales/bn/common.json +++ b/apps/web/public/static/locales/bn/common.json @@ -1889 +1889 - "admin_oAuth_description": "নতুন OAuth ক্লায়েন্ট যুক্ত করুন", + "admin_oauth_description": "নতুন OAuth ক্লায়েন্ট যুক্ত করুন", @@ -2441,5 +2441,5 - "oAuth": "OAuth", + "oauth": "OAuth", - "oAuth_client_creation_form": "OAuth ক্লায়েন্ট তৈরির ফর্ম", + "oauth_client_creation_form": "OAuth ক্লায়েন্ট তৈরির ফর্ম", - "oAuth_client_creation_form_description": "এটি একটি নতুন OAuth ক্লায়েন্ট তৈরি করার ফর্ম", + "oauth_client_creation_form_description": "এটি একটি নতুন OAuth ক্লায়েন্ট তৈরি করার ফর্ম", - "oAuth_client_updation_form": "OAuth ক্লায়েন্ট আপডেট ফর্ম", + "oauth_client_updation_form": "OAuth ক্লায়েন্ট আপডেট ফর্ম", - "oAuth_client_updation_form_description": "এটি একটি বিদ্যমান OAuth ক্লায়েন্ট সম্পাদনা করার ফর্ম", + "oauth_client_updation_form_description": "এটি একটি বিদ্যমান OAuth ক্লায়েন্ট সম্পাদনা করার ফর্ম", @@ -3049 +3049 - "select_oAuth_client": "OAuth ক্লায়েন্ট নির্বাচন করুন", + "select_oauth_client": "OAuth ক্লায়েন্ট নির্বাচন করুন",apps/web/public/static/locales/az/common.json (1)
3292-3334
: PBAC descriptions: standardize to verbal-noun (…mək) forms and align scope phrasingSeveral PBAC description values use imperative phrasing (“göstər”, “yaradın”, “redaktə edin”) while existing PBAC strings use verbal-noun forms (“… baxmaq”, “… yaratmaq”, “… redaktə etmək”). Also align “manage_*” scope phrasing.
Apply this diff:
- "pbac_resource_workflow": "İş axınları", + "pbac_resource_workflow": "İş axınları", ... - "pbac_desc_view_organization_attributes": "Təşkilat atributlarını göstər", - "pbac_desc_update_organization_attributes": "Təşkilat atributlarını yeniləyin", - "pbac_desc_delete_organization_attributes": "Təşkilat atributlarını silin", - "pbac_desc_create_organization_attributes": "Təşkilat atributları yaradın", + "pbac_desc_view_organization_attributes": "Təşkilat atributlarına baxmaq", + "pbac_desc_update_organization_attributes": "Təşkilat atributlarını yeniləmək", + "pbac_desc_delete_organization_attributes": "Təşkilat atributlarını silmək", + "pbac_desc_create_organization_attributes": "Təşkilat atributları yaratmaq", ... - "pbac_desc_manage_roles": "Təşkilat komandaları üzrə bütün rollarda əməliyyatlar", + "pbac_desc_manage_roles": "Təşkilat komandaları üzrə bütün rollar üzrə əməliyyatlar", ... - "pbac_desc_create_workflows": "Yeni iş axınları yaradın və qurun", - "pbac_desc_view_workflows": "Mövcud iş axınlarını və onların konfiqurasiyalarını göstərin", - "pbac_desc_update_workflows": "İş axını parametrlərini redaktə edin və dəyişdirin", - "pbac_desc_delete_workflows": "İş axınlarını sistemdən silin", - "pbac_desc_manage_workflows": "Bütün iş axınlarına tam idarəetmə girişi", + "pbac_desc_create_workflows": "İş axınları yaratmaq və qurmaq", + "pbac_desc_view_workflows": "Mövcud iş axınlarını və onların konfiqurasiyalarını göstərmək", + "pbac_desc_update_workflows": "İş axını parametrlərini redaktə etmək və dəyişdirmək", + "pbac_desc_delete_workflows": "İş axınlarını sistemdən silmək", + "pbac_desc_manage_workflows": "İş axınları üzrə bütün əməliyyatlar", ... - "pbac_desc_manage_event_types": "Təşkilat komandaları üzrə tədbir növləri üzrə bütün əməliyyatlar", + "pbac_desc_manage_event_types": "Təşkilat komandaları üzrə bütün tədbir növləri üzrə əməliyyatlar", ... - "pbac_desc_manage_teams": "Təşkilat komandaları üzrə bütün komandalar üzrə əməliyyatlar", + "pbac_desc_manage_teams": "Təşkilat komandaları üzrə bütün komandalar üzrə əməliyyatlar", ... - "pbac_desc_manage_bookings": "Təşkilat komandaları üzrə bütün rezervasiyalar üzrə əməliyyatlar", + "pbac_desc_manage_bookings": "Təşkilat komandaları üzrə bütün rezervasiyalar üzrə əməliyyatlar",Note: If the team prefers “baxmaq” → “göstərmək” consistently, update “view_*” keys accordingly, but keep verbal-noun form across the board.
Also applies to: 3341-3342, 3356-3356
"pbac_resource_attributes": "বৈশিষ্ট্য", | ||
"pbac_desc_view_organization_attributes": "সংগঠনের বৈশিষ্ট্য দেখুন", | ||
"pbac_desc_update_organization_attributes": "সংগঠনের বৈশিষ্ট্য আপডেট করুন", | ||
"pbac_desc_delete_organization_attributes": "সংগঠনের বৈশিষ্ট্য মুছুন", | ||
"pbac_desc_create_organization_attributes": "সংগঠনের বৈশিষ্ট্য তৈরি করুন", | ||
"pbac_desc_view_roles": "ভূমিকা দেখুন", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Consistent org term: replace “সংগঠনের” with “সংস্থার”
Align with prevailing term in this locale.
- "pbac_desc_view_organization_attributes": "সংগঠনের বৈশিষ্ট্য দেখুন",
- "pbac_desc_update_organization_attributes": "সংগঠনের বৈশিষ্ট্য আপডেট করুন",
- "pbac_desc_delete_organization_attributes": "সংগঠনের বৈশিষ্ট্য মুছুন",
- "pbac_desc_create_organization_attributes": "সংগঠনের বৈশিষ্ট্য তৈরি করুন",
+ "pbac_desc_view_organization_attributes": "সংস্থার বৈশিষ্ট্য দেখুন",
+ "pbac_desc_update_organization_attributes": "সংস্থার বৈশিষ্ট্য আপডেট করুন",
+ "pbac_desc_delete_organization_attributes": "সংস্থার বৈশিষ্ট্য মুছুন",
+ "pbac_desc_create_organization_attributes": "সংস্থার বৈশিষ্ট্য তৈরি করুন",
Quick audit command:
🏁 Script executed:
#!/bin/bash
echo "Occurrences of সংগঠন/সংগঠনের:"; rg -n "সংগঠন(ের)?" apps/web/public/static/locales/bn/common.json | wc -l
echo "List them to patch:"; rg -n "সংগঠন(ের)?" apps/web/public/static/locales/bn/common.json
Length of output: 4059
🏁 Script executed:
#!/bin/bash
echo "Occurrences of 'সংস্থা':"
rg -n "সংস্থা" apps/web/public/static/locales/bn/common.json | tee >(wc -l)
echo ""
echo "Sample entries with 'সংস্থা':"
rg -n "সংস্থা" apps/web/public/static/locales/bn/common.json | head -n 20
Length of output: 2269
Align org translation to “সংস্থা”
We should standardize on “সংস্থা” (and its genitive “সংস্থার”) instead of “সংগঠন” across the Bengali locale. A search shows 39 occurrences of “সংগঠন”/“সংগঠনের” in apps/web/public/static/locales/bn/common.json
; all should be updated.
Key locations:
- pbac_desc_* entries (lines 3316–3319):
- "pbac_desc_view_organization_attributes": "সংগঠনের বৈশিষ্ট্য দেখুন", - "pbac_desc_update_organization_attributes": "সংগঠনের বৈশিষ্ট্য আপডেট করুন", - "pbac_desc_delete_organization_attributes": "সংগঠনের বৈশিষ্ট্য মুছুন", - "pbac_desc_create_organization_attributes": "সংগঠনের বৈশিষ্ট্য তৈরি করুন", + "pbac_desc_view_organization_attributes": "সংস্থার বৈশিষ্ট্য দেখুন", + "pbac_desc_update_organization_attributes": "সংস্থার বৈশিষ্ট্য আপডেট করুন", + "pbac_desc_delete_organization_attributes": "সংস্থার বৈশিষ্ট্য মুছুন", + "pbac_desc_create_organization_attributes": "সংস্থার বৈশিষ্ট্য তৈরি করুন",
Audit and bulk-replace command suggestion:
# List all hits first
rg -n --word-regexp "সংগঠন(ের)?" apps/web/public/static/locales/bn/common.json
# Then replace in-place (back up your file first!)
sed -i 's/সংগঠনের/সংস্থার/g; s/সংগঠন/সংস্থা/g' apps/web/public/static/locales/bn/common.json
🤖 Prompt for AI Agents
In apps/web/public/static/locales/bn/common.json around lines 3315 to 3320,
several PBAC entries use "সংগঠন"/"সংগঠনের" but the locale should standardize on
"সংস্থা"/"সংস্থার"; update the pbac_desc_* entries (and all other occurrences in
this file) replacing "সংগঠনের" with "সংস্থার" and "সংগঠন" with "সংস্থা" (ensure
you replace the genitive form first to avoid double-replacement), then run a
full-file search to verify all ~39 instances were updated and run the app's i18n
checks or build to confirm no missing keys or formatting regressions.
"webhook_trigger_event": "Käivitussündmuse nimi (nt BOOKING_CREATED, BOOKING_CANCELLED)", | ||
"webhook_created_at": "Veebikonksu loomise aeg", | ||
"webhook_type": "Sündmuse tüübi slug", | ||
"webhook_title": "Sündmuse tüübi nimi", | ||
"webhook_start_time": "Sündmuse algusaeg", | ||
"webhook_end_time": "Sündmuse lõpuaeg", | ||
"webhook_description": "Sündmuse kirjeldus, nagu määratud sündmuse tüübi seadetes", | ||
"webhook_location": "Sündmuse asukoht", | ||
"webhook_uid": "Broneeringu UID", | ||
"webhook_reschedule_uid": "Uuesti ajastamise UID", | ||
"webhook_cancellation_reason": "Tühistamise põhjus", | ||
"webhook_rejection_reason": "Keeldumise põhjus", | ||
"webhook_organizer_name": "Korraldaja nimi", | ||
"webhook_organizer_email": "Korraldaja e-post", | ||
"webhook_organizer_timezone": "Korraldaja ajavöönd (nt 'America/New_York', 'Asia/Kolkata')", | ||
"webhook_organizer_locale": "Korraldaja lokaad (nt 'en', 'fr')", | ||
"webhook_attendee_name": "Esimese osaleja nimi", | ||
"webhook_attendee_email": "Esimese osaleja e-post", | ||
"webhook_attendee_timezone": "Esimese osaleja ajavöönd", | ||
"webhook_attendee_locale": "Esimese osaleja lokaad", | ||
"webhook_team_name": "Broneeritud meeskonna nimi", | ||
"webhook_team_members": "Broneeritud meeskonna liikmed", | ||
"webhook_video_call_url": "Koosoleku videokõne URL", | ||
"webhook_hide_variables": "Peida muutujad", | ||
"webhook_show_variable": "Näita saadaolevaid muutujaid", | ||
"webhook_event_and_booking": "Sündmus ja broneering", | ||
"webhook_people": "Inimesed", | ||
"webhook_teams": "Meeskonnad", | ||
"webhook_metadata": "Metaandmed", | ||
"stats": "Statistika", | ||
"booking_status": "Broneeringu staatus", | ||
"ADD_NEW_STRINGS_ABOVE_THIS_LINE_TO_PREVENT_MERGE_CONFLICTS": "↑↑↑↑↑↑↑↑↑↑↑↑↑ Add your new strings above here ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Standardize “webhook” terminology and fix nouns (“slug”, “lokaad”)
Use “veebihaak/veebihaagi” consistently, replace “slug” → “lühinimi”, and “lokaad” → “lokaat”. Also prefer “Ümberajastamise UID”.
- "webhook_trigger_event": "Käivitussündmuse nimi (nt BOOKING_CREATED, BOOKING_CANCELLED)",
- "webhook_created_at": "Veebikonksu loomise aeg",
- "webhook_type": "Sündmuse tüübi slug",
+ "webhook_trigger_event": "Käivitussündmuse nimi (nt BOOKING_CREATED, BOOKING_CANCELLED)",
+ "webhook_created_at": "Veebihaagi loomise aeg",
+ "webhook_type": "Sündmuse tüübi lühinimi",
@@
- "webhook_reschedule_uid": "Uuesti ajastamise UID",
+ "webhook_reschedule_uid": "Ümberajastamise UID",
@@
- "webhook_organizer_locale": "Korraldaja lokaad (nt 'en', 'fr')",
+ "webhook_organizer_locale": "Korraldaja lokaat (nt 'en', 'fr')",
@@
- "webhook_attendee_locale": "Esimese osaleja lokaad",
+ "webhook_attendee_locale": "Esimese osaleja lokaat",
@@
- "webhook_test": "Veebihaagi test",
- "webhook_update_form": "Webhooki uuendamise vorm",
- "webhook_update_form_description": "Lisa webhook oma OAuthCliendile.",
+ "webhook_test": "Veebihaagi test",
+ "webhook_update_form": "Veebihaagi uuendamise vorm",
+ "webhook_update_form_description": "Lisa veebihaak oma OAuth-kliendile.",
@@
- "webhook_teams": "Meeskonnad",
- "webhook_metadata": "Metaandmed",
+ "webhook_teams": "Meeskonnad",
+ "webhook_metadata": "Metaandmed",
Note: the rest of the webhook block already reads well.
Committable suggestion skipped: line range outside the PR's diff.
🤖 Prompt for AI Agents
In apps/web/public/static/locales/et/common.json around lines 3444-3475,
standardize the translation strings by replacing English “webhook” terminology
with a consistent Estonian term (use "veebihaak" or the appropriate inflected
form "veebihaagi" consistently across values), change "slug" to "lühinimi", fix
"lokaad" to "lokaat", and change "Uuesti ajastamise UID" to "Ümberajastamise
UID"; update each relevant value in the webhook block so all occurrences reflect
these replacements while preserving the original meaning and punctuation.
"webhook_trigger_event": "Navnet på utløserhendelsen (f.eks. BOOKING_CREATED, BOOKING_CANCELLED)", | ||
"webhook_created_at": "Tidspunktet for webhook", | ||
"webhook_type": "Hendelsestype-slug", | ||
"webhook_title": "Navnet på hendelsestypen", | ||
"webhook_start_time": "Hendelsens starttid", | ||
"webhook_end_time": "Hendelsens sluttid", | ||
"webhook_description": "Hendelsens beskrivelse som beskrevet i innstillingene for hendelsestypen", | ||
"webhook_location": "Hendelsens sted", | ||
"webhook_uid": "UID for bestillingen", | ||
"webhook_reschedule_uid": "UID for omplanlegging", | ||
"webhook_cancellation_reason": "Grunn for avbestilling", | ||
"webhook_rejection_reason": "Grunn for avvisning", | ||
"webhook_organizer_name": "Navn på arrangøren", | ||
"webhook_organizer_email": "E-post til arrangøren", | ||
"webhook_organizer_timezone": "Tidssone for arrangøren (f.eks. 'America/New_York', 'Asia/Kolkata')", | ||
"webhook_organizer_locale": "Språk for arrangøren (f.eks. 'en', 'fr')", | ||
"webhook_attendee_name": "Navn på første deltaker", | ||
"webhook_attendee_email": "E-post til første deltaker", | ||
"webhook_attendee_timezone": "Tidssone for første deltaker", | ||
"webhook_attendee_locale": "Språk for første deltaker", | ||
"webhook_team_name": "Navn på teamet som er bestilt", | ||
"webhook_team_members": "Medlemmer av teamet som er bestilt", | ||
"webhook_video_call_url": "Video-URL for møtet", | ||
"webhook_hide_variables": "Skjul variabler", | ||
"webhook_show_variable": "Vis tilgjengelige variabler", | ||
"webhook_event_and_booking": "Arrangement og bestilling", | ||
"webhook_people": "Folk", | ||
"webhook_teams": "Team", | ||
"webhook_metadata": "Metadata", | ||
"stats": "Statistikk", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Switch verbose webhook strings to concise, label-style text.
These keys are used as UI labels; shorter noun-style labels improve readability and match patterns used elsewhere.
- "webhook_trigger_event": "Navnet på utløserhendelsen (f.eks. BOOKING_CREATED, BOOKING_CANCELLED)",
+ "webhook_trigger_event": "Utløserhendelse",
- "webhook_created_at": "Tidspunktet for webhook",
+ "webhook_created_at": "Opprettet",
- "webhook_type": "Hendelsestype-slug",
+ "webhook_type": "Hendelsestype (slug)",
- "webhook_title": "Navnet på hendelsestypen",
+ "webhook_title": "Tittel",
- "webhook_start_time": "Hendelsens starttid",
+ "webhook_start_time": "Starttid",
- "webhook_end_time": "Hendelsens sluttid",
+ "webhook_end_time": "Sluttid",
- "webhook_description": "Hendelsens beskrivelse som beskrevet i innstillingene for hendelsestypen",
+ "webhook_description": "Beskrivelse",
- "webhook_location": "Hendelsens sted",
+ "webhook_location": "Sted",
- "webhook_uid": "UID for bestillingen",
+ "webhook_uid": "Booking‑UID",
- "webhook_reschedule_uid": "UID for omplanlegging",
+ "webhook_reschedule_uid": "Ombookings‑UID",
- "webhook_cancellation_reason": "Grunn for avbestilling",
+ "webhook_cancellation_reason": "Avbestillingsgrunn",
- "webhook_rejection_reason": "Grunn for avvisning",
+ "webhook_rejection_reason": "Avslagsgrunn",
- "webhook_organizer_name": "Navn på arrangøren",
+ "webhook_organizer_name": "Arrangørens navn",
- "webhook_organizer_email": "E-post til arrangøren",
+ "webhook_organizer_email": "Arrangørens e‑post",
- "webhook_organizer_timezone": "Tidssone for arrangøren (f.eks. 'America/New_York', 'Asia/Kolkata')",
+ "webhook_organizer_timezone": "Arrangørens tidssone",
- "webhook_organizer_locale": "Språk for arrangøren (f.eks. 'en', 'fr')",
+ "webhook_organizer_locale": "Arrangørens språk",
- "webhook_attendee_name": "Navn på første deltaker",
+ "webhook_attendee_name": "Første deltakers navn",
- "webhook_attendee_email": "E-post til første deltaker",
+ "webhook_attendee_email": "Første deltakers e‑post",
- "webhook_attendee_timezone": "Tidssone for første deltaker",
+ "webhook_attendee_timezone": "Første deltakers tidssone",
- "webhook_attendee_locale": "Språk for første deltaker",
+ "webhook_attendee_locale": "Første deltakers språk",
- "webhook_team_name": "Navn på teamet som er bestilt",
+ "webhook_team_name": "Teamnavn",
- "webhook_team_members": "Medlemmer av teamet som er bestilt",
+ "webhook_team_members": "Teammedlemmer",
- "webhook_video_call_url": "Video-URL for møtet",
+ "webhook_video_call_url": "Video‑URL",
- "webhook_hide_variables": "Skjul variabler",
+ "webhook_hide_variables": "Skjul variabler",
- "webhook_show_variable": "Vis tilgjengelige variabler",
+ "webhook_show_variable": "Vis variabler",
- "webhook_event_and_booking": "Arrangement og bestilling",
+ "webhook_event_and_booking": "Arrangement og booking",
- "webhook_people": "Folk",
+ "webhook_people": "Personer",
- "webhook_teams": "Team",
+ "webhook_teams": "Team",
- "webhook_metadata": "Metadata",
+ "webhook_metadata": "Metadata",
📝 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.
"webhook_trigger_event": "Navnet på utløserhendelsen (f.eks. BOOKING_CREATED, BOOKING_CANCELLED)", | |
"webhook_created_at": "Tidspunktet for webhook", | |
"webhook_type": "Hendelsestype-slug", | |
"webhook_title": "Navnet på hendelsestypen", | |
"webhook_start_time": "Hendelsens starttid", | |
"webhook_end_time": "Hendelsens sluttid", | |
"webhook_description": "Hendelsens beskrivelse som beskrevet i innstillingene for hendelsestypen", | |
"webhook_location": "Hendelsens sted", | |
"webhook_uid": "UID for bestillingen", | |
"webhook_reschedule_uid": "UID for omplanlegging", | |
"webhook_cancellation_reason": "Grunn for avbestilling", | |
"webhook_rejection_reason": "Grunn for avvisning", | |
"webhook_organizer_name": "Navn på arrangøren", | |
"webhook_organizer_email": "E-post til arrangøren", | |
"webhook_organizer_timezone": "Tidssone for arrangøren (f.eks. 'America/New_York', 'Asia/Kolkata')", | |
"webhook_organizer_locale": "Språk for arrangøren (f.eks. 'en', 'fr')", | |
"webhook_attendee_name": "Navn på første deltaker", | |
"webhook_attendee_email": "E-post til første deltaker", | |
"webhook_attendee_timezone": "Tidssone for første deltaker", | |
"webhook_attendee_locale": "Språk for første deltaker", | |
"webhook_team_name": "Navn på teamet som er bestilt", | |
"webhook_team_members": "Medlemmer av teamet som er bestilt", | |
"webhook_video_call_url": "Video-URL for møtet", | |
"webhook_hide_variables": "Skjul variabler", | |
"webhook_show_variable": "Vis tilgjengelige variabler", | |
"webhook_event_and_booking": "Arrangement og bestilling", | |
"webhook_people": "Folk", | |
"webhook_teams": "Team", | |
"webhook_metadata": "Metadata", | |
"stats": "Statistikk", | |
"webhook_trigger_event": "Utløserhendelse", | |
"webhook_created_at": "Opprettet", | |
"webhook_type": "Hendelsestype (slug)", | |
"webhook_title": "Tittel", | |
"webhook_start_time": "Starttid", | |
"webhook_end_time": "Sluttid", | |
"webhook_description": "Beskrivelse", | |
"webhook_location": "Sted", | |
"webhook_uid": "Booking-UID", | |
"webhook_reschedule_uid": "Ombookings-UID", | |
"webhook_cancellation_reason": "Avbestillingsgrunn", | |
"webhook_rejection_reason": "Avslagsgrunn", | |
"webhook_organizer_name": "Arrangørens navn", | |
"webhook_organizer_email": "Arrangørens e-post", | |
"webhook_organizer_timezone": "Arrangørens tidssone", | |
"webhook_organizer_locale": "Arrangørens språk", | |
"webhook_attendee_name": "Første deltakers navn", | |
"webhook_attendee_email": "Første deltakers e-post", | |
"webhook_attendee_timezone": "Første deltakers tidssone", | |
"webhook_attendee_locale": "Første deltakers språk", | |
"webhook_team_name": "Teamnavn", | |
"webhook_team_members": "Teammedlemmer", | |
"webhook_video_call_url": "Video-URL", | |
"webhook_hide_variables": "Skjul variabler", | |
"webhook_show_variable": "Vis variabler", | |
"webhook_event_and_booking": "Arrangement og booking", | |
"webhook_people": "Personer", | |
"webhook_teams": "Team", | |
"webhook_metadata": "Metadata", | |
"stats": "Statistikk", |
🤖 Prompt for AI Agents
In apps/web/public/static/locales/no/common.json around lines 3444-3473, the
webhook label values are written as long descriptive sentences; convert each
value to concise, label-style nouns/short phrases (e.g., "Trigger", "Created
at", "Type", "Title", "Start time", "End time", "Description", "Location",
"Booking UID", "Reschedule UID", "Cancellation reason", "Rejection reason",
"Organizer name", "Organizer email", "Organizer timezone", "Organizer locale",
"Attendee name", "Attendee email", "Attendee timezone", "Attendee locale", "Team
name", "Team members", "Video URL", "Hide variables", "Show variables", "Event &
booking", "People", "Teams", "Metadata", "Stats") keeping meaning intact and
preserving any required formatting/placeholders; replace the verbose strings
with these concise label-style translations.
"oauth_clients": "Klienci OAuth", | ||
"oauth_clients_description": "Zarządzaj klientami OAuth dla swojej organizacji", | ||
"create_oauth_client": "Utwórz klienta OAuth", | ||
"create_oauth_client_description": "Utwórz nowego klienta OAuth do integracji zewnętrznych", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Nit: wording polish and cross-key naming sanity check (oauth vs oAuth)
- Wording: “do integracji zewnętrznych” → “dla integracji zewnętrznych” reads more natural.
- There are both oauth_* and oAuth_* key families in this file. Validate they’re intentionally distinct and mapped in code.
Proposed copy tweak:
"oauth_clients": "Klienci OAuth",
"oauth_clients_description": "Zarządzaj klientami OAuth dla swojej organizacji",
"create_oauth_client": "Utwórz klienta OAuth",
-"create_oauth_client_description": "Utwórz nowego klienta OAuth do integracji zewnętrznych",
+"create_oauth_client_description": "Utwórz nowego klienta OAuth dla integracji zewnętrznych",
Check key-family usage to avoid drift:
🏁 Script executed:
#!/bin/bash
# Inspect usage of oauth_* vs oAuth_* keys
rg -n $'"oauth_|"oAuth_' apps | sed -n '1,200p'
Length of output: 27618
Copy tweak for Polish locale and key naming confirmed
- In
apps/web/public/static/locales/pl/common.json
(around line 878), update the description string:
- "create_oauth_client_description": "Utwórz nowego klienta OAuth do integracji zewnętrznych",
+ "create_oauth_client_description": "Utwórz nowego klienta OAuth dla integracji zewnętrznych",
- Confirmed: translation files consistently use two key families—lower-case
oauth_*
for general entries andoAuth_*
for form-related entries—across all locales. No naming drift detected; no further action on key prefixes.
📝 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.
"oauth_clients": "Klienci OAuth", | |
"oauth_clients_description": "Zarządzaj klientami OAuth dla swojej organizacji", | |
"create_oauth_client": "Utwórz klienta OAuth", | |
"create_oauth_client_description": "Utwórz nowego klienta OAuth do integracji zewnętrznych", | |
"oauth_clients": "Klienci OAuth", | |
"oauth_clients_description": "Zarządzaj klientami OAuth dla swojej organizacji", | |
"create_oauth_client": "Utwórz klienta OAuth", | |
"create_oauth_client_description": "Utwórz nowego klienta OAuth dla integracji zewnętrznych", |
🤖 Prompt for AI Agents
In apps/web/public/static/locales/pl/common.json around lines 875 to 878, update
the value for "create_oauth_client_description" to a clearer Polish string:
replace the current value with "Utwórz nowego klienta OAuth do integracji
zewnętrznych systemów". Do not change any keys (key naming for oauth_* vs
oAuth_* is confirmed correct); only update the translation text for that key.
"hosts_unavailable_for_booking": "有些主持人无法预订。", | ||
"fixed_hosts_unavailable_for_booking": "部分固定主持人无法进行预约。", | ||
"round_robin_hosts_unavailable_for_booking": "没有轮流主持人可供预约。", | ||
"round_robin_host_unavailable_for_booking": "轮值主持人当前不可预订。", | ||
"help": "帮助", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Verify key rename propagation and residual English “Round Robin”
- The key rename round_robin_hosts_unavailable_for_booking → round_robin_host_unavailable_for_booking risks orphaned references. Please verify no code still references the old key.
- Also sweep for “Round Robin/round robin” English leftovers in zh-CN to keep terminology fully localized.
Also applies to: 875-879, 1844-1846, 3366-3366, 3384-3384, 3444-3475
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "1) Searching for old key usages (should be zero):"
rg -n --fixed-strings 'round_robin_hosts_unavailable_for_booking' || true
echo
echo "2) Searching for English 'Round Robin' remnants in zh-CN common.json:"
rg -n 'Round Robin|round robin' apps/web/public/static/locales/zh-CN/common.json || echo "No remaining English occurrences found."
echo
echo "3) Sanity-check: ensure new key exists in all locales (optional parity check):"
fd common.json apps/web/public/static/locales | while read -r f; do
if jq -e 'has("round_robin_host_unavailable_for_booking")' "$f" >/dev/null; then
:
else
echo "MISSING in: $f"
fi
done
Length of output: 7283
i18n: localize residual English and add missing key to affected locales
We’ve confirmed the old key was fully removed, but uncovered two issues:
-
Residual English “Round Robin” in zh-CN translations (apps/web/public/static/locales/zh-CN/common.json):
- skip_rr_assignment_label
- reassign_to_another_rr_host
- reassign_round_robin_host
- salesforce_if_free_email_domain_skip_owner_check
- include_no_show_in_rr_calculation
- rr_load_balancing_disabled_with_groups
→ Please replace “round robin”/“Round Robin” with the appropriate Chinese term.
-
Missing new key
round_robin_host_unavailable_for_booking
in these locales:- hr (apps/web/public/static/locales/hr/common.json)
- id (apps/web/public/static/locales/id/common.json)
- iw (apps/web/public/static/locales/iw/common.json)
- lv (apps/web/public/static/locales/lv/common.json)
- sk (apps/web/public/static/locales/sk/common.json)
- ta (apps/web/public/static/locales/ta/common.json)
- th (apps/web/public/static/locales/th/common.json)
Please add the new key with translated text in each missing locale and fully localize any remaining English phrases.
🤖 Prompt for AI Agents
In apps/web/public/static/locales/zh-CN/common.json around lines 121-124,
replace residual English "Round Robin"/"round robin" in the listed keys
(skip_rr_assignment_label, reassign_to_another_rr_host,
reassign_round_robin_host, salesforce_if_free_email_domain_skip_owner_check,
include_no_show_in_rr_calculation, rr_load_balancing_disabled_with_groups) with
the appropriate Chinese term (use the existing project term "轮值" or "轮值主持人" to
match context) and ensure all related phrases are fully localized and
grammatical; additionally, add the missing key
"round_robin_host_unavailable_for_booking" to the locale files for hr, id, iw,
lv, sk, ta, and th (apps/web/public/static/locales/<locale>/common.json) with
correct translations for "轮值主持人当前不可预订" or the equivalent in each language,
matching the style and tone of other keys in those files.
@@ -120,7 +120,7 @@ | |||
"already_signed_up_for_this_booking_error": "您已经注册了此预订。", | |||
"hosts_unavailable_for_booking": "有些主持人无法预订。", | |||
"fixed_hosts_unavailable_for_booking": "部分固定主持人无法进行预约。", | |||
"round_robin_hosts_unavailable_for_booking": "没有轮流主持人可供预约。", | |||
"round_robin_host_unavailable_for_booking": "轮值主持人当前不可预订。", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Unify RR terminology and booking phrasing
Use “轮流主持人” (consistent with “轮流模式/轮流主持人” elsewhere) and prefer “预约” over “预订” for consistency with nearby strings.
- "round_robin_host_unavailable_for_booking": "轮值主持人当前不可预订。",
+ "round_robin_host_unavailable_for_booking": "轮流主持人当前无法预约。",
📝 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.
"round_robin_host_unavailable_for_booking": "轮值主持人当前不可预订。", | |
"round_robin_host_unavailable_for_booking": "轮流主持人当前无法预约。", |
🤖 Prompt for AI Agents
In apps/web/public/static/locales/zh-CN/common.json around line 123, the string
uses inconsistent terminology and verb choice; change "轮值主持人当前不可预订。" to use
"轮流主持人" and "预约" for consistency (e.g., "轮流主持人当前不可预约。"). Update the JSON value
accordingly, keeping surrounding punctuation and escaping intact.
"pbac_resource_workflow": "工作流程", | ||
"pbac_action_all": "所有操作", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Unify “活动类型” vs “事件类型” in PBAC descriptions
Elsewhere, “event type” is translated as “活动类型” (e.g., pbac_resource_event_type). Align PBAC manage description accordingly.
- "pbac_desc_manage_event_types": "对组织团队中的事件类型进行所有操作",
+ "pbac_desc_manage_event_types": "对组织团队中的活动类型进行所有操作",
Also applies to: 3315-3320, 3324-3329, 3334-3334, 3342-3342, 3356-3356
🤖 Prompt for AI Agents
In apps/web/public/static/locales/zh-CN/common.json around lines 3292-3293 (and
also update the occurrences at 3315-3320, 3324-3329, 3334, 3342, 3356), some
PBAC descriptions use “事件类型” while the project standard uses “活动类型”; replace the
“事件类型” wording in those PBAC-related entries with “活动类型” to match the existing
translations, keeping the rest of each string intact and preserving punctuation
and spacing for JSON validity.
@@ -120,7 +120,7 @@ | |||
"already_signed_up_for_this_booking_error": "您已經註冊了此預訂。", | |||
"hosts_unavailable_for_booking": "部分主持人無法預訂。", | |||
"fixed_hosts_unavailable_for_booking": "部分固定主持人無法預約。", | |||
"round_robin_hosts_unavailable_for_booking": "沒有可供預約的輪值主持人。", | |||
"round_robin_host_unavailable_for_booking": "輪值主持人目前無法接受預訂。", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Standardize “Round Robin” term and booking verb
Use “循環制” (already used at Line 806) and “預約” (dominant in file) for consistency.
- "round_robin_host_unavailable_for_booking": "輪值主持人目前無法接受預訂。",
+ "round_robin_host_unavailable_for_booking": "循環制主持人目前無法接受預約。",
📝 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.
"round_robin_host_unavailable_for_booking": "輪值主持人目前無法接受預訂。", | |
"round_robin_host_unavailable_for_booking": "循環制主持人目前無法接受預約。", |
🤖 Prompt for AI Agents
In apps/web/public/static/locales/zh-TW/common.json around line 123, the
translation uses "輪值" and "預訂" which are inconsistent with the rest of the file;
update the string to use the standardized terms "循環制" and "預約" by replacing the
current value with one that reads "循環制主持人目前無法接受預約。".
@@ -3343,6 +3363,7 @@ | |||
"use_booker_timezone_info": "在預訂者的時區內套用選定的限制排程", | |||
"load_balancing_warning": "這將停用所有輪詢事件類型的負載平衡功能", | |||
"rr_load_balancing_disabled": "負載平衡僅在時間戳基準設為預訂建立時間時可用", | |||
"rr_load_balancing_disabled_with_groups": "負載平衡無法與 Round Robin 群組一起使用", | |||
"round_robin_settings_description": "自訂此團隊的預設輪詢設定", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Round-robin term consistency (“循環制” instead of English “Round Robin”)
Elsewhere the user-facing term is “循環制” (Line 806). Keep consistency in notices too.
- "rr_load_balancing_disabled_with_groups": "負載平衡無法與 Round Robin 群組一起使用",
+ "rr_load_balancing_disabled_with_groups": "負載平衡無法與循環制群組一起使用",
Committable suggestion skipped: line range outside the PR's diff.
🤖 Prompt for AI Agents
In apps/web/public/static/locales/zh-TW/common.json around line 3367, the
translation value for "round_robin_settings_description" uses "輪詢" while
elsewhere the UI uses "循環制"; update the string to use "循環制" for consistency
(e.g., replace "自訂此團隊的預設輪詢設定" with the equivalent using "循環制") and ensure
punctuation/spacing matches surrounding translations.
a50eafc
to
8e562c5
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 5
🔭 Outside diff range comments (2)
apps/web/public/static/locales/sr/common.json (1)
3101-3101
: Localize “Round Robin” across newly added stringsUse the same localized term used elsewhere (“kružno dodeljivanje”) to avoid mixing English and Serbian.
- "reset_interval_weighted_rr": "Resetuj interval za ponderisani Round Robin", + "reset_interval_weighted_rr": "Resetuj interval za ponderisano kružno dodeljivanje",- "rr_interval_successfully_updated": "Interval za Round Robin uspešno ažuriran", + "rr_interval_successfully_updated": "Interval za kružno dodeljivanje uspešno ažuriran",- "rr_settings_successfully_updated": "Podešavanja za Round Robin uspešno ažurirana", + "rr_settings_successfully_updated": "Podešavanja za kružno dodeljivanje uspešno ažurirana",- "distribution_basis_weighted_rr": "Osnova distribucije za ponderisani Round Robin", + "distribution_basis_weighted_rr": "Osnova distribucije za ponderisano kružno dodeljivanje",- "rr_load_balancing_disabled_with_groups": "Balansiranje opterećenja nije dostupno sa Round Robin grupama", + "rr_load_balancing_disabled_with_groups": "Balansiranje opterećenja nije dostupno sa grupama za kružno dodeljivanje",Also applies to: 3118-3118, 3263-3264, 3366-3366
apps/web/public/static/locales/tr/common.json (1)
1-1
: Action Required: Sign CLA & Complete Missing Translations
Merging is blocked until the contributor signs the CLA.No occurrences of the old key (
round_robin_hosts_unavailable_for_booking
) remain. However, the new key
"round_robin_host_unavailable_for_booking"
is missing in these locale files:
- apps/web/public/static/locales/hr/common.json
- apps/web/public/static/locales/id/common.json
- apps/web/public/static/locales/lv/common.json
Please add the translations for those locales and sign the CLA. Once done, let me know and I’ll re-verify.
♻️ Duplicate comments (80)
apps/web/public/static/locales/sr/common.json (1)
121-123
: Standardize “rezervacija” and localize “Round Robin” (duplicate of earlier feedback)Keep booking nouns consistent with lines 121–122 and localize the term.
- "round_robin_host_unavailable_for_booking": "Round Robin domaćin nije dostupan za zakazivanje.", + "round_robin_host_unavailable_for_booking": "Domaćin za kružno dodeljivanje nije dostupan za rezervaciju.",apps/web/public/static/locales/az/common.json (4)
692-692
: Normalize “Webhook” terminology (avoid “Veb-hook”)Use “Webhook” consistently to match brand/terminology:
- "edit_or_manage_webhooks": "Veb-hookları redaktə etmək və ya idarə etmək istəyirsinizsə, <0>veb-hook parametrlərinə</0> keçin", + "edit_or_manage_webhooks": "Webhookları redaktə etmək və ya idarə etmək istəyirsinizsə, <0>webhook parametrlərinə</0> keçin",
3292-3334
: PBAC descriptions: unify grammatical form to verbal-noun (infinitive) and fix phrasingFor consistency with existing PBAC strings (… “baxmaq”, “yeniləmək”, “silmək”, “yaratmaq”), update the newly added lines:
- "pbac_resource_workflow": "İş axınları", + "pbac_resource_workflow": "İş axınları", ... - "pbac_resource_attributes": "Atributlar", - "pbac_desc_view_organization_attributes": "Təşkilat atributlarını göstər", - "pbac_desc_update_organization_attributes": "Təşkilat atributlarını yeniləyin", - "pbac_desc_delete_organization_attributes": "Təşkilat atributlarını silin", - "pbac_desc_create_organization_attributes": "Təşkilat atributları yaradın", + "pbac_resource_attributes": "Atributlar", + "pbac_desc_view_organization_attributes": "Təşkilat atributlarına baxmaq", + "pbac_desc_update_organization_attributes": "Təşkilat atributlarını yeniləmək", + "pbac_desc_delete_organization_attributes": "Təşkilat atributlarını silmək", + "pbac_desc_create_organization_attributes": "Təşkilat atributları yaratmaq", - "pbac_desc_manage_roles": "Təşkilat komandaları üzrə bütün rollarda əməliyyatlar", + "pbac_desc_manage_roles": "Təşkilat komandaları üzrə bütün rollar üzrə əməliyyatlar", - "pbac_desc_create_workflows": "Yeni iş axınları yaradın və qurun", - "pbac_desc_view_workflows": "Mövcud iş axınlarını və onların konfiqurasiyalarını göstərin", - "pbac_desc_update_workflows": "İş axını parametrlərini redaktə edin və dəyişdirin", - "pbac_desc_delete_workflows": "İş axınlarını sistemdən silin", - "pbac_desc_manage_workflows": "Bütün iş axınlarına tam idarəetmə girişi", + "pbac_desc_create_workflows": "İş axınları yaratmaq və qurmaq", + "pbac_desc_view_workflows": "Mövcud iş axınlarını və onların konfiqurasiyalarını göstərmək", + "pbac_desc_update_workflows": "İş axını parametrlərini redaktə etmək və dəyişdirmək", + "pbac_desc_delete_workflows": "İş axınlarını sistemdən silmək", + "pbac_desc_manage_workflows": "İş axınları üzrə bütün əməliyyatlar", - "pbac_desc_manage_event_types": "Təşkilat komandaları üzrə tədbir növləri üzrə bütün əməliyyatlar", + "pbac_desc_manage_event_types": "Təşkilat komandaları üzrə bütün tədbir növləri üzrə əməliyyatlar", - "pbac_desc_manage_teams": "Təşkilat komandaları üzrə bütün komandalar üzrə əməliyyatlar", + "pbac_desc_manage_teams": "Təşkilat komandaları üzrə bütün komandalar üzrə əməliyyatlar", - "pbac_desc_manage_bookings": "Təşkilat komandaları üzrə bütün rezervasiyalar üzrə əməliyyatlar", + "pbac_desc_manage_bookings": "Təşkilat komandaları üzrə bütün rezervasiyalar üzrə əməliyyatlar"Also applies to: 3341-3342, 3356-3356
352-353
: Plural agreement: use “edirlər” with plural subject “insanlar”Apply:
- "round_robin_groups_helper": "Qrupdakı insanlar növbə ilə iştirak edir, hər qrupdan bir nəfər tədbirdə iştirak edəcək.", + "round_robin_groups_helper": "Qrupdakı insanlar növbə ilə iştirak edirlər, hər qrupdan bir nəfər tədbirdə iştirak edəcək.", - "round_robin_helper": "Qrupdakı insanlar növbə ilə iştirak edir və tədbirdə yalnız bir nəfər iştirak edəcək.", + "round_robin_helper": "Qrupdakı insanlar növbə ilə iştirak edirlər və tədbirdə yalnız bir nəfər iştirak edəcək."
3444-3460
: Webhook metadata: minor localization alignment (“Tətikləyici”; shorter label)Apply:
- "webhook_trigger_event": "Tetikleyici hadisənin adı (məs., BOOKING_CREATED, BOOKING_CANCELLED)", + "webhook_trigger_event": "Tətikləyici hadisənin adı (məs., BOOKING_CREATED, BOOKING_CANCELLED)", @@ - "webhook_show_variable": "Mövcud dəyişənləri göstər", + "webhook_show_variable": "Dəyişənləri göstər",To ensure all locales contain this webhook_* keyset and to find any remaining “Veb-hook” usages, run:
#!/usr/bin/env bash set -euo pipefail root="apps/web/public/static/locales" keys=( "webhook_trigger_event" "webhook_created_at" "webhook_type" "webhook_title" "webhook_start_time" "webhook_end_time" "webhook_description" "webhook_location" "webhook_uid" "webhook_reschedule_uid" "webhook_cancellation_reason" "webhook_rejection_reason" "webhook_organizer_name" "webhook_organizer_email" "webhook_organizer_timezone" "webhook_organizer_locale" "webhook_attendee_name" "webhook_attendee_email" "webhook_attendee_timezone" "webhook_attendee_locale" "webhook_team_name" "webhook_team_members" "webhook_video_call_url" "webhook_hide_variables" "webhook_show_variable" "webhook_event_and_booking" "webhook_people" "webhook_teams" "webhook_metadata" ) echo "→ Missing webhook_* keys per locale:" missing_any=0 while IFS= read -r f; do locale=$(basename "$(dirname "$f")") miss=() for k in "${keys[@]}"; do grep -q "\"$k\"" "$f" || miss+=("$k") done ((${#miss[@]})) && { missing_any=1; echo "- $locale: ${miss[*]}"; } done < <(fd -t f -a 'common.json' "$root") ((missing_any==0)) && echo "All locales have all webhook_* keys." echo echo "→ Scan for 'Veb-hook' variants:" rg -n --ignore-case 'veb-?hook' "$root" || trueAlso applies to: 3468-3469
apps/web/public/static/locales/ca/common.json (4)
123-123
: Unify “round robin” casing (lowercase) for consistency.Prefer “round robin” (lowercase) as used elsewhere in this file.
- "round_robin_host_unavailable_for_booking": "L'amfitrió de Round Robin no està disponible per a la reserva.", + "round_robin_host_unavailable_for_booking": "L'amfitrió de round robin no està disponible per a la reserva.",
3324-3324
: Tighten PBAC “manage_*” phrasing (“… dels equips de l’organització”).Avoid duplicated “equips … equips” and align with the pattern used elsewhere.
- "pbac_desc_manage_roles": "Totes les accions sobre rols a través dels equips de l'organització", + "pbac_desc_manage_roles": "Totes les accions sobre els rols dels equips de l'organització", - "pbac_desc_manage_event_types": "Totes les accions sobre tipus d'esdeveniments a través dels equips de l'organització", + "pbac_desc_manage_event_types": "Totes les accions sobre els tipus d'esdeveniments dels equips de l'organització", - "pbac_desc_manage_teams": "Totes les accions sobre equips a través dels equips de l'organització", + "pbac_desc_manage_teams": "Totes les accions sobre els equips de l'organització", - "pbac_desc_manage_bookings": "Totes les accions sobre reserves a través dels equips de l'organització", + "pbac_desc_manage_bookings": "Totes les accions sobre les reserves dels equips de l'organització",Also applies to: 3333-3333, 3341-3341, 3356-3356
3383-3383
: Use imperative for action labels (“Afegeix …”).Aligns with the dominant “Afegeix …” pattern used by other add_* keys.
- "add_group": "Afegir grup", + "add_group": "Afegeix un grup",
2255-2257
: Fix grammar and terminology (“routing” → “encaminament”; “els enviaments”).Reverts a previously fixed issue. Use consistent Catalan terminology and correct article agreement.
- "use_our_headless_routing_api": "Utilitza la nostra API de routing headless i fes servir el teu propi formulari per a les enviaments.", + "use_our_headless_routing_api": "Utilitza la nostra API d'encaminament sense interfície i fes servir el teu propi formulari per als enviaments.",apps/web/public/static/locales/ko/common.json (2)
875-878
: Use “타사” instead of “서드파티” for consistency across localesSame feedback as earlier round; aligning with commonly used term.
- "create_oauth_client_description": "서드파티 통합을 위한 새 OAuth 클라이언트 생성", + "create_oauth_client_description": "타사 통합을 위한 새 OAuth 클라이언트 생성",Optional verification to ensure new OAuth keys exist across all locales and avoid fallback-to-English:
#!/bin/bash set -euo pipefail locales_root='apps/web/public/static/locales' keys=(oauth_clients oauth_clients_description create_oauth_client create_oauth_client_description) fd common.json "$locales_root" --type f | while read -r f; do for k in "${keys[@]}"; do jq -e --arg k "$k" 'has($k)' "$f" >/dev/null 2>&1 || echo "MISSING: $f → $k" done done
3446-3451
: Normalize “이벤트 유형” → “이벤트 타입” in webhook labelsSame consistency pass as previously suggested; keep product term uniform.
- "webhook_type": "이벤트 유형 슬러그", + "webhook_type": "이벤트 타입 슬러그", - "webhook_title": "이벤트 유형 이름", + "webhook_title": "이벤트 타입 이름", - "webhook_description": "이벤트 유형 설정에 설명된 이벤트 설명", + "webhook_description": "이벤트 타입 설정에 설명된 이벤트 설명",apps/web/public/static/locales/he/common.json (1)
3473-3473
: Duplicate key detected - requires resolutionThe
"stats"
key already exists at line 252 with the value"סטטיסטיקות"
. This duplicate at line 3473 will override the earlier translation at runtime, making the first occurrence dead code.Please remove the duplicate entry or rename it if it represents a different context (e.g.,
"stats_section"
or"webhook_stats"
).- "stats": "סטטיסטיקות",
apps/web/public/static/locales/bn/common.json (4)
123-123
: Fix BN possessive: use “বুকিংয়ের”Use the contracted possessive form.
- "round_robin_host_unavailable_for_booking": "রাউন্ড রবিন হোস্ট বুকিং এর জন্য অনুপলব্ধ।", + "round_robin_host_unavailable_for_booking": "রাউন্ড রবিন হোস্ট বুকিংয়ের জন্য অনুপলব্ধ।",
875-878
: Unify “সংস্থা” terminology (consistency across file)This file predominantly uses “সংস্থা/সংস্থার”. Adjust this new string accordingly.
- "oauth_clients_description": "আপনার সংগঠনের জন্য OAuth ক্লায়েন্ট পরিচালনা করুন", + "oauth_clients_description": "আপনার সংস্থার জন্য OAuth ক্লায়েন্ট পরিচালনা করুন",
1844-1845
: Unify “সংস্থা” for organizationReplace “সংগঠনের” with “সংস্থার” for consistency with the rest of the locale.
- "only_admin_can_manage_directory_sync": "শুধুমাত্র সংগঠনের অ্যাডমিন বা মালিক ডিরেক্টরি সিঙ্ক সেটিংস পরিচালনা করতে পারেন", - "only_admin_can_manage_oauth_clients": "শুধুমাত্র সংগঠনের অ্যাডমিন বা মালিক OAuth ক্লায়েন্ট পরিচালনা করতে পারেন", + "only_admin_can_manage_directory_sync": "শুধুমাত্র সংস্থার অ্যাডমিন বা মালিক ডিরেক্টরি সিঙ্ক সেটিংস পরিচালনা করতে পারেন", + "only_admin_can_manage_oauth_clients": "শুধুমাত্র সংস্থার অ্যাডমিন বা মালিক OAuth ক্লায়েন্ট পরিচালনা করতে পারেন",
3315-3319
: Standardize “সংস্থা” in PBAC org-attributes descriptionsAlign genitive form to “সংস্থার”.
- "pbac_desc_view_organization_attributes": "সংগঠনের বৈশিষ্ট্য দেখুন", - "pbac_desc_update_organization_attributes": "সংগঠনের বৈশিষ্ট্য আপডেট করুন", - "pbac_desc_delete_organization_attributes": "সংগঠনের বৈশিষ্ট্য মুছুন", - "pbac_desc_create_organization_attributes": "সংগঠনের বৈশিষ্ট্য তৈরি করুন", + "pbac_desc_view_organization_attributes": "সংস্থার বৈশিষ্ট্য দেখুন", + "pbac_desc_update_organization_attributes": "সংস্থার বৈশিষ্ট্য আপডেট করুন", + "pbac_desc_delete_organization_attributes": "সংস্থার বৈশিষ্ট্য মুছুন", + "pbac_desc_create_organization_attributes": "সংস্থার বৈশিষ্ট্য তৈরি করুন",apps/web/public/static/locales/eu/common.json (2)
875-879
: Key namespace mismatch - use existing oAuth_ convention*The new OAuth keys use
oauth_*
(lowercase) naming while the codebase expectsoAuth_*
(camelCase) based on existing component references. This is a duplicate of a previously identified issue.
3315-3319
: Missing "manage" permission string breaks PBAC symmetryFor every resource the file already carries
pbac_desc_manage_*
entries (see roles, event types, teams…).
After adding organization attributes view/create/update/delete permissions, there is still nopbac_desc_manage_organization_attributes
.
Down-stream UIs that compute permission labels dynamically will now render a blank label for "Manage attributes". Add the missing key to prevent runtime "undefined" strings in Basque.apps/web/public/static/locales/bg/common.json (4)
123-123
: Standardize Round‑Robin naming for consistencyPrefer the hyphenated “Round‑Robin” form used elsewhere in BG locale. This keeps the terminology consistent across keys.
Apply this diff:
- "round_robin_host_unavailable_for_booking": "Домакинът на ротационния принцип не е наличен за резервация.", + "round_robin_host_unavailable_for_booking": "Round‑Robin домакинът не е наличен за резервация.",
352-352
: Fix Bulgarian plural and tighten phrasingUse plural “групите” and a clearer sentence; avoids the singular/plural mismatch.
Apply this diff:
- "round_robin_groups_helper": "Хората в групата се редуват, един човек от всяка група ще се появи на събитието.", + "round_robin_groups_helper": "Хората в групите се редуват; по един човек от всяка група ще присъства на събитието.",
3366-3366
: Unify Round‑Robin hyphenation in load‑balancing warningAlign with hyphenated “Round‑Robin”.
Apply this diff:
- "rr_load_balancing_disabled_with_groups": "Балансирането на натоварването не е налично с Round Robin групи", + "rr_load_balancing_disabled_with_groups": "Балансирането на натоварването не е налично при Round‑Robin групи",
3444-3474
: Webhook metadata: improve natural BG and fix singular/plural inconsistencyRefine a few labels to sound more native and align “show variable” to singular.
Apply this diff:
- "webhook_created_at": "Времето на уебхука", + "webhook_created_at": "Време на създаване на уебхука", - "webhook_type": "Слъгът на типа събитие", + "webhook_type": "Идентификатор (slug) на типа събитие", - "webhook_description": "Описанието на събитието, както е описано в настройките на типа събитие", + "webhook_description": "Описанието на събитието, както е зададено в настройките на типа събитие", - "webhook_show_variable": "Покажи наличните променливи", + "webhook_show_variable": "Покажи променлива",apps/web/public/static/locales/da/common.json (3)
3445-3475
: Webhook metadata block: strong coverage; tweak created-at wording and verify cross-locale presenceWording improvement:
- “Tidspunktet for webhooken” → “Oprettelsestidspunkt for webhooken”.
- "webhook_created_at": "Tidspunktet for webhooken", + "webhook_created_at": "Oprettelsestidspunkt for webhooken",Also verify all webhook_* keys exist across locales to prevent runtime fallbacks.
#!/usr/bin/env bash set -euo pipefail base="apps/web/public/static/locales" src="$base/da/common.json" # 1) Extract webhook_* keys from Danish file (source-of-truth for this PR) readarray -t webhook_keys < <(jq -r 'keys[]' "$src" | grep '^webhook_') echo "Checking ${#webhook_keys[@]} webhook_* keys across locales..." missing=0 # 2) Validate presence in every common.json across locales mapfile -t files < <(fd -H --glob 'common.json' "$base") for f in "${files[@]}"; do for k in "${webhook_keys[@]}"; do if ! jq -e --arg k "$k" 'has($k)' "$f" >/dev/null; then echo "✗ Missing key $k in: $f" missing=1 fi done done [ $missing -eq 0 ] && echo "✔ All webhook_* keys present across locales"
1844-1846
: Fix terminology for “Directory Sync” (product term, not filesystem “folders”)Prior comment still applies here. Use the product term “Directory Sync” to avoid confusion with filesystem directories.
- "only_admin_can_manage_directory_sync": "Kun organisationens administrator eller ejer kan administrere indstillinger for synkronisering af mapper", + "only_admin_can_manage_directory_sync": "Kun organisationens administrator eller ejer kan administrere indstillinger for Directory Sync",
3315-3320
: Standardize PBAC “attributes” wording to “Attributter”This block mixes “Egenskaber” with “organisationsattributter.” Align to “Attributter” to match the rest of the PBAC phrasing.
- "pbac_resource_attributes": "Egenskaber", + "pbac_resource_attributes": "Attributter",To help spot inconsistencies across the Danish file, you can grep for both variants:
#!/usr/bin/env bash set -euo pipefail file="apps/web/public/static/locales/da/common.json" echo "Occurrences of 'Egenskab'/'Egenskaber':" rg -n 'Egenskab' "$file" || true echo echo "Occurrences of 'Attribut'/'Attributter':" rg -n 'Attribut' "$file" || trueapps/web/public/static/locales/es-419/common.json (1)
123-123
: Consistency with nearby phrasing: use “para la reserva”.Align with Line 121’s “para la reserva”.
- "round_robin_host_unavailable_for_booking": "El anfitrión de Round Robin no está disponible para reservas.", + "round_robin_host_unavailable_for_booking": "El anfitrión de Round Robin no está disponible para la reserva.",apps/web/public/static/locales/fr/common.json (3)
123-123
: Standardize “round-robin” hyphenation and casing (French locale)Use “round-robin” (lowercase, hyphenated) for consistency with other strings (e.g., Line 1951: “Hôtes round-robin”).
- "round_robin_host_unavailable_for_booking": "L'hôte Round Robin n'est pas disponible pour la réservation.", + "round_robin_host_unavailable_for_booking": "L'hôte round-robin n'est pas disponible pour la réservation.",
1844-1845
: French agreement: pluralize verb with two subjectsBoth “l’administrateur” and “le propriétaire” can act; use plural agreement “Seuls … peuvent …”.
- "only_admin_can_manage_directory_sync": "Seul l'administrateur ou le propriétaire de l'organisation peut gérer les paramètres de synchronisation d'annuaire", - "only_admin_can_manage_oauth_clients": "Seul l'administrateur ou le propriétaire de l'organisation peut gérer les clients OAuth", + "only_admin_can_manage_directory_sync": "Seuls l'administrateur ou le propriétaire de l'organisation peuvent gérer les paramètres de synchronisation d'annuaire", + "only_admin_can_manage_oauth_clients": "Seuls l'administrateur ou le propriétaire de l'organisation peuvent gérer les clients OAuth",
3327-3327
: Avoid redundancy “Éditer et modifier” and align with preferred term “Modifier”Elsewhere the file prefers “Modifier”; remove redundancy.
- "pbac_desc_update_workflows": "Éditer et modifier les paramètres des workflows", + "pbac_desc_update_workflows": "Modifier les paramètres des workflows",apps/web/public/static/locales/pl/common.json (3)
875-878
: Copy tweak for Polish: “dla integracji zewnętrznych”Aligns with more natural usage in previous reviews.
Apply:
"oauth_clients": "Klienci OAuth", "oauth_clients_description": "Zarządzaj klientami OAuth dla swojej organizacji", "create_oauth_client": "Utwórz klienta OAuth", - "create_oauth_client_description": "Utwórz nowego klienta OAuth do integracji zewnętrznych", + "create_oauth_client_description": "Utwórz nowego klienta OAuth dla integracji zewnętrznych",
3445-3474
: Webhook terminology consistency: “E‑mail”, “ustawienia regionalne”, and UID phrasingBring these in line with earlier guidance and the rest of the file.
Apply:
"webhook_reschedule_uid": "UID do zmiany terminu", - "webhook_cancellation_reason": "Powód anulowania", - "webhook_rejection_reason": "Powód odrzucenia", - "webhook_organizer_name": "Nazwa organizatora", - "webhook_organizer_email": "Email organizatora", + "webhook_cancellation_reason": "Powód anulowania", + "webhook_rejection_reason": "Powód odrzucenia", + "webhook_organizer_name": "Nazwa organizatora", + "webhook_organizer_email": "E-mail organizatora", "webhook_organizer_timezone": "Strefa czasowa organizatora (np. 'America/New_York', 'Asia/Kolkata')", - "webhook_organizer_locale": "Lokalizacja organizatora (np. 'en', 'fr')", + "webhook_organizer_locale": "Ustawienia regionalne organizatora (np. 'en', 'fr')", "webhook_attendee_name": "Imię pierwszego uczestnika", - "webhook_attendee_email": "Email pierwszego uczestnika", + "webhook_attendee_email": "E-mail pierwszego uczestnika", "webhook_attendee_timezone": "Strefa czasowa pierwszego uczestnika", - "webhook_attendee_locale": "Lokalizacja pierwszego uczestnika", + "webhook_attendee_locale": "Ustawienia regionalne pierwszego uczestnika", "webhook_team_name": "Nazwa zarezerwowanego zespołu", "webhook_team_members": "Członkowie zarezerwowanego zespołu", "webhook_video_call_url": "URL wideorozmowy dla spotkania", "webhook_hide_variables": "Ukryj zmienne", "webhook_show_variable": "Pokaż dostępne zmienne", "webhook_event_and_booking": "Wydarzenie i rezerwacja", "webhook_people": "Ludzie", "webhook_teams": "Zespoły", "webhook_metadata": "Metadane", - "stats": "Statystyki", + "stats": "Statystyki", "booking_status": "Status rezerwacji",Additionally, consider:
- Change “UID do zmiany terminu” → “UID zmiany terminu” for natural phrasing:
- "webhook_reschedule_uid": "UID do zmiany terminu", + "webhook_reschedule_uid": "UID zmiany terminu",
3473-3473
: Recheck duplicate “stats” key across the fileA previous commit flagged a duplicate “stats” key earlier in this JSON. Ensure it now appears only once.
Run:
#!/bin/bash # Expect exactly one occurrence within this file now rg -n $'^\s*"stats"\s*:' apps/web/public/static/locales/pl/common.jsonapps/web/public/static/locales/pt/common.json (8)
123-123
: PT-PT consistency: use “reserva” and “de Round Robin”.Replace Brazilianism “agendamento” with “reserva” and prefer “de Round Robin”.
- "round_robin_host_unavailable_for_booking": "O anfitrião do Round Robin não está disponível para agendamento.", + "round_robin_host_unavailable_for_booking": "O anfitrião de Round Robin não está disponível para reserva.",
352-352
: PT-PT phrasing for round-robin groups helper.Avoid “em um”/“se revezam”; prefer PT-PT.
- "round_robin_groups_helper": "As pessoas em um grupo se revezam, uma pessoa de cada grupo aparecerá no evento.", + "round_robin_groups_helper": "As pessoas num grupo fazem rodízio; uma pessoa de cada grupo aparecerá no evento.",
3416-3416
: Grammar: “Reservas falhadas”.Fix agreement; current “Reservas falhas” is incorrect.
- "failed_bookings": "Reservas falhas", + "failed_bookings": "Reservas falhadas",
875-878
: OAuth clients: normalize to PT-PT (“Gerir”, sentence case, “a sua”).Align style/casing and variant to PT-PT.
- "oauth_clients": "Clientes OAuth", - "oauth_clients_description": "Gerencie clientes OAuth para sua organização", - "create_oauth_client": "Criar Cliente OAuth", - "create_oauth_client_description": "Crie um novo cliente OAuth para integrações de terceiros", + "oauth_clients": "Clientes OAuth", + "oauth_clients_description": "Gerir clientes OAuth da sua organização", + "create_oauth_client": "Criar cliente OAuth", + "create_oauth_client_description": "Criar um novo cliente OAuth para integrações de terceiros",
1844-1846
: Admin-only notices: PT-PT (“gerir”, articles, “do diretório”).Use “gerir” and add the article “o”; “do diretório”.
- "only_admin_can_manage_directory_sync": "Apenas o administrador ou proprietário da organização pode gerenciar as configurações de sincronização de diretório", - "only_admin_can_manage_oauth_clients": "Apenas o administrador ou proprietário da organização pode gerenciar clientes OAuth", + "only_admin_can_manage_directory_sync": "Apenas o administrador ou o proprietário da organização pode gerir as configurações de sincronização do diretório", + "only_admin_can_manage_oauth_clients": "Apenas o administrador ou o proprietário da organização pode gerir clientes OAuth",
2255-2256
: Routing copy: prefer PT-PT and existing “encaminhamento” terminology.Use “o meu / a nossa” and “encaminhamento sem interface (headless)”.
- "use_my_own_form": "Usar meu próprio formulário", - "use_our_headless_routing_api": "Use nossa API de roteamento headless e utilize seu próprio formulário para envios.", + "use_my_own_form": "Usar o meu próprio formulário", + "use_our_headless_routing_api": "Use a nossa API de encaminhamento sem interface (headless) e use o seu próprio formulário para envios.",
3316-3334
: PBAC descriptions: normalize to PT-PT (“Ver/Eliminar/Gestão/Equipas/Reservas”).Replace pt-BR forms and literal “gerenciamento” with PT-PT and domain terms.
- "pbac_desc_view_organization_attributes": "Visualizar atributos da organização", + "pbac_desc_view_organization_attributes": "Ver atributos da organização", - "pbac_desc_delete_organization_attributes": "Excluir atributos da organização", + "pbac_desc_delete_organization_attributes": "Eliminar atributos da organização", - "pbac_desc_manage_roles": "Todas as ações em funções nas equipes da organização", + "pbac_desc_manage_roles": "Todas as ações em funções nas equipas da organização", - "pbac_desc_view_workflows": "Visualizar fluxos de trabalho existentes e suas configurações", + "pbac_desc_view_workflows": "Ver fluxos de trabalho existentes e as suas configurações", - "pbac_desc_delete_workflows": "Remover fluxos de trabalho do sistema", + "pbac_desc_delete_workflows": "Eliminar fluxos de trabalho do sistema", - "pbac_desc_manage_workflows": "Acesso completo de gerenciamento a todos os fluxos de trabalho", + "pbac_desc_manage_workflows": "Acesso completo de gestão a todos os fluxos de trabalho", - "pbac_desc_manage_event_types": "Todas as ações em tipos de eventos nas equipes da organização", + "pbac_desc_manage_event_types": "Todas as ações em tipos de eventos nas equipas da organização", - "pbac_desc_manage_teams": "Todas as ações em equipes da organização", + "pbac_desc_manage_teams": "Todas as ações em equipas da organização", - "pbac_desc_manage_bookings": "Todas as ações em agendamentos nas equipes da organização", + "pbac_desc_manage_bookings": "Todas as ações em reservas nas equipas da organização",Also applies to: 3341-3341, 3356-3356
3445-3475
: Webhooks and booking status: fix “equipe”→“equipa”, booking status phrasing, and improve created_at label.Align with PT-PT and existing terminology.
- "webhook_created_at": "A hora do webhook", + "webhook_created_at": "Data de criação do webhook", - "webhook_team_name": "Nome da equipe reservada", - "webhook_team_members": "Membros da equipe reservada", + "webhook_team_name": "Nome da equipa reservada", + "webhook_team_members": "Membros da equipa reservada", - "booking_status": "Status do agendamento", + "booking_status": "Estado da reserva",apps/web/public/static/locales/km/common.json (8)
875-878
: Use “អង្គការ” consistently in OAuth sectionReplace “អង្គភាព” with “អង្គការ” for consistency with the rest of the locale.
"oauth_clients": "កម្មវិធី OAuth", -"oauth_clients_description": "គ្រប់គ្រងកម្មវិធី OAuth សម្រាប់អង្គភាពរបស់អ្នក", +"oauth_clients_description": "គ្រប់គ្រងកម្មវិធី OAuth សម្រាប់អង្គការរបស់អ្នក", "create_oauth_client": "បង្កើតកម្មវិធី OAuth", "create_oauth_client_description": "បង្កើតកម្មវិធី OAuth ថ្មីសម្រាប់ការតភ្ជាប់ជាមួយកម្មវិធីភាគីទីបី",
1844-1845
: Admin-only notices: replace “អង្គភាព” with “អង្គការ”Keep org terminology consistent.
-"only_admin_can_manage_directory_sync": "មានតែអ្នកគ្រប់គ្រងឬម្ចាស់អង្គភាពប៉ុណ្ណោះដែលអាចគ្រប់គ្រងការកំណត់ការធ្វើសមកាលកម្មថត", -"only_admin_can_manage_oauth_clients": "មានតែអ្នកគ្រប់គ្រងឬម្ចាស់អង្គភាពប៉ុណ្ណោះដែលអាចគ្រប់គ្រងកម្មវិធី OAuth", +"only_admin_can_manage_directory_sync": "មានតែអ្នកគ្រប់គ្រងឬម្ចាស់អង្គការប៉ុណ្ណោះដែលអាចគ្រប់គ្រងការកំណត់ការធ្វើសមកាលកម្មថត", +"only_admin_can_manage_oauth_clients": "មានតែអ្នកគ្រប់គ្រងឬម្ចាស់អង្គការប៉ុណ្ណោះដែលអាចគ្រប់គ្រងកម្មវិធី OAuth",
2255-2256
: Don’t translate “Headless” literally; keep it in EnglishUse “API Routing (Headless)” for clarity.
"use_my_own_form": "ប្រើទម្រង់ផ្ទាល់ខ្លួនរបស់ខ្ញុំ", -"use_our_headless_routing_api": "ប្រើ API ដឹកនាំដោយគ្មានចំណងជើងរបស់យើង និងប្រើទម្រង់ផ្ទាល់ខ្លួនរបស់អ្នកសម្រាប់ការដាក់ស្នើ។", +"use_our_headless_routing_api": "ប្រើ API Routing (Headless) របស់យើង ហើយប្រើទម្រង់ផ្ទាល់ខ្លួនរបស់អ្នកសម្រាប់ការដាក់ស្នើ។",
3315-3319
: Organization attribute descriptors: replace “អង្គភាព” with “អង្គការ”Standardize org term in these PBAC strings.
"pbac_resource_attributes": "គុណលក្ខណៈ", -"pbac_desc_view_organization_attributes": "មើលគុណលក្ខណៈអង្គភាព", +"pbac_desc_view_organization_attributes": "មើលគុណលក្ខណៈអង្គការ", -"pbac_desc_update_organization_attributes": "ធ្វើបច្ចុប្បន្នភាពគុណលក្ខណៈអង្គភាព", +"pbac_desc_update_organization_attributes": "ធ្វើបច្ចុប្បន្នភាពគុណលក្ខណៈអង្គការ", -"pbac_desc_delete_organization_attributes": "លុបគុណលក្ខណៈអង្គភាព", +"pbac_desc_delete_organization_attributes": "លុបគុណលក្ខណៈអង្គការ", -"pbac_desc_create_organization_attributes": "បង្កើតគុណលក្ខណៈអង្គភាព", +"pbac_desc_create_organization_attributes": "បង្កើតគុណលក្ខណៈអង្គការ",
3323-3323
: PBAC roles descriptor: remove “ក្រុមអង្គភាព”Use organization-scoped phrasing.
-"pbac_desc_manage_roles": "សកម្មភាពទាំងអស់លើតួនាទីក្នុងក្រុមអង្គភាពទាំងអស់", +"pbac_desc_manage_roles": "សកម្មភាពទាំងអស់លើតួនាទីក្នុងអង្គការ",
3333-3333
: PBAC event types descriptor: organization scopeReplace “ក្រុមអង្គភាព” with “អង្គការ.”
-"pbac_desc_manage_event_types": "សកម្មភាពទាំងអស់លើប្រភេទព្រឹត្តិការណ៍ក្នុងក្រុមអង្គភាពទាំងអស់", +"pbac_desc_manage_event_types": "សកម្មភាពទាំងអស់លើប្រភេទព្រឹត្តិការណ៍ក្នុងអង្គការ",
3341-3341
: PBAC teams descriptor: organization scopeKeep “អង្គការ” consistent.
-"pbac_desc_manage_teams": "សកម្មភាពទាំងអស់លើក្រុមក្នុងក្រុមអង្គភាពទាំងអស់", +"pbac_desc_manage_teams": "សកម្មភាពទាំងអស់លើក្រុមក្នុងអង្គការ",
3356-3356
: PBAC bookings descriptor: organization scopeReplace “ក្រុមអង្គភាព” with “អង្គការ.”
-"pbac_desc_manage_bookings": "សកម្មភាពទាំងអស់លើការកក់ក្នុងក្រុមអង្គភាពទាំងអស់", +"pbac_desc_manage_bookings": "សកម្មភាពទាំងអស់លើការកក់ក្នុងអង្គការ",apps/web/public/static/locales/tr/common.json (5)
123-123
: Use the established “Döngüsel organizatör” terminology for RR host.Align with in-product usage and prior guidance.
Apply:
- "round_robin_host_unavailable_for_booking": "Sıralı ev sahibi rezervasyon için uygun değil.", + "round_robin_host_unavailable_for_booking": "Döngüsel organizatör rezervasyon için uygun değil."
875-878
: Standardize “Organizasyon” → “Kuruluş” for OAuth client strings.TR locale elsewhere prefers “Kuruluş”.
Apply:
- "oauth_clients": "OAuth İstemcileri", - "oauth_clients_description": "Organizasyonunuz için OAuth istemcilerini yönetin", - "create_oauth_client": "OAuth İstemcisi Oluştur", - "create_oauth_client_description": "Üçüncü taraf entegrasyonları için yeni bir OAuth istemcisi oluşturun", + "oauth_clients": "OAuth İstemcileri", + "oauth_clients_description": "Kuruluşunuz için OAuth istemcilerini yönetin", + "create_oauth_client": "OAuth İstemcisi Oluştur", + "create_oauth_client_description": "Üçüncü taraf entegrasyonları için yeni bir OAuth istemcisi oluşturun"
1844-1845
: Replace “organizasyonun” with “kuruluşun” in admin-only notices.Consistency with locale conventions.
Apply:
- "only_admin_can_manage_directory_sync": "Dizin senkronizasyon ayarlarını yalnızca organizasyonun yöneticisi veya sahibi yönetebilir", - "only_admin_can_manage_oauth_clients": "OAuth istemcilerini yalnızca organizasyonun yöneticisi veya sahibi yönetebilir", + "only_admin_can_manage_directory_sync": "Dizin senkronizasyonu ayarlarını yalnızca kuruluşun yöneticisi veya sahibi yönetebilir", + "only_admin_can_manage_oauth_clients": "OAuth istemcilerini yalnızca kuruluşun yöneticisi veya sahibi yönetebilir",
3315-3320
: PBAC descriptions: use “Kuruluş” instead of “Organizasyon”.Keep terminology consistent across PBAC strings.
Apply:
- "pbac_desc_view_organization_attributes": "Organizasyon özniteliklerini görüntüle", - "pbac_desc_update_organization_attributes": "Organizasyon özniteliklerini güncelle", - "pbac_desc_delete_organization_attributes": "Organizasyon özniteliklerini sil", - "pbac_desc_create_organization_attributes": "Organizasyon öznitelikleri oluştur", + "pbac_desc_view_organization_attributes": "Kuruluş özniteliklerini görüntüle", + "pbac_desc_update_organization_attributes": "Kuruluş özniteliklerini güncelle", + "pbac_desc_delete_organization_attributes": "Kuruluş özniteliklerini sil", + "pbac_desc_create_organization_attributes": "Kuruluş öznitelikleri oluştur", @@ - "pbac_desc_manage_roles": "Organizasyon ekipleri genelinde roller üzerindeki tüm işlemler", + "pbac_desc_manage_roles": "Kuruluş ekipleri genelinde roller üzerindeki tüm işlemler", @@ - "pbac_desc_manage_event_types": "Organizasyon ekipleri genelinde etkinlik türleri üzerindeki tüm işlemler", + "pbac_desc_manage_event_types": "Kuruluş ekipleri genelinde etkinlik türleri üzerindeki tüm işlemler", @@ - "pbac_desc_manage_teams": "Organizasyon ekipleri genelinde ekipler üzerindeki tüm işlemler", + "pbac_desc_manage_teams": "Kuruluş ekipleri genelinde ekipler üzerindeki tüm işlemler", @@ - "pbac_desc_manage_bookings": "Organizasyon ekipleri genelinde rezervasyonlar üzerindeki tüm işlemler", + "pbac_desc_manage_bookings": "Kuruluş ekipleri genelinde rezervasyonlar üzerindeki tüm işlemler",Also applies to: 3323-3334, 3356-3356
3444-3472
: Webhook labels: use “Web kancası” and “Organizatör” consistently; tweak two labels.
- Replace “Webhook” with the existing locale choice “Web kancası”.
- Replace “Düzenleyen” with “Organizatör”.
- Prefer “Yeniden planlama UID'si”.
- Clarify created timestamp label.
Apply:
- "webhook_created_at": "Webhook zamanı", + "webhook_created_at": "Web kancasının oluşturulma zamanı", @@ - "webhook_reschedule_uid": "Yeniden planlama için UID", + "webhook_reschedule_uid": "Yeniden planlama UID'si", @@ - "webhook_organizer_name": "Düzenleyenin adı", - "webhook_organizer_email": "Düzenleyenin e-postası", - "webhook_organizer_timezone": "Düzenleyenin saat dilimi (örn. 'America/New_York', 'Asia/Kolkata')", - "webhook_organizer_locale": "Düzenleyenin yerel ayarı (örn. 'en', 'fr')", + "webhook_organizer_name": "Organizatörün adı", + "webhook_organizer_email": "Organizatörün e-postası", + "webhook_organizer_timezone": "Organizatörün saat dilimi (örn. 'America/New_York', 'Asia/Kolkata')", + "webhook_organizer_locale": "Organizatörün yerel ayarı (örn. 'en', 'fr')",Optional consistency pass for other nearby “Webhook” occurrences in the file has already been suggested previously.
apps/web/public/static/locales/uk/common.json (6)
123-123
: Unify “host” terminology: replace “Організатор” with “Ведучий”.For consistency with existing keys (e.g., “Почергові ведучі”), use “Ведучий”.
- "round_robin_host_unavailable_for_booking": "Організатор почергового розподілу недоступний для бронювання.", + "round_robin_host_unavailable_for_booking": "Ведучий почергового розподілу недоступний для бронювання.",
875-878
: Hyphenate “OAuth‑клієнт” and tighten phrasing.Align with UA style: use hyphen, concise wording, and en-dash where appropriate.
- "oauth_clients": "OAuth клієнти", - "oauth_clients_description": "Керуйте OAuth клієнтами для вашої організації", - "create_oauth_client": "Створити OAuth клієнта", - "create_oauth_client_description": "Створіть нового OAuth клієнта для інтеграцій з третіми сторонами", + "oauth_clients": "OAuth-клієнти", + "oauth_clients_description": "Керуйте OAuth-клієнтами вашої організації", + "create_oauth_client": "Створити OAuth‑клієнта", + "create_oauth_client_description": "Створіть нового OAuth‑клієнта для інтеграцій зі сторонніми сервісами",
1844-1845
: Consistency: use “Лише” and hyphenate “OAuth‑клієнтами”.Matches prior style elsewhere in file.
- "only_admin_can_manage_directory_sync": "Тільки адміністратор або власник організації може керувати налаштуваннями синхронізації каталогу", - "only_admin_can_manage_oauth_clients": "Тільки адміністратор або власник організації може керувати OAuth клієнтами", + "only_admin_can_manage_directory_sync": "Лише адміністратор або власник організації може керувати налаштуваннями синхронізації каталогу", + "only_admin_can_manage_oauth_clients": "Лише адміністратор або власник організації може керувати OAuth‑клієнтами",
2273-2273
: Unify spelling: “вебгук” (not “вебхук”).Harmonize with the rest of the locale file.
- "create_instant_meeting_webhook_description": "Створіть свій перший вебхук з тригером 'Створено миттєву зустріч' для цього типу подій", + "create_instant_meeting_webhook_description": "Створіть свій перший вебгук з тригером 'Створено миттєву зустріч' для цього типу подій",
3333-3333
: Align terminology: use “заходів” (not “подій”).This file consistently uses “Типи заходів”.
- "pbac_desc_manage_event_types": "Усі дії з типами подій у командах організації", + "pbac_desc_manage_event_types": "Усі дії з типами заходів у командах організації",
3444-3474
: Standardize “вебгук”, lowercase “слаг”, prefer “Учасники”, and pluralize variables label.Ensure consistency across new webhook-related keys.
- "webhook_trigger_event": "Назва події-тригера (наприклад, BOOKING_CREATED, BOOKING_CANCELLED)", - "webhook_created_at": "Час створення вебхука", - "webhook_type": "Слаг типу події", + "webhook_trigger_event": "Назва події-тригера (наприклад, BOOKING_CREATED, BOOKING_CANCELLED)", + "webhook_created_at": "Час створення вебгука", + "webhook_type": "слаг типу події", @@ - "webhook_team_members": "Члени забронованої команди", + "webhook_team_members": "Учасники забронованої команди", @@ - "webhook_hide_variables": "Приховати змінні", - "webhook_show_variable": "Показати доступні змінні", + "webhook_hide_variables": "Приховати змінні", + "webhook_show_variable": "Показати змінні",apps/web/public/static/locales/ru/common.json (5)
3366-3366
: Nit: Preposition for natural RU phrasing (“для групп Round Robin”)Use “для” instead of “с” for better style.
- "rr_load_balancing_disabled_with_groups": "Балансировка нагрузки недоступна с группами Round Robin", + "rr_load_balancing_disabled_with_groups": "Балансировка нагрузки недоступна для групп Round Robin",Optionally scan for inconsistent “Round Robin/round robin/Round‑Robin” casing:
#!/bin/bash rg -n --hidden -S 'Round[ -]?Robin|round[ -]?robin' apps/web/public/static/locales/ru/common.json
123-123
: Round Robin: replace “Хост” with “Организатор”Align with existing RU terminology (“Организатор”) for Round Robin contexts.
- "round_robin_host_unavailable_for_booking": "Хост Round Robin недоступен для бронирования.", + "round_robin_host_unavailable_for_booking": "Организатор Round Robin недоступен для бронирования.",Run to confirm callers have migrated from the old key name (singular vs plural) and to surface any stale references:
#!/bin/bash # Find both old and new keys across the repo rg -n --hidden -S 'round_robin_hosts_unavailable_for_booking|round_robin_host_unavailable_for_booking'
875-878
: OAuth client section looks good; normalize legacy OAuth casing/hyphenation elsewhereThe newly added keys are correct and use the preferred “OAuth‑клиент(ы)” form. Please align older occurrences for consistency (key names and values).
Outside this hunk, apply:
- "oauth_client_deletion_message": "OAuth клиент успешно удален", + "oauth_client_deletion_message": "OAuth-клиент успешно удален",Rename legacy keys and fix values (keep JSON keys unique and update usages in code if referenced):
- "oAuth": "OAuth", - "oAuth_client_creation_form": "Форма создания OAuth клиента", - "oAuth_client_creation_form_description": "Это форма для создания нового OAuth клиента", - "oAuth_client_updation_form": "Форма обновления OAuth клиента", - "oAuth_client_updation_form_description": "Это форма для редактирования существующего OAuth клиента", + "OAuth": "OAuth", + "OAuth_client_creation_form": "Форма создания OAuth-клиента", + "OAuth_client_creation_form_description": "Это форма для создания нового OAuth-клиента", + "OAuth_client_updation_form": "Форма обновления OAuth-клиента", + "OAuth_client_updation_form_description": "Это форма для редактирования существующего OAuth-клиента",To list inconsistent “OAuth клиент/клиенты”, “oAuth”, or missing hyphen cases:
#!/bin/bash rg -n --hidden -S 'oAuth|OAuth клиент|OAuth клиенты|OAuth-клиент' apps/web/public/static/locales/ru/common.json
3323-3323
: PBAC scope wording: “организации” (not “в командах организации”)Per scope, managing roles is organization-scoped. Update phrasing accordingly.
- "pbac_desc_manage_roles": "Все действия с ролями в командах организации", + "pbac_desc_manage_roles": "Все действия с ролями в организации",
3356-3356
: PBAC scope wording: bookings are organization-scopedUpdate copy to reflect organization-wide scope, not “в командах организации”.
- "pbac_desc_manage_bookings": "Все действия с бронированиями в командах организации", + "pbac_desc_manage_bookings": "Все действия с бронированиями в организации",apps/web/public/static/locales/sv/common.json (2)
123-123
: Round Robin phrasing is okay; ensure consistent capitalization/hyphenation across the file/locales.This entry uses “Round Robin-” (capitalized, hyphenated) which reads well. Elsewhere in this file there are lowercase/mixed variants (“round robin-…”, etc.). Please standardize all occurrences in sv/common.json (and mirror across other locales) to a single style, e.g., “Round Robin-…”.
Run to locate variants:
#!/bin/bash rg -n $'"round robin|Round robin|round-robin|Round-robin|Round Robin"' apps/web/public/static/locales/sv/common.json
3445-3474
: Polish some webhook metadata labels and re-affirm term standardization.
- Prefer explicit creation phrasing for created_at.
- Ensure “Webhook”/“webhook” spelling is standardized across this file (avoid “Webbhook” variants previously present).
- "webhook_created_at": "Tidpunkten för webhooken", + "webhook_created_at": "Tidpunkt när webhooken skapades",Find legacy “Webbhook” occurrences to standardize:
#!/bin/bash rg -n $'"Webbhook|webbhook"' apps/web/public/static/locales/sv/common.jsonapps/web/public/static/locales/ro/common.json (6)
3366-3366
: Use the established term “Echilibrarea încărcării” and standardize round‑robinRestore consistency with earlier occurrences.
- "rr_load_balancing_disabled_with_groups": "Distribuirea sarcinilor nu este disponibilă cu grupurile Round Robin", + "rr_load_balancing_disabled_with_groups": "Echilibrarea încărcării nu este disponibilă cu grupurile round‑robin",
875-878
: Switch OAuth strings to polite/plural tone (“dvs.”) for UI consistencyThese reverted to informal second person. Prior review already requested the polite/plural form.
- "oauth_clients": "Clienți OAuth", - "oauth_clients_description": "Gestionează clienții OAuth pentru organizația ta", - "create_oauth_client": "Creează un client OAuth", - "create_oauth_client_description": "Creează un nou client OAuth pentru integrări terțe", + "oauth_clients": "Clienți OAuth", + "oauth_clients_description": "Gestionați clienții OAuth pentru organizația dvs.", + "create_oauth_client": "Creați un client OAuth", + "create_oauth_client_description": "Creați un nou client OAuth pentru integrările dvs.",
2255-2256
: Embedding/headless routing: switch to polite/plural toneThese still use informal “Folosește…/tău”. Align to the polite/plural voice.
- "use_my_own_form": "Folosește propriul meu formular", - "use_our_headless_routing_api": "Folosește API-ul nostru de rutare fără interfață și propriul tău formular pentru trimitere.", + "use_my_own_form": "Folosiți propriul dvs. formular", + "use_our_headless_routing_api": "Folosiți API-ul nostru de rutare fără interfață și propriul dvs. formular pentru trimitere.",
3292-3292
: PBAC: unify verb forms to polite/plural (“Creați/Vizualizați/Actualizați/Ștergeți”)Several PBAC labels/descriptions reverted to informal forms. Please restore polite/plural to match the rest of the UI.
- "pbac_resource_workflow": "Fluxuri de lucru", + "pbac_resource_workflow": "Fluxuri de lucru", - "pbac_resource_attributes": "Atribute", - "pbac_desc_view_organization_attributes": "Vizualizează atributele organizației", - "pbac_desc_update_organization_attributes": "Actualizează atributele organizației", - "pbac_desc_delete_organization_attributes": "Șterge atributele organizației", - "pbac_desc_create_organization_attributes": "Creează atribute pentru organizație", + "pbac_resource_attributes": "Atribute", + "pbac_desc_view_organization_attributes": "Vizualizați atributele organizației", + "pbac_desc_update_organization_attributes": "Actualizați atributele organizației", + "pbac_desc_delete_organization_attributes": "Ștergeți atributele organizației", + "pbac_desc_create_organization_attributes": "Creați atribute pentru organizație", - "pbac_desc_manage_roles": "Toate acțiunile asupra rolurilor din echipele organizației", + "pbac_desc_manage_roles": "Toate acțiunile asupra rolurilor din echipele organizației", - "pbac_desc_create_workflows": "Creează și configurează fluxuri de lucru noi", - "pbac_desc_view_workflows": "Vizualizează fluxurile de lucru existente și configurațiile acestora", - "pbac_desc_update_workflows": "Editează și modifică setările fluxurilor de lucru", - "pbac_desc_delete_workflows": "Elimină fluxurile de lucru din sistem", - "pbac_desc_manage_workflows": "Acces complet pentru gestionarea tuturor fluxurilor de lucru", + "pbac_desc_create_workflows": "Creați și configurați fluxuri de lucru noi", + "pbac_desc_view_workflows": "Vizualizați fluxurile de lucru existente și configurațiile acestora", + "pbac_desc_update_workflows": "Editați și modificați setările fluxurilor de lucru", + "pbac_desc_delete_workflows": "Eliminați fluxurile de lucru din sistem", + "pbac_desc_manage_workflows": "Acces complet de gestionare pentru toate fluxurile de lucru", - "pbac_desc_manage_event_types": "Toate acțiunile asupra tipurilor de evenimente din echipele organizației", + "pbac_desc_manage_event_types": "Toate acțiunile asupra tipurilor de evenimente din echipele organizației", - "pbac_desc_manage_teams": "Toate acțiunile asupra echipelor din echipele organizației", + "pbac_desc_manage_teams": "Toate acțiunile asupra echipelor din echipele organizației", - "pbac_desc_manage_bookings": "Toate acțiunile asupra rezervărilor din echipele organizației", + "pbac_desc_manage_bookings": "Toate acțiunile asupra rezervărilor din echipele organizației",Also applies to: 3315-3334, 3341-3341, 3356-3356
3445-3472
: Webhook labels: clarify timestamp and use polite imperatives; avoid “programare”These should be clearer and match tone. Also prefer “rezervare” over “programare”.
- "webhook_created_at": "Ora webhook-ului", + "webhook_created_at": "Creat la", - "webhook_hide_variables": "Ascunde variabilele", + "webhook_hide_variables": "Ascundeți variabilele", - "webhook_show_variable": "Afișează variabilele disponibile", + "webhook_show_variable": "Afișați variabilele disponibile", - "webhook_event_and_booking": "Eveniment și programare", + "webhook_event_and_booking": "Eveniment și rezervare",
3474-3475
: Terminology: prefer “Starea rezervării” over “Status programare”Re-apply the agreed phrasing.
- "booking_status": "Status programare", + "booking_status": "Starea rezervării",apps/web/public/static/locales/et/common.json (4)
123-123
: Standardize “host” → “võõrustaja” in EstonianUse “võõrustaja” instead of the English “host” for consistency with the rest of the locale.
- "round_robin_host_unavailable_for_booking": "Round Robin'i host ei ole broneerimiseks saadaval.", + "round_robin_host_unavailable_for_booking": "Round Robin'i võõrustaja ei ole broneerimiseks saadaval.",
2255-2256
: Use “marsruutimine” (not “suunamine”) for routingMatch the established term across the locale: “marsruutimine/marsruutimise”.
- "use_our_headless_routing_api": "Kasuta meie peata suunamise API-t ja omaenda vormi esitamiseks.", + "use_our_headless_routing_api": "Kasuta meie peata marsruutimise API-t ja oma vormi esitamiseks.",Run to audit for inconsistent usage across locales and within et:
#!/bin/bash rg -n '"use_our_headless_routing_api"' apps/web/public/static/locales rg -n 'suunamis|suunamise|suunamine' apps/web/public/static/locales/et/common.json -A1 -B1 rg -n 'marsruutimin|marsruutimis' apps/web/public/static/locales/et/common.json -A1 -B1
3323-3323
: Fix clunky “organisatsiooni meeskondades” endings in PBAC descriptionsPrefer “organisatsioonis” or “organisatsiooni meeskondadega” per prior guidance.
- "pbac_desc_manage_roles": "Kõik toimingud rollidega organisatsiooni meeskondades", + "pbac_desc_manage_roles": "Kõik toimingud rollidega organisatsioonis", @@ - "pbac_desc_manage_event_types": "Kõik toimingud sündmuste tüüpidega organisatsiooni meeskondades", + "pbac_desc_manage_event_types": "Kõik toimingud sündmuste tüüpidega organisatsioonis", @@ - "pbac_desc_manage_teams": "Kõik toimingud meeskondadega organisatsiooni meeskondades", + "pbac_desc_manage_teams": "Kõik toimingud organisatsiooni meeskondadega", @@ - "pbac_desc_manage_bookings": "Kõik toimingud broneeringutega organisatsiooni meeskondades", + "pbac_desc_manage_bookings": "Kõik toimingud broneeringutega organisatsioonis",Also applies to: 3333-3333, 3341-3342, 3356-3357
3444-3466
: Standardize webhook terminology and nouns (“veebihaak”, “lühinimi”, “lokaat”, “ümberajastamine”)
- Use “veebihaak/veebihaagi” (avoid “Veebikonksu/Webhooki”).
- “slug” → “lühinimi”.
- “lokaad” → “lokaat”.
- Prefer “Ümberajastamise UID”.
- "webhook_trigger_event": "Käivitava sündmuse nimi (nt BOOKING_CREATED, BOOKING_CANCELLED)", - "webhook_created_at": "Veebikonksu loomise aeg", - "webhook_type": "Sündmuse tüübi slug", + "webhook_trigger_event": "Käivitussündmuse nimi (nt BOOKING_CREATED, BOOKING_CANCELLED)", + "webhook_created_at": "Veebihaagi loomise aeg", + "webhook_type": "Sündmuse tüübi lühinimi", @@ - "webhook_reschedule_uid": "Ümberplaneerimise UID", + "webhook_reschedule_uid": "Ümberajastamise UID", @@ - "webhook_organizer_locale": "Korraldaja lokaad (nt 'en', 'fr')", + "webhook_organizer_locale": "Korraldaja lokaat (nt 'en', 'fr')", @@ - "webhook_attendee_locale": "Esimese osaleja lokaad", + "webhook_attendee_locale": "Esimese osaleja lokaat",Optional validation:
#!/bin/bash # Check webhook terminology consistency in et/common.json rg -n 'Webhook|Webhooki|Veebikonks' apps/web/public/static/locales/et/common.json -A1 -B1 rg -n 'lokaad' apps/web/public/static/locales/et/common.json -A0 -B0 rg -n 'slug' apps/web/public/static/locales/et/common.json -A0 -B0Also applies to: 3459-3463
apps/web/public/static/locales/de/common.json (4)
123-123
: Hyphenate “Round‑Robin” and use “Veranstalter”Standardize wording across DE locales: prefer “Round‑Robin‑Veranstalter”.
Apply:
- "round_robin_host_unavailable_for_booking": "Round Robin-Gastgeber ist für Buchungen nicht verfügbar.", + "round_robin_host_unavailable_for_booking": "Round-Robin-Veranstalter ist für Buchungen nicht verfügbar.",
3324-3329
: PBAC scope phrasing: prefer “innerhalb der Organisation”“über Organisationsteams hinweg” reads awkwardly and is inconsistent with earlier approved phrasing. Use “innerhalb der Organisation” for parallelism and clarity.
Apply:
- "pbac_desc_manage_roles": "Alle Aktionen für Rollen über Organisationsteams hinweg", + "pbac_desc_manage_roles": "Alle Aktionen für Rollen innerhalb der Organisation", - "pbac_desc_manage_event_types": "Alle Aktionen für Ereignistypen über Organisationsteams hinweg", + "pbac_desc_manage_event_types": "Alle Aktionen für Ereignistypen innerhalb der Organisation", - "pbac_desc_manage_teams": "Alle Aktionen für Teams über Organisationsteams hinweg", + "pbac_desc_manage_teams": "Alle Aktionen für Teams innerhalb der Organisation", - "pbac_desc_manage_bookings": "Alle Aktionen für Buchungen über Organisationsteams hinweg", + "pbac_desc_manage_bookings": "Alle Aktionen für Buchungen innerhalb der Organisation",Also applies to: 3334-3334, 3342-3342, 3356-3356
3366-3366
: Localize “Load Balancing” and hyphenate “Round‑Robin‑Gruppen”Use “Lastverteilung” and hyphenate “Round‑Robin”.
Apply:
- "rr_load_balancing_disabled_with_groups": "Load Balancing ist mit Round Robin Gruppen nicht verfügbar", + "rr_load_balancing_disabled_with_groups": "Lastverteilung ist mit Round-Robin-Gruppen nicht verfügbar",
875-879
: New OAuth section looks good; unify OAuth key casing across codebaseThese new keys use oauth_* while other keys still use mixed “oAuth*” casing (see lines ~2441–2445). Please standardize to oauth_* everywhere and update references.
Run to locate mixed-case keys and code usages:
#!/bin/bash # Find mixed-case OAuth keys in locales rg -n --glob 'apps/web/public/static/locales/**/*.json' '"oAuth' # Find code usages referring to oAuth* keys rg -n 'oAuth_client_|admin_oAuth_|select_oAuth_client|["'\'']oAuth["'\'']'
@@ -120,7 +120,7 @@ | |||
"already_signed_up_for_this_booking_error": "Du er allerede tilmeldt denne booking.", | |||
"hosts_unavailable_for_booking": "Nogle af værterne er ikke tilgængelige for booking.", | |||
"fixed_hosts_unavailable_for_booking": "Nogle af de faste værter er ikke tilgængelige for booking.", | |||
"round_robin_hosts_unavailable_for_booking": "Ingen Round Robin-værter er tilgængelige for booking.", | |||
"round_robin_host_unavailable_for_booking": "Round Robin-værten er ikke tilgængelig for booking.", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Rename to singular “host” looks good; verify cross-locale presence of the new key
The new key and wording read well in Danish.
Run this to ensure the new key exists in all locales and the old one is fully gone:
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
base="apps/web/public/static/locales"
echo "1) JSON validity check"
fd -H --glob 'common.json' "$base" | xargs -I{} jq -e . {} >/dev/null
echo "✔ JSON valid"
echo
echo "2) Ensure old key is removed"
if rg -n --fixed-strings 'round_robin_hosts_unavailable_for_booking' "$base"; then
echo "Found old key usage above — please remove/replace."
exit 1
else
echo "✔ Old key not found repo-wide"
fi
echo
echo "3) Ensure new key exists in all locales"
missing=0
mapfile -t files < <(fd -H --glob 'common.json' "$base")
for f in "${files[@]}"; do
if ! jq -e 'has("round_robin_host_unavailable_for_booking")' "$f" >/dev/null; then
echo "✗ Missing round_robin_host_unavailable_for_booking in: $f"
missing=1
fi
done
[ $missing -eq 0 ] && echo "✔ New key present in all locales"
Length of output: 771
I noticed the process‐substitution step failed in the sandbox. Let’s re-verify existence of the new key across all locales with a simpler loop:
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
base="apps/web/public/static/locales"
echo "1) JSON validity check"
fd -H --glob 'common.json' "$base" | xargs -I{} jq -e . {} >/dev/null
echo "✔ JSON valid"
echo
echo "2) Ensure old key is removed"
if rg -n --fixed-strings 'round_robin_hosts_unavailable_for_booking' "$base"; then
echo "Found old key usage above — please remove/replace."
exit 1
else
echo "✔ Old key not found repo-wide"
fi
echo
echo "3) Ensure new key exists in all locales"
missing=0
for f in $(fd -H --glob 'common.json' "$base"); do
if ! jq -e 'has("round_robin_host_unavailable_for_booking")' "$f" >/dev/null; then
echo "✗ Missing round_robin_host_unavailable_for_booking in: $f"
missing=1
fi
done
if [ $missing -eq 0 ]; then
echo "✔ New key present in all locales"
else
exit 1
fi
Length of output: 8978
Add new key to all locale files
We verified that JSON is valid and the old key (round_robin_hosts_unavailable_for_booking
) has been fully removed. However, the new key round_robin_host_unavailable_for_booking
is missing in several locale files. Please add the entry with the correct translation in each:
• apps/web/public/static/locales/hr/common.json
• apps/web/public/static/locales/id/common.json
• apps/web/public/static/locales/iw/common.json
• apps/web/public/static/locales/lv/common.json
• apps/web/public/static/locales/sk/common.json
• apps/web/public/static/locales/ta/common.json
• apps/web/public/static/locales/th/common.json
🤖 Prompt for AI Agents
In apps/web/public/static/locales/da/common.json around line 123 and in the
following files: apps/web/public/static/locales/hr/common.json,
apps/web/public/static/locales/id/common.json,
apps/web/public/static/locales/iw/common.json,
apps/web/public/static/locales/lv/common.json,
apps/web/public/static/locales/sk/common.json,
apps/web/public/static/locales/ta/common.json,
apps/web/public/static/locales/th/common.json add the new JSON key
"round_robin_host_unavailable_for_booking" with the correct localized
translation equivalent to "Round Robin host is not available for booking" (use
the proper language-specific phrasing), ensure the old key
"round_robin_hosts_unavailable_for_booking" is not present, keep JSON syntax
valid (comma placement, quoting), and run the locale/JSON linter or tests to
verify.
@@ -3391,6 +3413,7 @@ | |||
"license_key_saved": "Licensnøgle blev gemt med succes", | |||
"timezone_mismatch_tooltip": "Du ser rapporten baseret på din profils tidszone ({{userTimezone}}), mens din browser er indstillet til tidszonen ({{browserTimezone}})", | |||
"failed_bookings_by_field": "Mislykkede bookinger efter felt", | |||
"failed_bookings": "Mislykkede bookinger", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
New analytics label: LGTM; verify cross-locale coverage
Translation is good. Ensure every locale defines this to avoid fallback-to-English.
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
base="apps/web/public/static/locales"
missing=0
mapfile -t files < <(fd -H --glob 'common.json' "$base")
for f in "${files[@]}"; do
if ! jq -e 'has("failed_bookings")' "$f" >/dev/null; then
echo "✗ Missing failed_bookings in: $f"
missing=1
fi
done
[ $missing -eq 0 ] && echo "✔ failed_bookings present in all locales"
Length of output: 256
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
base="apps/web/public/static/locales"
listfile=$(mktemp)
# Gather all common.json paths
find "$base" -name 'common.json' -print0 > "$listfile"
# Check each for the new key
missing=()
while IFS= read -r -d '' f; do
if ! jq -e 'has("failed_bookings")' "$f" >/dev/null; then
missing+=("$f")
fi
done < "$listfile"
rm "$listfile"
# Report results
if [ ${#missing[@]} -eq 0 ]; then
echo "✔ failed_bookings present in all locales"
else
for f in "${missing[@]}"; do
echo "✗ Missing failed_bookings in: $f"
done
exit 1
fi
Length of output: 6286
Missing “failed_bookings” key in additional locales
The new failed_bookings
label is present in most common.json
files, but the following locale files are missing it and will fall back to English:
• apps/web/public/static/locales/hr/common.json
• apps/web/public/static/locales/id/common.json
• apps/web/public/static/locales/iw/common.json
• apps/web/public/static/locales/lv/common.json
• apps/web/public/static/locales/sk/common.json
• apps/web/public/static/locales/ta/common.json
• apps/web/public/static/locales/th/common.json
Please add the appropriate translations for failed_bookings
in each of these files to ensure full cross-locale coverage.
🤖 Prompt for AI Agents
In apps/web/public/static/locales/hr/common.json (and similarly in
apps/web/public/static/locales/id/common.json,
apps/web/public/static/locales/iw/common.json,
apps/web/public/static/locales/lv/common.json,
apps/web/public/static/locales/sk/common.json,
apps/web/public/static/locales/ta/common.json,
apps/web/public/static/locales/th/common.json) add the missing "failed_bookings"
key with the correct localized translation string so these locales no longer
fall back to English; insert the new key in the same JSON object structure and
formatting as other entries (ensure valid JSON, proper escaping, and place it
near related booking labels for consistency).
"hosts_unavailable_for_booking": "Neki od domaćina nisu dostupni za rezervaciju.", | ||
"fixed_hosts_unavailable_for_booking": "Neki od fiksnih domaćina nisu dostupni za rezervaciju.", | ||
"round_robin_hosts_unavailable_for_booking": "Nijedan Round Robin domaćin nije dostupan za rezervaciju.", | ||
"round_robin_host_unavailable_for_booking": "Round Robin domaćin nije dostupan za zakazivanje.", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Automate audit for “Round Robin” remnants and booking noun consistency
Run this to locate remaining English “Round Robin” phrases and noun mismatches for “rezervacija/zakazivanje”.
Also applies to: 3101-3101, 3366-3366
🏁 Script executed:
#!/bin/bash
set -euo pipefail
file="apps/web/public/static/locales/sr/common.json"
echo "— Occurrences containing 'Round Robin' —"
rg -n -S '"[^"]*": "[^"]*Round Robin[^"]*"' "$file" || true
echo
echo "— Unavailability messages for booking noun consistency —"
rg -n -S '"hosts_unavailable_for_booking"| "fixed_hosts_unavailable_for_booking"| "round_robin_host_unavailable_for_booking"' "$file"
echo
echo "— RR keys that might still be English in values —"
rg -n -S '"round_robin"| "reset_interval_weighted_rr"| "rr_interval_successfully_updated"| "rr_settings_successfully_updated"| "distribution_basis_weighted_rr"| "rr_load_balancing_disabled_with_groups"' "$file"
Length of output: 2600
Fix remaining “Round Robin” translations & unify booking noun
- Update the booking-unavailability message to use “rezervaciju” instead of “zakazivanje”:
- round_robin_host_unavailable_for_booking (line 123):
"Round Robin domaćin nije dostupan za rezervaciju."
- round_robin_host_unavailable_for_booking (line 123):
- Translate all other values that still contain English “Round Robin”:
- round_robin (line 806)
- salesforce_route_to_owner (line 2963)
- salesforce_do_not_route_to_owner (line 2965)
- reset_interval_weighted_rr (line 3101)
- rr_interval_successfully_updated (line 3118)
- rr_settings_successfully_updated (line 3263)
- distribution_basis_weighted_rr (line 3264)
- rr_load_balancing_disabled_with_groups (line 3366)
Run the audit script again after updating to confirm no English remnants remain.
🤖 Prompt for AI Agents
In apps/web/public/static/locales/sr/common.json around lines 121-123 and the
other listed keys, the "round_robin_host_unavailable_for_booking" message uses
"zakazivanje" and several entries still contain English "Round Robin"; change
"round_robin_host_unavailable_for_booking" to use "rezervaciju" (i.e., "Round
Robin domaćin nije dostupan za rezervaciju."), replace all remaining English
"Round Robin" occurrences with an appropriate Serbian translation (consistent
phrasing used elsewhere), and update the listed keys (round_robin at ~806,
salesforce_route_to_owner ~2963, salesforce_do_not_route_to_owner ~2965,
reset_interval_weighted_rr ~3101, rr_interval_successfully_updated ~3118,
rr_settings_successfully_updated ~3263, distribution_basis_weighted_rr ~3264,
rr_load_balancing_disabled_with_groups ~3366) to Serbian; after making these
edits run the localization audit script to confirm no English remnants remain.
@@ -3280,6 +3289,7 @@ | |||
"pbac_resource_booking": "Rezervacije", | |||
"pbac_resource_insights": "Uvidi", | |||
"pbac_resource_role": "Uloge", | |||
"pbac_resource_workflow": "Radni tokovi", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
PBAC scope phrasing inconsistent with summary; harmonize to “u organizaciji”
The AI summary claims org-wide phrasing; current strings mix “u timovima organizacije” vs “u organizaciji”. Align for consistency.
- "pbac_desc_manage_workflows": "Puni pristup upravljanju svim radnim tokovima",
+ "pbac_desc_manage_workflows": "Puni pristup upravljanju svim radnim tokovima u organizaciji",
- "pbac_desc_manage_roles": "Sve akcije nad ulogama u timovima organizacije",
+ "pbac_desc_manage_roles": "Sve akcije nad ulogama u organizaciji",
- "pbac_desc_manage_event_types": "Sve akcije nad tipovima događaja u timovima organizacije",
+ "pbac_desc_manage_event_types": "Sve akcije nad tipovima događaja u organizaciji",
- "pbac_desc_manage_teams": "Sve akcije nad timovima u organizaciji",
+ "pbac_desc_manage_teams": "Sve akcije nad timovima u organizaciji", # keep if org-wide scope intended
- "pbac_desc_manage_bookings": "Sve akcije nad rezervacijama u timovima organizacije",
+ "pbac_desc_manage_bookings": "Sve akcije nad rezervacijama u organizaciji",
If team-scoped wording was intentional for specific entries, please confirm and we’ll adjust only the relevant ones.
Also applies to: 3315-3320, 3324-3329, 3333-3333, 3341-3341, 3356-3356
🤖 Prompt for AI Agents
In apps/web/public/static/locales/sr/common.json around lines 3292, 3315-3320,
3324-3329, 3333, 3341, and 3356, several PBAC scope strings use mixed phrasing
("u timovima organizacije" vs "u organizaciji"); update the translations to
consistently use "u organizaciji" where the scope is organization-wide (replace
occurrences of "u timovima organizacije" or similar team-scoped wording with "u
organizaciji"); if any of those entries were intentionally meant to be
team-scoped, leave those specific lines unchanged and add a comment or notify
reviewer to confirm intent.
"pbac_resource_attributes": "Egenskaper", | ||
"pbac_desc_view_organization_attributes": "Visa organisationens egenskaper", | ||
"pbac_desc_update_organization_attributes": "Uppdatera organisationens egenskaper", | ||
"pbac_desc_delete_organization_attributes": "Ta bort organisationens egenskaper", | ||
"pbac_desc_create_organization_attributes": "Skapa organisationens egenskaper", | ||
"pbac_desc_view_roles": "Visa roller", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Use “Attribut” instead of “Egenskaper” for attributes terminology.
Product-wide term is “Attribut”. Align these PBAC strings accordingly.
- "pbac_resource_attributes": "Egenskaper",
- "pbac_desc_view_organization_attributes": "Visa organisationens egenskaper",
- "pbac_desc_update_organization_attributes": "Uppdatera organisationens egenskaper",
- "pbac_desc_delete_organization_attributes": "Ta bort organisationens egenskaper",
- "pbac_desc_create_organization_attributes": "Skapa organisationens egenskaper",
+ "pbac_resource_attributes": "Attribut",
+ "pbac_desc_view_organization_attributes": "Visa organisationens attribut",
+ "pbac_desc_update_organization_attributes": "Uppdatera organisationens attribut",
+ "pbac_desc_delete_organization_attributes": "Ta bort organisationens attribut",
+ "pbac_desc_create_organization_attributes": "Skapa organisationens attribut",
To enforce consistency across the file, scan and replace remaining “Egenskaper” where it denotes “Attributes”:
🏁 Script executed:
#!/bin/bash
rg -n $'"Egenskaper|egenskaper"' apps/web/public/static/locales/sv/common.json
Length of output: 736
Ensure “Attribut” is used for all attribute-related entries
We’ve identified additional occurrences of “Egenskaper” that map to “attributes” in apps/web/public/static/locales/sv/common.json
. Please update them as follows:
• Line 2789: "attributes": "Egenskaper"
• Line 2791: "add_attributes": "Lägg till egenskaper"
• Line 2800: "attributes_edited_successfully": "Egenskaperna redigerades framgångsrikt"
• Line 2803: "back_to_attributes": "Tillbaka till egenskaper"
• Lines 3315–3319: PBAC entries
Suggested diff:
- "attributes": "Egenskaper",
- "add_attributes": "Lägg till egenskaper",
- "attributes_edited_successfully": "Egenskaperna redigerades framgångsrikt",
- "back_to_attributes": "Tillbaka till egenskaper",
- "pbac_resource_attributes": "Egenskaper",
- "pbac_desc_view_organization_attributes": "Visa organisationens egenskaper",
- "pbac_desc_update_organization_attributes": "Uppdatera organisationens egenskaper",
- "pbac_desc_delete_organization_attributes": "Ta bort organisationens egenskaper",
- "pbac_desc_create_organization_attributes": "Skapa organisationens egenskaper",
+ "attributes": "Attribut",
+ "add_attributes": "Lägg till attribut",
+ "attributes_edited_successfully": "Attributen redigerades framgångsrikt",
+ "back_to_attributes": "Tillbaka till attribut",
+ "pbac_resource_attributes": "Attribut",
+ "pbac_desc_view_organization_attributes": "Visa organisationens attribut",
+ "pbac_desc_update_organization_attributes": "Uppdatera organisationens attribut",
+ "pbac_desc_delete_organization_attributes": "Ta bort organisationens attribut",
+ "pbac_desc_create_organization_attributes": "Skapa organisationens attribut",
📝 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.
"pbac_resource_attributes": "Egenskaper", | |
"pbac_desc_view_organization_attributes": "Visa organisationens egenskaper", | |
"pbac_desc_update_organization_attributes": "Uppdatera organisationens egenskaper", | |
"pbac_desc_delete_organization_attributes": "Ta bort organisationens egenskaper", | |
"pbac_desc_create_organization_attributes": "Skapa organisationens egenskaper", | |
"pbac_desc_view_roles": "Visa roller", | |
"pbac_resource_attributes": "Attribut", | |
"pbac_desc_view_organization_attributes": "Visa organisationens attribut", | |
"pbac_desc_update_organization_attributes": "Uppdatera organisationens attribut", | |
"pbac_desc_delete_organization_attributes": "Ta bort organisationens attribut", | |
"pbac_desc_create_organization_attributes": "Skapa organisationens attribut", | |
"pbac_desc_view_roles": "Visa roller", |
🤖 Prompt for AI Agents
In apps/web/public/static/locales/sv/common.json lines ~2789, 2791, 2800, 2803
and 3315–3319, replace instances of "Egenskaper"/phrases containing "egenskaper"
that map to "attributes" with the consistent term "Attribut" (use "Attribut" for
the standalone key), and update related phrases accordingly: "attributes" ->
"Attribut"; "add_attributes" -> "Lägg till attribut";
"attributes_edited_successfully" -> "Attributen redigerades framgångsrikt";
"back_to_attributes" -> "Tillbaka till attribut"; PBAC entries
(pbac_resource_attributes and pbac_desc_*_organization_attributes) change
"Egenskaper"/"organisationens egenskaper" to "Attribut"/"organisationens
attribut" while leaving unrelated keys like "pbac_desc_view_roles" unchanged.
8e562c5
to
acebc27
Compare
Hey team,
Lingo.dev here with fresh translations!
In this update
Next Steps