-
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. |
WalkthroughRenames round_robin_hosts_unavailable_for_booking → round_robin_host_unavailable_for_booking and adds many public locale 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 many pbac_desc_ entries (workflows, organization attributes, etc.), group/booking/stats keys, and an extensive webhook metadata key set. Changes are localization-only; no runtime or business-logic files 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
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/sk-SK/common.json (1)
1-3476
: Audit: Normalize “round robin” terminology
We found mixed uses of “Round Robin” vs. “round-robin” vs. “round robin” insk-SK/common.json
. Please standardize all to a single form—e.g. “round-robin” (lowercase, hyphen)—for consistency.Affected entries (update the value of each key):
- round_robin_host_unavailable_for_booking (line 123)
- round_robin (line 806)
- billing_freeplan_description (line 1751)
- round_robin_hosts (line 1950)
- collective_or_roundrobin (line 2032)
- book_your_team_members (line 2033)
- organization_banner_description (line 2277)
- scheduling_for_your_team_description (line 2451)
- reschedule_with_same_round_robin_host_title (line 2829)
- 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)
Ensure every occurrence uses the chosen form “round-robin”.
apps/web/public/static/locales/vi/common.json (1)
240-240
: Unify OAuth terminology in Vietnamese localePlease replace the remaining “OAuthClient” occurrence with “ứng dụng OAuth” for consistency:
• File:
apps/web/public/static/locales/vi/common.json
• Line 240@@ apps/web/public/static/locales/vi/common.json:240 - "webhook_update_form_description": "Thêm một webhook vào OAuthClient của bạn.", + "webhook_update_form_description": "Thêm một webhook vào ứng dụng OAuth của bạn.",
♻️ Duplicate comments (71)
apps/web/public/static/locales/uk/common.json (5)
875-878
: Hyphenate “OAuth‑клієнт” and tighten phrasing.Use the hyphenated form and more concise UA phrasing.
- "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-клієнта для інтеграцій зі сторонніми сервісами",Scan for other occurrences that should be hyphenated:
#!/bin/bash rg -n $'OAuth ?клієн' apps/web/public/static/locales/uk/common.json
1844-1845
: Consistency: use “Лише” and hyphenate “OAuth‑клієнти”.Matches prior style (“Лише адміністратор…”) and 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-клієнтами",
3333-3333
: Align terminology: use “заходів” (not “подій”).The locale consistently uses “Типи заходів”.
- "pbac_desc_manage_event_types": "Усі дії з типами подій у командах організації", + "pbac_desc_manage_event_types": "Усі дії з типами заходів у командах організації",
123-123
: Unify “ведучий” terminology (not “організатор”).Keep host terminology consistent with the rest of the locale (“Ведучі”, “Почергові ведучі”).
- "round_robin_host_unavailable_for_booking": "Організатор почергового розподілу недоступний для бронювання.", + "round_robin_host_unavailable_for_booking": "Ведучий почергового розподілу недоступний для бронювання.",
3445-3469
: Standardize “вебгук”, lowercase “слаг”, prefer “учасники”, and pluralize “Показати змінні”.Harmonize spelling and casing across webhook metadata labels.
- "webhook_created_at": "Час створення вебхука", + "webhook_created_at": "Час створення вебгука", - "webhook_type": "Слаг типу події", + "webhook_type": "слаг типу події", - "webhook_team_members": "Члени забронованої команди", + "webhook_team_members": "Учасники забронованої команди", - "webhook_show_variable": "Показати доступні змінні", + "webhook_show_variable": "Показати змінні",Optionally unify remaining occurrences:
#!/bin/bash # Find mixed spellings and casing to normalize rg -n $'вебхук|вебгук|Слаг типу події' apps/web/public/static/locales/uk/common.jsonapps/web/public/static/locales/zh-CN/common.json (2)
3366-3366
: Replace English “Round Robin” with “轮流” in zh-CNUse fully localized phrasing (prior feedback). Suggested:
- "rr_load_balancing_disabled_with_groups": "负载均衡在 Round Robin 组中不可用", + "rr_load_balancing_disabled_with_groups": "轮流组中不支持负载均衡",#!/bin/bash # Verify no remaining "Round Robin" in zh-CN common.json rg -n 'Round Robin' apps/web/public/static/locales/zh-CN/common.json || echo "No remaining occurrences"
3444-3475
: Webhook metadata: optional concise Chinese and terminology tweaksParity looks good. Optional polish for brevity and consistency (drop 的, simplify terms, align with other strings):
- "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": "事件类型 ID", - "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_uid": "预订的 UID", + "webhook_uid": "预订 UID", - "webhook_organizer_name": "组织者的姓名", + "webhook_organizer_name": "组织者姓名", - "webhook_organizer_email": "组织者的电子邮件", + "webhook_organizer_email": "组织者邮箱", - "webhook_organizer_timezone": "组织者的时区(例如:'America/New_York','Asia/Kolkata')", + "webhook_organizer_timezone": "组织者时区(如 'America/New_York')", - "webhook_organizer_locale": "组织者的语言环境(例如:'en','fr')", + "webhook_organizer_locale": "组织者语言(如 'en')", - "webhook_attendee_name": "第一位参与者的姓名", + "webhook_attendee_name": "参与者姓名", - "webhook_attendee_email": "第一位参与者的电子邮件", + "webhook_attendee_email": "参与者邮箱", - "webhook_attendee_timezone": "第一位参与者的时区", + "webhook_attendee_timezone": "参与者时区", - "webhook_attendee_locale": "第一位参与者的语言环境", + "webhook_attendee_locale": "参与者语言", - "webhook_team_name": "预订团队的名称", + "webhook_team_name": "团队名称", - "webhook_team_members": "预订团队的成员", + "webhook_team_members": "团队成员", - "webhook_video_call_url": "会议的视频通话 URL", + "webhook_video_call_url": "视频通话 URL", - "webhook_hide_variables": "隐藏变量", + "webhook_hide_variables": "隐藏变量", - "webhook_show_variable": "显示可用变量", + "webhook_show_variable": "显示变量",apps/web/public/static/locales/ca/common.json (3)
2255-2256
: Fix terminology and grammar for headless routing API.This was previously flagged; it still uses “routing headless” and incorrect article “les 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.",
3323-3323
: Tighten PBAC description phrasing (remove redundancies).Earlier we suggested improving these to avoid “en els equips de l’organització”/duplications. Proposed concise, natural phrasing:
- "pbac_desc_manage_roles": "Totes les accions sobre rols en els 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 en els 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 en els 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 en els 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 form for “add_group” to match other “add_*” keys.Most action labels use imperative (“Afegeix …”). Align for consistency.
- "add_group": "Afegir grup", + "add_group": "Afegeix un grup",apps/web/public/static/locales/es-419/common.json (1)
123-123
: Consistency with nearby phrasing (“para la reserva”)Align with Line 121 by switching to singular.
- "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/sk-SK/common.json (2)
123-123
: Unify casing: “round robin” should be lowercase (consistency with this file).Update to lowercase to match other SK strings (e.g., Line 73 “pravdepodobnosť round robin”).
- "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-2257
: Fix “headless” mistranslation (currently says “bezstavové”).Use “headless (bez UI)” to preserve the intended meaning.
- "use_our_headless_routing_api": "Použite naše bezstavové smerovacie API a použite vlastný formulár pre odosielanie.", + "use_our_headless_routing_api": "Použite naše headless (bez UI) smerovacie API a svoj vlastný formulár na odoslanie.",To ensure this didn’t regress elsewhere in SK locale:
#!/bin/bash rg -n $'"use_our_headless_routing_api":\\s*"Použite naše[^"]*' apps/web/public/static/locales/sk-SK/common.jsonapps/web/public/static/locales/sr/common.json (1)
123-123
: Unify “Round Robin” term and booking noun (“rezervacija”), per locale conventionsReplace English “Round Robin” and “zakazivanje” with consistent Serbian terms used elsewhere.
- "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."Run to audit remaining inconsistencies in this locale:
#!/bin/bash # RR terminology and booking noun audit in Serbian locale rg -n -S $'"Round Robin"|kružn|kružno dodeljiv|kružnog raspored' apps/web/public/static/locales/sr/common.json rg -n -S $'"rezervaci' apps/web/public/static/static/locales/sr/common.json || true rg -n -S $'"zakaziv' apps/web/public/static/locales/sr/common.json || trueapps/web/public/static/locales/hu/common.json (3)
123-123
: Unify Round‑Robin terminology and fix grammar (“nem érhető el”).Use the same “Round‑Robin” wording across the locale and the correct predicate.
- "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 and correct possessive in OAuth section.Align with the rest of the locale’s formal address and possessives.
"oauth_clients": "OAuth kliensek", - "oauth_clients_description": "Kezeld szervezeted OAuth klienseit", + "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ókhoz", + "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 for embedding/headless routing string.Switch to formal register and clearer wording.
"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_our_headless_routing_api": "Használja headless útválasztó API‑nkat, és saját űrlapját használja a beküldésekhez."apps/web/public/static/locales/da/common.json (3)
123-123
: Danish phrasing tweak for naturalnessPrefer “til booking” over “for booking”.
- "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.",#!/bin/bash set -euo pipefail base_dir="apps/web/public/static/locales" echo "1) Validate JSON" fd -H --glob 'common.json' "$base_dir" | xargs -I{} jq -e . "{}" >/dev/null echo "2) Ensure old key is gone and new key exists in all locales" echo "Old key occurrences (should be none):" rg -n --fixed-strings 'round_robin_hosts_unavailable_for_booking' "$base_dir" || true echo echo "New key occurrences by locale:" fd -H --glob 'common.json' "$base_dir" | while read -r f; do if ! rg -q --fixed-strings '"round_robin_host_unavailable_for_booking"' "$f"; then echo "Missing new key in: $f" fi done
1844-1845
: Use product term “Directory Sync” (not “synkronisering af mapper”)Avoid implying filesystem folders; use the product name.
- "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-3315
: PBAC terminology consistency: use “Attributter”The PBAC block elsewhere uses “organisationsattributter”. Align the resource label.
- "pbac_resource_attributes": "Egenskaber", + "pbac_resource_attributes": "Attributter",apps/web/public/static/locales/es/common.json (5)
123-123
: Spanish: singular article reads more natural herePrefer “para la reserva” over “para reservas”.
-"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
: Tone consistency (Administra vs Gestiona)Optional: elsewhere we commonly use “Administra …”.
"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",
1844-1845
: Admin-only restriction keys — presence looks good; ensure cross‑locale coverageES translations LGTM. Please ensure these keys exist in all locales to avoid EN fallbacks.
#!/bin/bash set -euo pipefail for k in only_admin_can_manage_directory_sync only_admin_can_manage_oauth_clients; do locales=$(fd -t d . apps/web/public/static/locales -d 1 | wc -l) present=$(rg -l "\"$k\"" apps/web/public/static/locales/*/common.json | wc -l) echo "$k -> $present/$locales" if [ "$present" -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
3324-3329
: Unify PBAC workflow descriptions (minor Spanish tweaks)Singular “configuración” and word order read more naturally; also slightly crisper “Acceso de gestión completo…”.
"pbac_desc_manage_roles": "Todas las acciones en roles a través de los equipos de la organización", -"pbac_desc_create_workflows": "Crear y configurar nuevos flujos de trabajo", -"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_delete_workflows": "Eliminar flujos de trabajo del sistema", -"pbac_desc_manage_workflows": "Acceso completo de gestión a todos los flujos de trabajo", +"pbac_desc_create_workflows": "Crear y configurar nuevos 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_delete_workflows": "Eliminar flujos de trabajo del sistema", +"pbac_desc_manage_workflows": "Acceso de gestión completo a todos los flujos de trabajo",
3416-3416
: Analytics/status labels — present; ensure cross‑locale coverageES entries look good. Please verify these keys exist across all locales.
#!/bin/bash set -euo pipefail keys=("failed_bookings" "stats" "booking_status") locales=$(fd -t d . apps/web/public/static/locales -d 1 | wc -l) for k in "${keys[@]}"; do present=$(rg -l "\"$k\"" apps/web/public/static/locales/*/common.json | wc -l) echo "$k -> $present/$locales" doneAlso applies to: 3473-3475
apps/web/public/static/locales/ar/common.json (5)
875-878
: Standardize Organization as “المنظمة” (“منظمتك”)Matches established usage elsewhere in this file.
- "oauth_clients_description": "إدارة عملاء OAuth لمؤسستك", + "oauth_clients_description": "إدارة عملاء OAuth لمنظمتك"
1844-1845
: Use “المنظمة” consistently in admin noticesAlign with earlier decisions across 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",
3315-3320
: Standardize Organization as “المنظمة” in PBAC attributesKeep the same term across PBAC descriptors:
"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": "إنشاء سمات المنظمة",
3323-3334
: PBAC scope strings: replace “المؤسسة” with “المنظمة”Align all scope notes:
- "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: 3341-3341, 3356-3356
3444-3473
: Correct webhook metadata translations and unify spelling (“ويبهوك”)These keys need semantic and terminology fixes (per prior review):
- "webhook_created_at": "وقت الويب هوك", + "webhook_created_at": "وقت إنشاء الويبهوك", - "webhook_type": "رابط نوع الحدث", + "webhook_type": "نوع الحدث", + // If meant as slug/identifier, prefer: + // "webhook_type": "معرّف نوع الحدث", - "webhook_title": "اسم نوع الحدث", + "webhook_title": "عنوان الحدث", - "webhook_show_variable": "إظهار المتغيرات المتاحة", + "webhook_show_variable": "إظهار المتغير المتاح",Additionally, keep “ويبهوك” (without space) consistently across new strings in this block.
apps/web/public/static/locales/bn/common.json (1)
123-123
: Fix BN possessive: use “বুকিংয়ের”
Use the correct contracted possessive form.- "round_robin_host_unavailable_for_booking": "রাউন্ড রবিন হোস্ট বুকিং এর জন্য অনুপলব্ধ।", + "round_robin_host_unavailable_for_booking": "রাউন্ড রবিন হোস্ট বুকিংয়ের জন্য অনুপলব্ধ।",apps/web/public/static/locales/fi/common.json (2)
123-123
: Finnish hyphenation: remove space and use “Round-robin” compoundUse the closed compound without a space before the hyphen to match Finnish style and similar keys elsewhere.
- "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."
3444-3473
: Clarify “created_at” to denote creation time explicitly“Webhookin aika” is ambiguous; prefer explicit creation time to match en base and other locales.
- "webhook_created_at": "Webhookin aika", + "webhook_created_at": "Webhookin luontiaika",Everything else in this block looks aligned (“type/title” semantics are correct).
apps/web/public/static/locales/tr/common.json (5)
123-123
: RR terminology: prefer “Döngüsel organizatör” over “Sıralı ev sahibi”.Align with existing TR locale usage for Round Robin hosts.
- "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 “Kuruluş” terminology in OAuth section.Replace “Organizasyonunuz” with “Kuruluşunuz”.
- "oauth_clients_description": "Organizasyonunuz için OAuth istemcilerini yönetin", + "oauth_clients_description": "Kuruluşunuz için OAuth istemcilerini yönetin"
1844-1845
: “Kuruluş” consistency for admin-only notices.Replace “organizasyonun” with “kuruluşun” and keep natural phrasing.
- "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-3334
: PBAC descriptions: switch “Organizasyon” → “Kuruluş” for consistency.Align with the locale’s preferred term.
- "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 update nearby PBAC “organization” mentions within this vicinity if present (outside the diff) to avoid mixed terminology.
3444-3472
: Webhook labels: use “Web kancası” and “Organizatör” consistently; tweak reschedule UID phrasing.Align with earlier strings in this file that already use “Web kancası” and with “Organizatör” elsewhere.
- "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 follow-up (not in this range): consider replacing remaining “Webhook” occurrences in other keys with “Web kancası” for full consistency.
apps/web/public/static/locales/eu/common.json (2)
875-879
: Standardize OAuth key namespace with componentsExisting components use oAuth_* while these new keys are oauth_* (lowercase). This will lead to unresolved translations unless code is updated.
Confirm current usage:
#!/bin/bash rg -n --fixed-strings 'oauth_clients|create_oauth_client' apps packages rg -n --fixed-strings 'oAuth_clients|create_oAuth_client|oAuth_client' apps packagesIf keeping component calls as is, rename these keys:
- "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, align the deletion message key nearby for consistency:
"oAuth_client_deletion_message": "OAuth bezeroa behar bezala ezabatu da"
3292-3292
: Add missing “manage” descriptor for organization attributesThe Basque locale defines view/update/delete/create for organization attributes but lacks the corresponding
pbac_desc_manage_organization_attributes
. UIs that auto-compose “manage” labels will render an empty string without this key.• File: apps/web/public/static/locales/eu/common.json
• Around lines 3315–3320Suggested diff:
"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", "pbac_desc_view_roles": "Rolak ikusi",
apps/web/public/static/locales/bg/common.json (2)
123-123
: Unify “Round‑Robin” branding in BG valuePrefer brand-consistent “Round‑Robin” rather than generic “на ротационния принцип”.
- "round_robin_host_unavailable_for_booking": "Домакинът на ротационния принцип не е наличен за резервация.", + "round_robin_host_unavailable_for_booking": "Round‑Robin домакинът не е наличен за резервация.",Run to verify old key usages and new key coverage:
#!/bin/bash set -euo pipefail # 1) Find lingering usages of the deprecated plural key anywhere rg -n --hidden --glob '!*node_modules*' $'round_robin_hosts_unavailable_for_booking|hosts_unavailable_for_booking' # 2) Ensure the new singular key is referenced in code rg -n --hidden --glob '!*node_modules*' 'round_robin_host_unavailable_for_booking' # 3) Check that all locale files define the new key fd -t f common.json apps/web/public/static/locales | while read -r f; do hit=$(rg -n '\"round_robin_host_unavailable_for_booking\"' "$f" | wc -l | tr -d ' ') if [ "$hit" -eq 0 ]; then echo "MISSING in $f"; fi done
3445-3472
: Webhook labels: improve natural BG and align singular/plural
These sound literal. Apply more natural phrasing and singular for “show_variable”.- "webhook_trigger_event": "Името на задействащото събитие (напр. BOOKING_CREATED, BOOKING_CANCELLED)", + "webhook_trigger_event": "Име на задействащото събитие (например BOOKING_CREATED, BOOKING_CANCELLED)", - "webhook_created_at": "Времето на уебхука", + "webhook_created_at": "Време на създаване на уебхука", - "webhook_type": "Слъгът на типа събитие", + "webhook_type": "Идентификатор (slug) на типа събитие", - "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_hide_variables": "Скрий променливите", + "webhook_hide_variables": "Скриване на променливите", - "webhook_show_variable": "Покажи наличните променливи", + "webhook_show_variable": "Покажи променлива", - "webhook_event_and_booking": "Събитие и резервация", + "webhook_event_and_booking": "Събитие и резервация", - "webhook_people": "Хора", + "webhook_people": "Хора", - "webhook_teams": "Екипи", + "webhook_teams": "Екипи", - "webhook_metadata": "Метаданни", + "webhook_metadata": "Метаданни",Check UI for singular/plural expectation for “show variable”:
#!/bin/bash # Find consumers of 'webhook_show_variable' to confirm UI intent (singular button vs list) rg -n --hidden --glob '!*node_modules*' 'webhook_show_variable' rg -n --hidden --glob '!*node_modules*' 'show variable|show variables|Покажи променлива|Покажи променливи'apps/web/public/static/locales/it/common.json (2)
123-123
: Normalize “round robin” + preferred term “organizzatore”Keep terminology consistent with the rest of the file (lowercase “round robin”; prefer “organizzatore” over “host”).
- "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
: Normalize “Round Robin” → “round robin”Align with style guide and other keys (“round robin” lowercase, no hyphen).
- "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/et/common.json (7)
123-123
: Standardize “host” → “võõrustaja” (consistency with rest of file)Use “võõrustaja” instead of the English loanword “host”.
- "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
: Normalize “routing” terminology: use “marsruutimine” (not “suunamine”)Keep “routing” consistently as “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.",
3324-3329
: PBAC scope phrasing: simplify “organisatsiooni meeskondades”Use “organisatsioonis” (or “organisatsiooni meeskondadega” where appropriate) for natural Estonian.
- "pbac_desc_manage_roles": "Kõik toimingud rollidega organisatsiooni meeskondades", + "pbac_desc_manage_roles": "Kõik toimingud rollidega organisatsioonis", @@ "pbac_desc_delete_workflows": "Eemalda töövood süsteemist", "pbac_desc_manage_workflows": "Täielik haldusõigus kõikidele töövoogudele",
3333-3333
: PBAC phrasing: event types- "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",
3341-3341
: PBAC phrasing: teams- "pbac_desc_manage_teams": "Kõik toimingud meeskondadega organisatsiooni meeskondades", + "pbac_desc_manage_teams": "Kõik toimingud organisatsiooni meeskondadega",
3356-3356
: PBAC phrasing: bookings- "pbac_desc_manage_bookings": "Kõik toimingud broneeringutega organisatsiooni meeskondades", + "pbac_desc_manage_bookings": "Kõik toimingud broneeringutega organisatsioonis",
3444-3473
: Standardize “webhook” terminology and fix nouns (“lühinimi”, “ümberajastamine”, “lokaat”)Use “veebihaak/veebihaagi”; prefer “lühinimi”; and “lokaat”. Also “Ü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", "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",apps/web/public/static/locales/pt/common.json (3)
3416-3416
: Grammar fix: “Reservas falhadas”Correct PT-PT phrase for failed bookings.
- "failed_bookings": "Reservas falhas", + "failed_bookings": "Reservas falhadas",
3444-3475
: Webhooks + booking status: PT‑PT fixes (“equipa”, “Estado da reserva”, clearer created-at label)Apply earlier normalization and fix two webhook “equipa” values.
- "webhook_trigger_event": "O nome do evento de gatilho (ex., BOOKING_CREATED, BOOKING_CANCELLED)", - "webhook_created_at": "A hora do webhook", + "webhook_trigger_event": "Nome do evento de acionamento (ex.: BOOKING_CREATED, BOOKING_CANCELLED)", + "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",
3292-3292
: PBAC: normalize to PT‑PT (“Ver”, “Eliminar”, “gestão”, “equipas”)Replace pt-BR variants and literal “gerenciamento” with PT-PT and domain wording used elsewhere in this file.
- "pbac_resource_workflow": "Fluxos de trabalho", + "pbac_resource_workflow": "Fluxos de trabalho", @@ - "pbac_resource_attributes": "Atributos", - "pbac_desc_view_organization_attributes": "Visualizar 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_create_organization_attributes": "Criar 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": "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 em todas as equipes da organização", + "pbac_desc_manage_roles": "Todas as ações em funções em todas as equipas da organização", - "pbac_desc_create_workflows": "Criar e configurar novos fluxos de trabalho", - "pbac_desc_view_workflows": "Visualizar fluxos de trabalho existentes e suas configurações", - "pbac_desc_update_workflows": "Editar e modificar configurações de fluxo de trabalho", - "pbac_desc_delete_workflows": "Remover fluxos de trabalho do sistema", - "pbac_desc_manage_workflows": "Acesso completo de gerenciamento a todos os fluxos de trabalho", + "pbac_desc_create_workflows": "Criar e configurar novos fluxos de trabalho", + "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": "Eliminar fluxos de trabalho do sistema", + "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 em todas as equipes da organização", + "pbac_desc_manage_event_types": "Todas as ações em tipos de eventos em todas as equipas da organização", @@ - "pbac_desc_manage_teams": "Todas as ações em equipes em todas as equipes da organização", + "pbac_desc_manage_teams": "Todas as ações em equipas em todas as equipas da organização", @@ - "pbac_desc_manage_bookings": "Todas as ações em agendamentos em todas as equipes da organização", + "pbac_desc_manage_bookings": "Todas as ações em reservas em todas as equipas da organização",Also applies to: 3315-3334, 3341-3341, 3356-3356
apps/web/public/static/locales/fr/common.json (1)
123-123
: Standardize “round-robin” casing/hyphenation (duplicate of prior feedback).Use “round-robin” (lowercase, hyphen) to match the file’s style (see Line 1950).
- "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."apps/web/public/static/locales/ro/common.json (3)
875-879
: Switch to polite/plural voice (“dvs.”) in OAuth client UIThese four strings use informal imperatives and “ta/tău”. The project prefers polite/plural (“-ți/ți/țiți” forms and “dvs.”).
- "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",Optional follow-up (tone alignment):
- "oauth_client_deletion_message": "Clientul OAuth a fost șters cu succes", + "oauth_client_deletion_message": "Clientul OAuth a fost șters cu succes.",
3445-3472
: Webhook labels: clarity, tone, and “rezervare” consistency
- Make created_at read like a timestamp label (“Creat la”).
- Use polite imperatives.
- 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",
3473-3474
: Booking status wordingPrefer “Starea rezervării” over “Status programare” for consistency.
- "booking_status": "Status programare", + "booking_status": "Starea rezervării",apps/web/public/static/locales/he/common.json (2)
3292-3356
: PBAC expansions (workflows, attributes, scoped descriptions) — ensure EN parityGood additions. Please ensure EN locale contains all corresponding keys (workflows/actions, attributes and the scoped org/team descriptors) to keep fallback behavior consistent in UI.
#!/bin/bash EN=$(fd --absolute-path common.json . | rg '/locales/en/common.json$' | head -n1) echo "Scanning: $EN" # Check presence of new resource keys rg -n '"pbac_resource_workflow"| "pbac_resource_attributes"' "$EN" || true # Verify scoped descriptors added here exist in EN as well rg -nE '"pbac_desc_(create|view|update|delete|manage)_(workflows|event_types|teams|bookings)"' "$EN" || echo "One or more pbac_desc_* keys missing in EN" # Organization-attributes descriptors rg -n '"pbac_desc_view_organization_attributes"| "pbac_desc_update_organization_attributes"| "pbac_desc_delete_organization_attributes"| "pbac_desc_create_organization_attributes"' "$EN" || echo "Org attribute descriptors missing in EN"
875-879
: OAuth: mixed key casing still present elsewhere (oAuth_ vs oauth_*)*New keys use oauth_, but existing keys around Lines 2441–2445 still use oAuth_; this inconsistency risks i18n lookup errors. Standardize to oauth_* everywhere.
Apply this diff in this file to rename the legacy keys (update code references accordingly):
- "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 קיים",#!/bin/bash # Audit for mixed casing across translations and code echo "Translations:" rg -n --hidden -e '"oAuth_[^"]+"' -e '"oauth_[^"]+"' apps/web/public/static/locales echo "Code references:" rg -n --hidden -e "t\\(['\"]oAuth_" -e "t\\(['\"]oauth_" apps web packagesapps/web/public/static/locales/nl/common.json (1)
123-123
: Hyphenation for “round-robin-host”Keep hyphenation consistent with product copy.
- "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."apps/web/public/static/locales/km/common.json (9)
352-352
: Fix Khmer phrasing for “take turns” in round-robin groups helperUse “វេនគ្នា” instead of “លើកដៃជាបន្តបន្ទាប់”.
- "round_robin_groups_helper": "មនុស្សក្នុងក្រុមនឹងលើកដៃជាបន្តបន្ទាប់ ហើយមនុស្សម្នាក់ពីក្រុមនីមួយៗនឹងចូលរួមក្នុងព្រឹត្តិការណ៍។", + "round_robin_groups_helper": "មនុស្សក្នុងក្រុមនឹងវេនគ្នា ហើយមនុស្សម្នាក់ពីក្រុមនីមួយៗនឹងចូលរួមក្នុងព្រឹត្តិការណ៍។",
875-878
: Use consistent term for “Organization” (អង្គការ) in OAuth blockReplace “អង្គភាព” with “អង្គការ” for consistency across the km 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 “អង្គការ”These two admin notices should use the consistent term.
- "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
: “Headless” should not be literally translatedKeep “Headless” in English for clarity, e.g., “API Routing (Headless)”.
"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 “អង្គការ”Align with the agreed term for Organization.
"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": "បង្កើតគុណលក្ខណៈអង្គការ",
3323-3323
: PBAC roles descriptor: remove “ក្រុមអង្គភាព”Use organization-scoped phrasing.
- "pbac_desc_manage_roles": "សកម្មភាពទាំងអស់លើតួនាទីក្នុងក្រុមអង្គភាព", + "pbac_desc_manage_roles": "សកម្មភាពទាំងអស់លើតួនាទីក្នុងអង្គការ",
3333-3333
: PBAC event types descriptor: remove “ក្រុមអង្គភាព”Keep “អង្គការ” usage consistent.
- "pbac_desc_manage_event_types": "សកម្មភាពទាំងអស់លើប្រភេទព្រឹត្តិការណ៍ក្នុងក្រុមអង្គភាព", + "pbac_desc_manage_event_types": "សកម្មភាពទាំងអស់លើប្រភេទព្រឹត្តិការណ៍ក្នុងអង្គការ",
3341-3341
: PBAC teams descriptor: remove “ក្រុមអង្គភាព”Use organization scope consistently.
- "pbac_desc_manage_teams": "សកម្មភាពទាំងអស់លើក្រុមក្នុងក្រុមអង្គភាព", + "pbac_desc_manage_teams": "សកម្មភាពទាំងអស់លើក្រុមក្នុងអង្គការ",
3356-3356
: PBAC bookings descriptor: fix “organization” termReplace the team-scoped phrase.
- "pbac_desc_manage_bookings": "សកម្មភាពទាំងអស់លើការកក់ក្នុងក្រុមអង្គភាព", + "pbac_desc_manage_bookings": "សកម្មភាពទាំងអស់លើការកក់ក្នុងអង្គការ",apps/web/public/static/locales/vi/common.json (1)
123-123
: Lowercase “luân phiên” for consistencyUse lowercase to match other occurrences in this 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.",
"failed_bookings": "Mislykkede bookinger", | ||
"event_type_no_hosts": "Ingen værter er tildelt denne begivenhedstype", |
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
Ensure “failed_bookings” exists across locales
Prevent UI fallback by adding this new key in all locales.
🏁 Script executed:
#!/bin/bash
set -euo pipefail
base_dir="apps/web/public/static/locales"
fd -H --glob 'common.json' "$base_dir" | while read -r f; do
if ! rg -q --fixed-strings '"failed_bookings"' "$f"; then
echo "Missing failed_bookings in: $f"
fi
done
Length of output: 5734
Add “failed_bookings” to all missing locale files
The following locale files are missing the new "failed_bookings"
key—please add an appropriate translation (or English fallback) 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
Example entry:
"failed_bookings": "Mislykkede bookinger",
(Replace the value with the correct translation for each language.)
🤖 Prompt for AI Agents
In apps/web/public/static/locales/hr/common.json lines ~3416-3417,
apps/web/public/static/locales/id/common.json lines ~3416-3417,
apps/web/public/static/locales/iw/common.json lines ~3416-3417,
apps/web/public/static/locales/lv/common.json lines ~3416-3417,
apps/web/public/static/locales/sk/common.json lines ~3416-3417,
apps/web/public/static/locales/ta/common.json lines ~3416-3417, and
apps/web/public/static/locales/th/common.json lines ~3416-3417 add the missing
"failed_bookings" key; insert a language-appropriate translation as the value
(or use the English fallback "Failed bookings" if you cannot provide a
translation) following the same JSON formatting as the other keys, ensuring
trailing commas and quotation marks remain valid for each file.
94be78a
to
80a49d3
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 (4)
apps/web/public/static/locales/pl/common.json (1)
3292-3334
: Unify PBAC “manage_*” scope phrasingPlease standardize all pbac_desc_manage_* entries to use “w organizacji”:
Locations & updates:
- apps/web/public/static/locales/pl/common.json:3323
- from
"pbac_desc_manage_roles": "Wszystkie działania na rolach w zespołach organizacji",
- to
"pbac_desc_manage_roles": "Wszystkie działania na rolach w organizacji",
- apps/web/public/static/locales/pl/common.json:3333
- from
"pbac_desc_manage_event_types": "Wszystkie działania na typach wydarzeń w zespołach organizacji",
- to
"pbac_desc_manage_event_types": "Wszystkie działania na typach wydarzeń w organizacji",
- apps/web/public/static/locales/pl/common.json:3356
- from
"pbac_desc_manage_bookings": "Wszystkie działania na rezerwacjach w zespołach organizacji",
- to
"pbac_desc_manage_bookings": "Wszystkie działania na rezerwacjach w organizacji",
No changes needed for
pbac_desc_manage_teams
(already “w organizacji”).apps/web/public/static/locales/ro/common.json (1)
1-3475
: Normalize “programare” → “rezervare” in Romanian locale
Multiple entries in apps/web/public/static/locales/ro/common.json still use “programare/Programare/Programări” (informal or incorrect). Please update them to “rezervare/Rezervare/Rezervări” and ensure polite, plural tone.File: apps/web/public/static/locales/ro/common.json
Problematic keys (excerpt – update all similar occurrences):
- calcom_explained: “…infrastructura de programare…” → “…infrastructura de rezervare…”
- calcom_explained_new_user: “…problemele de programare.” → “…problemele de rezervare.”
- check_in_assistant_description: “…verifica dacă programarea stabilită…” → “…verifica dacă rezervarea stabilită…”
- rescheduled_event_type_subject: “…Cerere de reprogramare…” → “…Cerere de reprogramare…” (reţine pluralitate/context)
- requested_to_reschedule_subject_attendee: “…Acțiunea necesită reprogramare…” → “…Acțiunea necesită reprogramare…”
- no_booking: “Fără programare” → “Fără rezervare”
- booking_cancel_redirect_uri: “…pagini…anula rezervarea” (uri key label is fine, ensure translation elsewhere)
- edit_profile_info_description: “…afișate pe link-ul…de programare.” → “…afișate pe link-ul…de rezervare.”
- your_upgrade_is_here_description: “…experiența de programare…” → “…experiența de rezervare…”
- cal_invitee_phone_number_scheduling: “…înainte de programare.” → “…înainte de rezervare.”
- you_will_need_to_generate: “…instrument de programare.” → “…instrument de rezervare.”
- disable_rescheduling / allow_rescheduling_cancelled_bookings / request_reschedule_booking / reschedule_request_sent / reason_for_reschedule(_...): adjust “reprogramare”→“reprogramare” (ensure consistent context)
- collective_scheduling / add_your_team_members / organization_banner_description / scheduling_for_your_team_description / workflow_automation_description / extensive_whitelabeling_description: update “programare…”→“rezervare…”
…plus the dozen+ other hits from your grep.
• Search for
/programar/
in that file and batch-replace.
• Verify plurals (“rezervări”) where appropriate.
• Review any newly added strings for consistency.apps/web/public/static/locales/bg/common.json (2)
2631-2632
: Fix typo and grammar in “Travel schedule”.Visible UI text has a stray letter and wrong gender/word order.
- "travel_schedule": "П пътуване", - "travel_schedule_description": "Планирайте своята пътуване напред, за да запазите вашия съществуващ график в различна часова зона и да предотвратите резервацията в полунощ.", + "travel_schedule": "Пътуване", + "travel_schedule_description": "Планирайте своето пътуване предварително, за да запазите съществуващия си график в различна часова зона и да избегнете резервации в полунощ.",
2637-2637
: Untranslated CTA.Translate the admin CTA for consistency.
- "org_admin_no_slots|cta": "Open users availability", + "org_admin_no_slots|cta": "Отворете наличността на потребителите",
♻️ Duplicate comments (71)
apps/web/public/static/locales/ca/common.json (6)
2255-2256
: Fix terminology and grammar for “headless routing” line.Use “encaminament” for “routing”, translate “headless”, and correct the article for “enviaments”. This was flagged previously and remains.
- "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
: Improve PBAC “manage roles” phrasing.Avoid “a través dels equips de l’organització” and prefer direct genitive.
- "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ó",
3333-3333
: Improve PBAC “manage event types” phrasing.Mirror the roles fix for natural Catalan.
- "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ó",
3341-3341
: Improve PBAC “manage teams” phrasing.Remove redundant “a través dels equips”.
- "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ó",
3356-3356
: Improve PBAC “manage bookings” phrasing.Keep structure consistent with the other PBAC fixes.
- "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ó",
3383-3383
: Use imperative mood for “add_group”.Most “add_*” use “Afegeix …”. Align for consistency.
- "add_group": "Afegir grup", + "add_group": "Afegeix un grup",apps/web/public/static/locales/zh-CN/common.json (2)
3366-3366
: Replace English “Round Robin” with Chinese “轮流” for consistencyKeep locale fully localized and consistent with other RR strings.
- "rr_load_balancing_disabled_with_groups": "负载均衡在 Round Robin 组中不可用", + "rr_load_balancing_disabled_with_groups": "轮流组中不支持负载均衡"
3446-3451
: Webhook copy: optional brevity polishDrop “的” and remove redundancy in description for more concise Chinese.
- "webhook_created_at": "Webhook 的创建时间", + "webhook_created_at": "Webhook 创建时间", - "webhook_description": "事件类型设置中描述的事件描述", + "webhook_description": "事件类型设置中的描述"apps/web/public/static/locales/hu/common.json (3)
123-123
: Unify Round‑Robin terminology + fix grammarUse “Round‑Robin” consistently and correct “nem érhető el” phrasing.
- "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 client sectionSwitch to formal register and fix possessive.
"oauth_clients": "OAuth kliensek", - "oauth_clients_description": "Kezeld szervezeted OAuth klienseit", + "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ókhoz", + "create_oauth_client_description": "Új OAuth kliens létrehozása harmadik fél integrációihoz"
2255-2256
: Formal tone + clarity for embedding/headless routingAlign to formal register and avoid duplicate “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_our_headless_routing_api": "Használja headless útválasztó API‑nkat, és a beküldéshez használja a saját űrlapját."apps/web/public/static/locales/sk-SK/common.json (2)
123-123
: Keep “round robin” lowercase for consistencyAlign with the established casing elsewhere in this file and other 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 (“bezstavové” → “headless (bez UI)”)“Headless” ≠ “bezstavové (stateless)”. Keep the English term with a short SK clarification.
- "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.",Run to check for other occurrences of the mistranslation across locales:
#!/bin/bash rg -n 'bezstavov' apps/web/public/static/localesapps/web/public/static/locales/sr/common.json (5)
123-123
: Unify Round Robin term and booking noun (“rezervacija”)Prefer localized term and consistent noun use.
- "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."
3366-3366
: Localize “Round Robin” for consistencyUse agreed Serbian term instead of English.
- "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",
3323-3323
: Harmonize PBAC scope phrasing (roles) to “u organizaciji”Align with other entries and past guidance.
- "pbac_desc_manage_roles": "Sve akcije nad ulogama u timovima organizacije", + "pbac_desc_manage_roles": "Sve akcije nad ulogama u organizaciji",
3333-3333
: Harmonize PBAC scope phrasing (event types) to “u organizaciji”Remove “u timovima organizacije” for consistency.
- "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",
3356-3356
: Harmonize PBAC scope phrasing (bookings) to “u organizaciji”Align with the rest of the PBAC manage_* entries.
- "pbac_desc_manage_bookings": "Sve akcije nad zakazivanjima u timovima organizacije", + "pbac_desc_manage_bookings": "Sve akcije nad zakazivanjima u organizaciji",apps/web/public/static/locales/bn/common.json (1)
123-123
: Fix BN possessive: use “বুকিংয়ের”
Prior feedback still applies.- "round_robin_host_unavailable_for_booking": "রাউন্ড রবিন হোস্ট বুকিং এর জন্য অনুপলব্ধ।", + "round_robin_host_unavailable_for_booking": "রাউন্ড রবিন হোস্ট বুকিংয়ের জন্য অনুপলব্ধ।",apps/web/public/static/locales/eu/common.json (2)
875-879
: Key casing mismatch prevents translations from being usedThis is the same issue identified in previous reviews - these new keys use
oauth_*
(lowercase) while the codebase expectsoAuth_*
(camelCase). The translations won't be picked up by UI components.Please rename these keys to match the existing pattern:
oauth_clients
→oAuth_clients
oauth_clients_description
→oAuth_clients_description
create_oauth_client
→create_oAuth_client
create_oauth_client_description
→create_oAuth_client_description
3315-3319
: Missing "manage" permission still not addressedThe PBAC organization attributes section includes view, update, delete, and create permissions, but is still missing the
pbac_desc_manage_organization_attributes
key that was identified in previous reviews. This breaks symmetry with other PBAC resources that all have manage permissions.This will cause UI components that dynamically generate permission labels to show blank/undefined strings for "Manage attributes" in Basque.
+"pbac_desc_manage_organization_attributes": "Erakundeko atributuetan ekintza guztiak",
apps/web/public/static/locales/cs/common.json (1)
2255-2256
: “Headless” wording: avoid “bezrozhraní”, keep explicit parenthetical.“bezrozhraní” sounds unnatural. Use “headless (bez uživatelského rozhraní)” to avoid confusion and align with brand voice and past guidance. Also streamline the second clause.
- "use_my_own_form": "Použít vlastní formulář", - "use_our_headless_routing_api": "Použijte naše bezrozhraní API pro směrování a vlastní formulář pro odesílání.", + "use_my_own_form": "Použít vlastní formulář", + "use_our_headless_routing_api": "Použijte naše headless (bez uživatelského rozhraní) směrovací API a odešlete data vlastním formulářem."apps/web/public/static/locales/ro/common.json (3)
875-879
: Polite/plural tone for OAuth client labels (keep UI voice consistent)Switch to polite “Gestionați/Creați … organizația dvs.” as used elsewhere.
- "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-2256
: Polite/plural tone for embedding/headless routing optionsAlign with project-wide voice; avoid “tău/meu”, 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
: Webhooks and booking labels: clarify, adopt polite tone, and prefer “rezervare”
- “webhook_created_at”: prefer a clear timestamp label “Creat la”.
- Use polite “Ascundeți/Afișați …”.
- Replace “programare” with “rezervare”.
- “booking_status”: use “Starea rezervării”.
- "webhook_trigger_event": "Numele evenimentului declanșator (de exemplu, BOOKING_CREATED, BOOKING_CANCELLED)", - "webhook_created_at": "Ora webhook-ului", + "webhook_trigger_event": "Numele evenimentului declanșator (de exemplu, BOOKING_CREATED, BOOKING_CANCELLED)", + "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_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",apps/web/public/static/locales/fi/common.json (2)
123-123
: Finnish hyphenation: prefer “Round‑robin” without spacing around the hyphenUse “Round‑robin” as a compound adjective and remove the extraneous space before the 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."
3445-3475
: Webhook “created_at” wording regressed; prefer explicit “luontiaika”Earlier nit fixed this to explicitly denote creation time. Please keep the clearer phrasing.
- "webhook_created_at": "Webhookin aika", + "webhook_created_at": "Webhookin luontiaika",Note: Other webhook labels look good and align with the base semantics.
apps/web/public/static/locales/ru/common.json (2)
121-123
: Unify “host/hosts” terminology and Round‑Robin casing across RU localeUse a single term for “host” (prefer “организатор”), and standardize Round‑Robin phrasing/casing (e.g., “Round Robin” or “по кругу”) across changed strings.
I can run a quick scan to list remaining inconsistencies:
#!/bin/bash # Find inconsistent host/organizer and Round-Robin phrasing in ru/common.json rg -n 'Round[ -]?Robin|round[ -]?robin|роунд|по кругу|хост(?!инг)|организатор' apps/web/public/static/locales/ru/common.jsonAlso applies to: 352-354, 1850-1853, 2779-2784, 2829-2831, 2882-2885, 2963-2969, 3250-3266, 3361-3367, 3416-3417
123-123
: Standardize “host” → “организатор” for Round Robin messageAlign with the rest of RU locale where “host(s)” are translated as “организатор(ы)”.
Apply this diff:
- "round_robin_host_unavailable_for_booking": "Хост Round Robin недоступен для бронирования.", + "round_robin_host_unavailable_for_booking": "Организатор Round Robin недоступен для бронирования.",apps/web/public/static/locales/tr/common.json (5)
123-123
: Align RR term to “Döngüsel organizatör”.Use the locale-preferred term for Round Robin.
- "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 “Kuruluş” terminology in OAuth description.TR locale prefers “Kuruluşunuz”.
- "oauth_clients_description": "Organizasyonunuz için OAuth istemcilerini yönetin", + "oauth_clients_description": "Kuruluşunuz için OAuth istemcilerini yönetin",
1844-1845
: Replace “organizasyon” → “kuruluş” in admin-only notices.Keep terminology consistent.
- "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 descriptors: use “Kuruluş” instead of “Organizasyon”.Apply consistent terminology across PBAC 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: 3323-3323, 3333-3333, 3341-3341, 3356-3356
3444-3472
: Webhook labels: align with locale (“Web kancası”, “Organizatör”) and tighten phrasing.
- Use “Web kancası” instead of “Webhook”.
- Prefer “Organizatör” over “Düzenleyen”.
- Tighten the reschedule UID phrasing.
- "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')",Note: There are other unchanged “Webhook …” occurrences in this file; consider standardizing them separately to “Web kancası”.
apps/web/public/static/locales/pt/common.json (3)
123-123
: Verify old→new key migration across locales and fix remaining PT-PT nits.Past review flagged ensuring round_robin_hosts_unavailable_for_booking is fully migrated to round_robin_host_unavailable_for_booking across all locales and that webhook/booking terms align. Reconfirm after applying the above changes.
#!/bin/bash # 1) Check for any lingering old key usages (should return nothing) rg -n --hidden -S 'round_robin_hosts_unavailable_for_booking' # 2) Check PT-PT consistency for common Brazilianisms in this file rg -n -S 'gerenciar|equipe|agendamento|Visualizar|Excluir|Status' apps/web/public/static/locales/pt/common.json # 3) Sanity-check presence of the new key in all locales (print missing files) fd common.json apps/web/public/static/locales | while read -r f; do if ! rg -n '"round_robin_host_unavailable_for_booking"' "$f" > /dev/null; then echo "MISSING in: $f" fi doneAlso applies to: 3445-3475
3416-3416
: Grammar fix: “Reservas falhadas”.- "failed_bookings": "Reservas falhas", + "failed_bookings": "Reservas falhadas",
3445-3474
: Webhooks and booking status: PT-PT and domain terms (“equipa”, “Estado da reserva”).- "webhook_trigger_event": "O nome do evento de gatilho (ex., BOOKING_CREATED, BOOKING_CANCELLED)", - "webhook_created_at": "A hora do webhook", + "webhook_trigger_event": "Nome do evento de acionamento (ex.: BOOKING_CREATED, BOOKING_CANCELLED)", + "webhook_created_at": "Data de criação do webhook", "webhook_type": "O slug do tipo de evento", "webhook_title": "O nome do tipo de evento", "webhook_start_time": "A hora de início do evento", "webhook_end_time": "A hora de fim do evento", "webhook_description": "A descrição do evento conforme descrito nas configurações do tipo de evento", "webhook_location": "Localização do evento", "webhook_uid": "O UID da reserva", "webhook_reschedule_uid": "O UID para reagendamento", "webhook_cancellation_reason": "Motivo do cancelamento", "webhook_rejection_reason": "Motivo da rejeição", "webhook_organizer_name": "Nome do organizador", "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_attendee_name": "Nome do primeiro participante", "webhook_attendee_email": "Email do primeiro participante", "webhook_attendee_timezone": "Fuso horário do primeiro participante", "webhook_attendee_locale": "Idioma do primeiro participante", - "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", "webhook_video_call_url": "URL de chamada de vídeo para a reunião", "webhook_hide_variables": "Ocultar variáveis", "webhook_show_variable": "Mostrar variáveis disponíveis", "webhook_event_and_booking": "Evento e agendamento", "webhook_people": "Pessoas", "webhook_teams": "Equipas", "webhook_metadata": "Metadados", "stats": "Estatísticas", - "booking_status": "Status do agendamento", + "booking_status": "Estado da reserva",apps/web/public/static/locales/no/common.json (2)
123-123
: Revert to Norwegian “bestilling” for style consistency (as previously agreed)Earlier review aligned on “bestilling”; this string appears to have regressed to “booking”.
- "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-3356
: Align PBAC scope phrasing and “hendelsestyper” terminology (as previously requested)Use “organisasjonens team” and “hendelsestyper” consistently; this appears to have regressed.
- "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",apps/web/public/static/locales/km/common.json (8)
3356-3356
: PBAC bookings descriptor: organization scope wordingReplace “ក្នុងក្រុមអង្គភាព” with “ក្នុងអង្គការ”.
- "pbac_desc_manage_bookings": "សកម្មភាពទាំងអស់លើការកក់ក្នុងក្រុមអង្គភាព", + "pbac_desc_manage_bookings": "សកម្មភាពទាំងអស់លើការកក់ក្នុងអង្គការ",
3341-3341
: PBAC teams descriptor: organization scope wordingReplace “ក្នុងក្រុមអង្គភាព” with “ក្នុងអង្គការ”.
- "pbac_desc_manage_teams": "សកម្មភាពទាំងអស់លើក្រុមក្នុងក្រុមអង្គភាព", + "pbac_desc_manage_teams": "សកម្មភាពទាំងអស់លើក្រុមក្នុងអង្គការ",
3323-3323
: PBAC roles descriptor: use organization scopeReplace “ក្នុងក្រុមអង្គភាព” with “ក្នុងអង្គការ”.
- "pbac_desc_manage_roles": "សកម្មភាពទាំងអស់លើតួនាទីក្នុងក្រុមអង្គភាព", + "pbac_desc_manage_roles": "សកម្មភាពទាំងអស់លើតួនាទីក្នុងអង្គការ",
875-878
: Use consistent term for “Organization” (“អង្គការ”, not “អង្គភាព”)Update oauth description wording.
"oauth_clients": "កម្មវិធី OAuth", - "oauth_clients_description": "គ្រប់គ្រងកម្មវិធី OAuth សម្រាប់អង្គភាពរបស់អ្នក", + "oauth_clients_description": "គ្រប់គ្រងកម្មវិធី OAuth សម្រាប់អង្គការរបស់អ្នក", "create_oauth_client": "បង្កើតកម្មវិធី OAuth", "create_oauth_client_description": "បង្កើតកម្មវិធី OAuth ថ្មីសម្រាប់ការតភ្ជាប់ជាមួយកម្មវិធីភាគីទីបី",
2255-2256
: Do not translate “Headless” literally; keep “Headless” in EnglishImproves clarity for developers.
"use_my_own_form": "ប្រើទម្រង់ផ្ទាល់ខ្លួនរបស់ខ្ញុំ", - "use_our_headless_routing_api": "ប្រើ API ដឹកនាំដោយគ្មានចំណងជើងរបស់យើង និងប្រើទម្រង់ផ្ទាល់ខ្លួនរបស់អ្នកសម្រាប់ការដាក់ស្នើ។", + "use_our_headless_routing_api": "ប្រើ API Routing (Headless) របស់យើង ហើយប្រើទម្រង់ផ្ទាល់ខ្លួនរបស់អ្នកសម្រាប់ការដាក់ស្នើ។",
3333-3333
: PBAC event types descriptor: organization scope wordingReplace “ក្នុងក្រុមអង្គភាព” with “ក្នុងអង្គការ”.
- "pbac_desc_manage_event_types": "សកម្មភាពទាំងអស់លើប្រភេទព្រឹត្តិការណ៍ក្នុងក្រុមអង្គភាព", + "pbac_desc_manage_event_types": "សកម្មភាពទាំងអស់លើប្រភេទព្រឹត្តិការណ៍ក្នុងអង្គការ",
1844-1845
: Replace “អង្គភាព” with “អង្គការ” in admin-only noticesConsistency with the rest of the locale and product wording.
- "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
: Replace all remaining instances of “អង្គភាព” with “អង្គការ” for consistencyAfter running the grep, we found the term “អង្គភាព” in the following lines of apps/web/public/static/locales/km/common.json:
- 704, 708–710, 714, 876
- 1633, 1635
- 1791, 1793
- 1844–1845
- 2002
- 2393–2394, 2396
- 2537–2539
- 2657–2658
- 2877
- 3163
- 3227–3228
- 3316–3319
- 3323, 3333, 3341, 3356
Please update each translation by replacing “អង្គភាព” with “អង្គការ”. For example:
- "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": "បង្កើតគុណលក្ខណៈអង្គការ",apps/web/public/static/locales/vi/common.json (2)
123-123
: Lowercase “luân phiên” for consistencyUse lowercase for “luân phiên” to match terminology elsewhere.
- "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.",
3444-3474
: Polish webhook metadata labels for natural Vietnamese and consistencyClarify “type” as slug, prefer concise phrasing, and normalize organizer/attendee wording; align capitalization/plurals; use “Siêu dữ liệu” for Metadata.
- "webhook_trigger_event": "Tên của sự kiện kích hoạt (ví dụ: BOOKING_CREATED, BOOKING_CANCELLED)", + "webhook_trigger_event": "Tên sự kiện kích hoạt (ví dụ: BOOKING_CREATED, BOOKING_CANCELLED)", - "webhook_created_at": "Thời gian của webhook", + "webhook_created_at": "Thời gian tạo webhook", - "webhook_type": "Đường dẫn loại sự kiện", + "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_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_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_uid": "UID đặt lịch", - "webhook_reschedule_uid": "UID để đặt lại lịch", + "webhook_reschedule_uid": "UID dùng để đặt lại lịch", - "webhook_cancellation_reason": "Lý do hủy", + "webhook_cancellation_reason": "Lý do hủy", - "webhook_rejection_reason": "Lý do từ chối", + "webhook_rejection_reason": "Lý do từ chối", - "webhook_organizer_name": "Tên của nhà tổ chức", + "webhook_organizer_name": "Tên người tổ chức", - "webhook_organizer_email": "Email của nhà 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_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 nhà tổ chức (ví dụ: 'en', 'fr')", + "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_name": "Tên người tham dự (đầu tiên)", - "webhook_attendee_email": "Email của người tham dự đầu tiên", + "webhook_attendee_email": "Email người tham dự (đầu tiên)", - "webhook_attendee_timezone": "Múi giờ của 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ữ của 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_name": "Tên đội đã đặt lịch", - "webhook_team_members": "Thành viên của độ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_hide_variables": "Ẩn các biến", - "webhook_show_variable": "Hiển thị các biến có sẵ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_people": "Mọi người", - "webhook_teams": "Các nhóm", + "webhook_teams": "Các nhóm", - "webhook_metadata": "Metadata", + "webhook_metadata": "Siêu dữ liệu",apps/web/public/static/locales/ko/common.json (2)
875-878
: Use “타사” instead of “서드파티” (consistency with common KR usage)This keeps terminology consistent and more standard in Korean.
- "create_oauth_client_description": "서드파티 통합을 위한 새 OAuth 클라이언트 생성", + "create_oauth_client_description": "타사 통합을 위한 새 OAuth 클라이언트 생성",If not already done, ensure these OAuth keys exist across all locales to avoid fallback-to-English.
3446-3450
: Normalize webhook labels to “이벤트 타입” (consistency with product UI)Replace “이벤트 유형” with “이벤트 타입” as used broadly elsewhere.
- "webhook_type": "이벤트 유형 슬러그", - "webhook_title": "이벤트 유형 이름", - "webhook_description": "이벤트 유형 설정에 설명된 이벤트 설명", + "webhook_type": "이벤트 타입 슬러그", + "webhook_title": "이벤트 타입 이름", + "webhook_description": "이벤트 타입 설정에 설명된 이벤트 설명",apps/web/public/static/locales/ar/common.json (8)
875-878
: Standardize “Organization” as “المنظمة”Keep “المنظمة” across the file.
- "oauth_clients_description": "إدارة عملاء OAuth لمؤسستك", + "oauth_clients_description": "إدارة عملاء OAuth لمنظمتك",
1844-1845
: Standardize “Organization” as “المنظمة” (permission notices)Matches established usage 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-3319
: Standardize “Organization” as “المنظمة” in PBAC attributesAlign with prior decisions for PBAC texts.
"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": "إنشاء سمات المنظمة",
3323-3323
: PBAC: replace “فرق المؤسسة” → “فرق المنظمة”Keep scope wording consistent.
- "pbac_desc_manage_roles": "جميع الإجراءات على الأدوار عبر فرق المؤسسة", + "pbac_desc_manage_roles": "جميع الإجراءات على الأدوار عبر فرق المنظمة",
3333-3333
: PBAC: replace “فرق المؤسسة” → “فرق المنظمة” (event types)Consistency with the rest of PBAC texts.
- "pbac_desc_manage_event_types": "جميع الإجراءات على أنواع الفعاليات عبر فرق المؤسسة", + "pbac_desc_manage_event_types": "جميع الإجراءات على أنواع الفعاليات عبر فرق المنظمة",
3341-3341
: PBAC: replace “فرق المؤسسة” → “فرق المنظمة” (teams)- "pbac_desc_manage_teams": "جميع الإجراءات على الفرق عبر فرق المؤسسة", + "pbac_desc_manage_teams": "جميع الإجراءات على الفرق عبر فرق المنظمة",
3356-3356
: PBAC: replace “فرق المؤسسة” → “فرق المنظمة” (bookings)- "pbac_desc_manage_bookings": "جميع الإجراءات على الحجوزات عبر فرق المؤسسة", + "pbac_desc_manage_bookings": "جميع الإجراءات على الحجوزات عبر فرق المنظمة",
3366-3366
: Avoid English leakage: use “الترتيب الدوري”Use Arabic rendering for Round‑Robin consistently.
- "rr_load_balancing_disabled_with_groups": "توزيع الحمل غير متاح مع مجموعات round robin", + "rr_load_balancing_disabled_with_groups": "توزيع الحمل غير متاح مع مجموعات الترتيب الدوري",apps/web/public/static/locales/es/common.json (4)
123-123
: Spanish phrasing tweak for naturalness (duplicate of earlier suggestion)Prefer “para la reserva” over “para reservas” for a more natural read.
-"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.",
3325-3329
: PBAC workflows: unify wording; singular “configuración” and word orderMatches prior convention used elsewhere; improves readability.
-"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",
875-878
: Ensure “Administra” is used and add missing OAuth keys across localesThe Spanish translation should use “Administra” for consistency, and the four OAuth keys must be present in every locale to avoid falling back to English.
• apps/web/public/static/locales/es/common.json
"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",• Missing keys in these locale files (add all four):
- 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 update those files with the four keys—
oauth_clients
,oauth_clients_description
,create_oauth_client
, andcreate_oauth_client_description
—using appropriate translations.
3473-3474
: Add missingstats
andbooking_status
translations across all localesThe
stats
andbooking_status
keys are currently absent in 7 of the 44 locale files. Please add appropriate translations (or English fallbacks) 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
Example diff for one locale (use correct translated strings per language):
diff --git a/apps/web/public/static/locales/hr/common.json b/apps/web/public/static/locales/hr/common.json index abc1234..def5678 100644 --- a/apps/web/public/static/locales/hr/common.json +++ b/apps/web/public/static/locales/hr/common.json @@ -42,6 +42,8 @@ "stats": "Statistika", "booking_status": "Status rezervacije" + // "stats": "Statistika", + // "booking_status": "Status rezervacije",[fallbacks should be replaced with accurate translations before merge]
apps/web/public/static/locales/pt-BR/common.json (6)
123-123
: Padronizar “round-robin” (caixa, hífen, artigo definido)Melhora a naturalidade e mantém a consistência ao longo do arquivo.
- "round_robin_host_unavailable_for_booking": "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 agendamento."
352-352
: Clareza e fluidez no helper de grupos round-robinTexto mais direto e menos ambíguo.
- "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
: Headless routing: tornar a cópia mais natural e não repetitivaAjustes sutis para concisão e fluidez.
- "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."
3315-3334
: PBAC: fluidez, consistência e padronização de termosMelhorias de estilo; manter “reservas” ao invés de “agendamentos”.
- "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" - "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-3341, 3356-3356
3416-3416
: “Reservas falhas” → “Reservas com falha”Forma correta em pt-BR.
- "failed_bookings": "Reservas falhas", + "failed_bookings": "Reservas com falha",
3444-3474
: Webhook metadata: padronizar “E‑mail”, retirar artigos e ajustar rótulos
- Usar “E‑mail” (com hífen).
- Remover “O/Os” no início para rótulos mais concisos.
- Ajustar “Times” → “Equipes”, “Agendamento” → “reserva” onde aplicável.
- "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_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_uid": "O UID da reserva", - "webhook_reschedule_uid": "O UID para reagendamento", + "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/bg/common.json (2)
123-123
: Unify Round‑Robin branding (consistency with rest of BG locale).Keep the brand term instead of a paraphrase.
- "round_robin_host_unavailable_for_booking": "Домакинът на ротационния принцип не е наличен за резервация.", + "round_robin_host_unavailable_for_booking": "Round‑Robin домакинът не е наличен за резервация.",Run to ensure the deprecated plural key isn’t referenced and to audit branding consistency:
#!/bin/bash # 1) Old key usage rg -n --hidden --glob '!*node_modules*' $'round_robin_hosts_unavailable_for_booking' # 2) Branding (hyphen, no-hyphen, unicode hyphen) within BG locale rg -n --hidden 'apps/web/public/static/locales/bg/common.json' $'Round Robin|Round-?Robin|Round‑Robin'
3444-3468
: Webhook metadata: improve natural BG and singular/plural as previously suggested.Apply earlier refinements for more idiomatic labels and consistent singular.
- "webhook_created_at": "Времето на уебхука", + "webhook_created_at": "Време на създаване на уебхука", - "webhook_type": "Слъгът на типа събитие", + "webhook_type": "Идентификатор (slug) на типа събитие", - "webhook_description": "Описанието на събитието, както е описано в настройките на типа събитие", + "webhook_description": "Описанието на събитието, както е зададено в настройките на типа събитие", - "webhook_show_variable": "Покажи наличните променливи", + "webhook_show_variable": "Покажи променлива",Check for any remaining occurrences of the old phrases across BG:
#!/bin/bash rg -n 'apps/web/public/static/locales/bg/common.json' $'Времето на уебхука|Слъгът на типа събитие|както е описано|Покажи наличните променливи'
"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", | ||
"collective_scheduling": "Yhteinen ajanvaraus", |
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
Terminology consistency: use “ylläpitäjä” consistently (not “järjestelmänvalvoja”)
Elsewhere in this file you use “ylläpitäjä” for “admin.” Align these two strings for consistency.
- "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"
Run to spot any remaining occurrences mixing the two terms:
🏁 Script executed:
#!/bin/bash
rg -n $'"järjestelmänvalvoja"|\"ylläpitäjä\"' apps/web/public/static/locales/fi/common.json -A 1 -B 1
Length of output: 100
🏁 Script executed:
#!/bin/bash
# Search separately for both terms with proper regex quoting and context
rg -n -e 'järjestelmänvalvoja|ylläpitäjä' -C 1 apps/web/public/static/locales/fi/common.json
Length of output: 6641
Use “ylläpitäjä” instead of “järjestelmänvalvoja” in these two entries
Update the following in apps/web/public/static/locales/fi/common.json
to align with the rest of the file:
• Lines 1844–1845:
- "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",
Committable suggestion skipped: line range outside the PR's diff.
🤖 Prompt for AI Agents
In apps/web/public/static/locales/fi/common.json around lines 1844 to 1846, the
two translation entries still use "järjestelmänvalvoja"; replace that word with
"ylläpitäjä" for the keys "only_admin_can_manage_directory_sync" and
"only_admin_can_manage_oauth_clients" so they read "Vain organisaation
ylläpitäjä tai omistaja voi hallita ..." ensuring spelling and punctuation
remain consistent with surrounding entries.
"oauth_clients": "OAuth-klienter", | ||
"oauth_clients_description": "Administrer OAuth-klienter for organisasjonen din", | ||
"create_oauth_client": "Opprett OAuth-klient", | ||
"create_oauth_client_description": "Opprett en ny OAuth-klient for tredjepartsintegrasjoner", | ||
"oauth_client_deletion_message": "OAuth-klient ble slettet", |
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
AI summary inconsistency: key not removed
Summary claims oauth_client_deletion_message was removed, but this key is present here.
Run to confirm usage outside locales (safe to keep/remove accordingly):
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "Searching for oauth_client_deletion_message outside locales..."
rg -n -S '"oauth_client_deletion_message"' --glob '!apps/web/public/static/locales/**' || true
Length of output: 363
Inconsistent AI summary: oauth_client_deletion_message
wasn’t removed
The summary claims the oauth_client_deletion_message
key was deleted, but:
- It still exists in
apps/web/public/static/locales/no/common.json
(line 879). - It’s referenced in
apps/web/modules/settings/platform/platform-view.tsx:33
via
showToast(t("oauth_client_deletion_message"), "success");
Please update the summary to reflect that this key remains (or, if removal was intended, delete both the JSON entry and its usage).
🤖 Prompt for AI Agents
In apps/web/public/static/locales/no/common.json around line 879 the key
"oauth_client_deletion_message" still exists but the PR summary claims it was
removed; either update the PR summary to state the key remains, or if deletion
was intended remove the JSON entry and also delete or update the reference in
apps/web/modules/settings/platform/platform-view.tsx (line ~33) where
showToast(t("oauth_client_deletion_message"), "success") is called; ensure both
the localization key and all usages are consistently removed or the summary
reflects the key's continued presence.
@@ -120,7 +120,7 @@ | |||
"already_signed_up_for_this_booking_error": "Você já está registrado para esta reserva.", | |||
"hosts_unavailable_for_booking": "Alguns dos anfitriões não estão disponíveis para reserva.", | |||
"fixed_hosts_unavailable_for_booking": "Alguns dos anfitriões fixos não estão disponíveis para reserva.", | |||
"round_robin_hosts_unavailable_for_booking": "Nenhum anfitrião de rodízio está disponível para reserva.", | |||
"round_robin_host_unavailable_for_booking": "O anfitrião do Round Robin não está disponível para agendamento.", |
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
PT-PT consistency: prefer “reserva” over “agendamento”.
Use domain term “reserva” consistently; suggested wording:
- "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.",
📝 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": "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.", |
🤖 Prompt for AI Agents
In apps/web/public/static/locales/pt/common.json around line 123, the Portuguese
translation uses “agendamento” but the project prefers the domain term
“reserva”; update the value to use “reserva” for PT-PT consistency (e.g.,
replace the string with the equivalent using “reserva”), keeping punctuation and
capitalization identical to surrounding entries.
@@ -349,6 +349,7 @@ | |||
"available_apps_lower_case": "Aplicações disponíveis", | |||
"available_apps_desc": "Veja aplicativos populares abaixo e explore mais em nossa <0>App Store</0>", | |||
"fixed_host_helper": "Adicione qualquer pessoa que precise participar do evento. <0>Saiba mais</0>", | |||
"round_robin_groups_helper": "As pessoas em um grupo se revezam, uma pessoa de cada grupo aparecerá no evento.", |
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
PT-PT phrasing for round-robin groups helper.
Avoid Brazilianisms (“em um”, “revezam”); suggested 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.",
📝 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": "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.", |
🤖 Prompt for AI Agents
In apps/web/public/static/locales/pt/common.json around line 352, the current
PT-BR phrasing "As pessoas em um grupo se revezam, uma pessoa de cada grupo
aparecerá no evento." should be adapted to PT-PT; replace the value with a PT-PT
phrasing that avoids Brazilianisms — e.g. "As pessoas num grupo revezam‑se; uma
pessoa de cada grupo aparecerá no evento." — ensuring punctuation and
hyphenation follow project i18n conventions.
"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": "Просмотр ролей", | ||
"pbac_desc_update_roles": "Обновление ролей", | ||
"pbac_desc_delete_roles": "Удаление ролей", | ||
"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_create_event_types": "Создание типов событий", | ||
"pbac_desc_view_event_types": "Просмотр типов событий", | ||
"pbac_desc_update_event_types": "Обновление типов событий", | ||
"pbac_desc_delete_event_types": "Удаление типов событий", | ||
"pbac_desc_manage_event_types": "Все действия с типами событий", | ||
"pbac_desc_manage_event_types": "Все действия с типами событий в командах организации", | ||
"pbac_desc_create_teams": "Создание команд", |
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 wording: adjust organization vs organization‑teams
Per scope updates:
- manage_roles → organization scope
- manage_bookings → organization scope
- manage_event_types → organization teams (current text OK)
Apply this diff:
- "pbac_desc_manage_roles": "Все действия с ролями в командах организации",
+ "pbac_desc_manage_roles": "Все действия с ролями в организации",
@@
- "pbac_desc_manage_bookings": "Все действия с бронированиями в командах организации",
+ "pbac_desc_manage_bookings": "Все действия с бронированиями в организации",
Also applies to: 3356-3357
🤖 Prompt for AI Agents
In apps/web/public/static/locales/ru/common.json around lines 3315-3334 (and
also at 3356-3357), update the PBAC scope Russian wording: change the value for
pbac_desc_manage_roles from "Все действия с ролями в командах организации" to
wording that reflects organization scope (e.g., "Все действия с ролями в
организации"), and change the value for pbac_desc_manage_bookings (at the other
mentioned lines) from a teams-scoped phrase to an organization-scoped phrase
(e.g., replace "в командах организации" with "в организации"); keep
pbac_desc_manage_event_types unchanged. Ensure both keys are updated
consistently where they appear.
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": "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
Renamed RR key: verify repo-wide consistency
Good rename to singular host. Please confirm the old key is fully removed and this new key exists across all locales to avoid runtime fallbacks.
Run:
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
base="apps/web/public/static/locales"
echo "Old key occurrences (should be none):"
rg -n --fixed-strings 'round_robin_hosts_unavailable_for_booking' "$base" || true
echo
echo "Check new key in all locales:"
missing=0
fd -H --glob 'common.json' "$base" | while read -r f; do
if ! jq -e 'has("round_robin_host_unavailable_for_booking")' "$f" >/dev/null; then
echo "✗ Missing in: $f"
missing=1
fi
done
[ $missing -eq 0 ] && echo "✓ Present in all locales"
Length of output: 6589
Add missing translation for the renamed key
The old key round_robin_hosts_unavailable_for_booking
has been fully removed, but the new key isn’t present in several locale files. Please add "round_robin_host_unavailable_for_booking"
with the appropriate translation to 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, the new key
"round_robin_host_unavailable_for_booking" exists but several locale files are
missing this renamed key; add the key "round_robin_host_unavailable_for_booking"
with the correct translated string to each of 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, and
apps/web/public/static/locales/th/common.json exactly mirroring the key and
providing the appropriate locale translation (ensure JSON stays valid, commas
and quoting are correct).
@@ -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
Ensure “failed_bookings” exists across locales
Great addition. Please verify all locales define this key to prevent fallback-to-English.
Run:
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
base="apps/web/public/static/locales"
missing=0
fd -H --glob 'common.json' "$base" | while read -r f; 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: 5479
Add missing “failed_bookings” entries and correct verification script
Our pipeline-based check ran in a subshell, so the outer missing
flag never updated—giving a false “✓” even though several locales lack the key. The following common.json
files do not define "failed_bookings"
and need translations:
• 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 proper localized strings for each, then update your verification script to avoid the subshell trap. For example:
files=( $(fd -H --glob 'common.json' "$base") )
missing=0
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"
🤖 Prompt for AI Agents
In apps/web/public/static/locales/da/common.json around line 3416, the repo
added the "failed_bookings" key for Danish but several locale files are missing
this key; add a "failed_bookings" entry with the correct localized string to
each of these 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; then update the verification
script to avoid running the check in a subshell so the outer `missing` flag is
updated—enumerate common.json files into an array, loop over them, test each
with jq for the "failed_bookings" key, set missing=1 inside the loop when
absent, and only print the success check after the loop if missing is still 0.
@@ -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.
@@ -3343,6 +3363,7 @@ | |||
"use_booker_timezone_info": "Pas het geselecteerde beperkingsschema toe in de tijdzone van de boeker", | |||
"load_balancing_warning": "Dit zal Load Balancing uitschakelen op al je round robin evenementtypes", | |||
"rr_load_balancing_disabled": "Load Balancing is alleen beschikbaar wanneer de tijdstempelbasis is ingesteld op Boekingsaanmaaktijd", | |||
"rr_load_balancing_disabled_with_groups": "Load balancing is niet beschikbaar met round robin groepen", |
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
Hyphenate “round‑robin‑groepen”
Consistent compound in NL.
- "rr_load_balancing_disabled_with_groups": "Load balancing is niet beschikbaar met round robin groepen",
+ "rr_load_balancing_disabled_with_groups": "Load balancing is niet beschikbaar met round-robin-groepen",
📝 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.
"rr_load_balancing_disabled_with_groups": "Load balancing is niet beschikbaar met round robin groepen", | |
"rr_load_balancing_disabled_with_groups": "Load balancing is niet beschikbaar met round-robin-groepen", |
🤖 Prompt for AI Agents
In apps/web/public/static/locales/nl/common.json around line 3366, the Dutch
translation uses "round robin groepen" and needs to be changed to the hyphenated
compound "round‑robin‑groepen"; update the value for the key
"rr_load_balancing_disabled_with_groups" to use the hyphenated form (keeping
surrounding punctuation and JSON formatting intact).
"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.
"pbac_desc_view_roles": "Vis roller", | ||
"pbac_desc_update_roles": "Oppdater roller", | ||
"pbac_desc_delete_roles": "Slett roller", | ||
"pbac_desc_manage_roles": "Alle handlinger for roller", | ||
"pbac_desc_manage_roles": "Alle handlinger på roller på tvers av organisasjonsteam", | ||
"pbac_desc_create_workflows": "Opprett og sett opp nye arbeidsflyter", |
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 PBAC phrasing: “organisasjonens team” and “hendelsestyper”.
- Prefer “på tvers av organisasjonens team” over “organisasjonsteam”.
- Use “hendelsestyper” consistently (the file predominantly uses this term).
- "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
🤖 Prompt for AI Agents
In apps/web/public/static/locales/no/common.json around lines 3324, 3333, 3342
and 3356, standardize PBAC wording by replacing any occurrences of
"organisasjonsteam" with "på tvers av organisasjonens team" and ensure
"hendelsestyper" is used consistently (replace any alternate forms with
"hendelsestyper"); update the four lines accordingly so phrasing matches the
project's preferred Norwegian terminology.
"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.
Hey team,
Lingo.dev here with fresh translations!
In this update
Next Steps