Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
|
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. |
WalkthroughThis change adds three new translation keys—accept_invite, join_now, and successfully_joined—to multiple locale files under apps/web/public/static/locales (ar, az, bg, bn, ca, cs, da, de, el, es, es-419, et, eu, fi, fr, he, hu, it, ja, km, ko, nl, no, pl, pt, pt-BR, ro, ru, sk-SK, sr, sv, tr, uk, vi, zh-CN, zh-TW). The additions are placed alongside existing email_user_cta-related strings. No existing keys are removed or altered. There are no code, control-flow, or error-handling changes—only localization data updates. Possibly related PRs
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ 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. 🧪 Early access (Sonnet 4.5): enabledWe are currently testing the Sonnet 4.5 model, which is expected to improve code review quality. However, this model may lead to increased noise levels in the review comments. Please disable the early access features if the noise level causes any inconvenience. Note:
Comment |
b8431a5 to
b9eab3e
Compare
There was a problem hiding this comment.
Actionable comments posted: 7
🧹 Nitpick comments (3)
apps/web/public/static/locales/hu/common.json (1)
2157-2157: Favor a natural 2nd-person phrasing for the success toast.
"Sikeres csatlakozás"reads like a noun phrase, while the English source (“Successfully joined”) is a toast-style message to the user. Consider switching to a second-person construction such as"Sikeresen csatlakoztál"so the UI feels native.apps/web/public/static/locales/pt/common.json (1)
2155-2157: Switch the CTA to imperative Portuguese.
"join_now": "Juntar-se agora"is in the infinitive, while other PT CTAs (e.g.,"join_team": "Junte-se à equipa","enter_meeting": "Entrar na reunião") use an imperative tone. Please update it toJunte-se agoraso the button copy stays consistent.- "join_now": "Juntar-se agora", + "join_now": "Junte-se agora",apps/web/public/static/locales/pt-BR/common.json (1)
2155-2157: Refine “successfully_joined” phrasing for natural PT-BR tone
"Participação bem-sucedida"reads a bit literal for a status/toast. Consider something like"Ingresso concluído com sucesso"or"Você ingressou com sucesso"to better match Cal.com’s conversational voice.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
⛔ Files ignored due to path filters (1)
i18n.lockis excluded by!**/*.lock
📒 Files selected for processing (36)
apps/web/public/static/locales/ar/common.json(1 hunks)apps/web/public/static/locales/az/common.json(1 hunks)apps/web/public/static/locales/bg/common.json(1 hunks)apps/web/public/static/locales/bn/common.json(1 hunks)apps/web/public/static/locales/ca/common.json(1 hunks)apps/web/public/static/locales/cs/common.json(1 hunks)apps/web/public/static/locales/da/common.json(1 hunks)apps/web/public/static/locales/de/common.json(1 hunks)apps/web/public/static/locales/el/common.json(1 hunks)apps/web/public/static/locales/es-419/common.json(1 hunks)apps/web/public/static/locales/es/common.json(1 hunks)apps/web/public/static/locales/et/common.json(1 hunks)apps/web/public/static/locales/eu/common.json(1 hunks)apps/web/public/static/locales/fi/common.json(1 hunks)apps/web/public/static/locales/fr/common.json(1 hunks)apps/web/public/static/locales/he/common.json(1 hunks)apps/web/public/static/locales/hu/common.json(1 hunks)apps/web/public/static/locales/it/common.json(1 hunks)apps/web/public/static/locales/ja/common.json(1 hunks)apps/web/public/static/locales/km/common.json(1 hunks)apps/web/public/static/locales/ko/common.json(1 hunks)apps/web/public/static/locales/nl/common.json(1 hunks)apps/web/public/static/locales/no/common.json(1 hunks)apps/web/public/static/locales/pl/common.json(1 hunks)apps/web/public/static/locales/pt-BR/common.json(1 hunks)apps/web/public/static/locales/pt/common.json(1 hunks)apps/web/public/static/locales/ro/common.json(1 hunks)apps/web/public/static/locales/ru/common.json(1 hunks)apps/web/public/static/locales/sk-SK/common.json(1 hunks)apps/web/public/static/locales/sr/common.json(1 hunks)apps/web/public/static/locales/sv/common.json(1 hunks)apps/web/public/static/locales/tr/common.json(1 hunks)apps/web/public/static/locales/uk/common.json(1 hunks)apps/web/public/static/locales/vi/common.json(1 hunks)apps/web/public/static/locales/zh-CN/common.json(1 hunks)apps/web/public/static/locales/zh-TW/common.json(1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📓 Common learnings
Learnt from: bandhan-majumder
PR: calcom/cal.com#23192
File: packages/features/insights/components/booking/LeastCompletedBookings.tsx:31-31
Timestamp: 2025-08-21T05:55:35.187Z
Learning: Cal.com uses an automated i18n system with lingo.dev that automatically propagates new translation keys from en/common.json to all other locale files and creates PRs with proper translations. The system includes a check-missing-translations.ts script that adds English placeholders for missing keys, and a GitHub workflow that triggers lingo.dev automation to translate and create PRs.
🔇 Additional comments (16)
apps/web/public/static/locales/ja/common.json (1)
2155-2157: LGTM! Translation additions look good.The three new Japanese translation keys have been added appropriately:
accept_invite: "招待を受け入れる" (Accept invitation)join_now: "今すぐ参加" (Join now)successfully_joined: "参加に成功しました" (Successfully joined)The translations are accurate, well-placed near related invitation strings, and follow the existing JSON structure. Based on learnings, these were automatically generated and propagated by the lingo.dev i18n system.
apps/web/public/static/locales/fr/common.json (1)
2155-2157: Translations look good.The phrasing for the new invitation/join strings is idiomatic and matches the tone of the adjacent French entries.
apps/web/public/static/locales/zh-CN/common.json (1)
2155-2157: LGTM! 新增的翻译键值对看起来合适。这三个新增的翻译键与邀请/加入流程相关:
accept_invite: "接受邀请"join_now: "立即加入"successfully_joined: "成功加入"翻译准确、简洁,符合中文表达习惯,与文件中现有的翻译风格保持一致。根据学习记录,这些翻译是通过 lingo.dev 自动化系统从英文版本传播而来的。
Based on learnings
apps/web/public/static/locales/ko/common.json (1)
2155-2157: LGTM! Korean translations added correctly.The three new translation keys have been properly added to the Korean locale file:
accept_invite: "초대 수락" (Accept invitation)join_now: "지금 참여하기" (Join now)successfully_joined: "성공적으로 참여했습니다" (Successfully joined)The translations are:
- Syntactically correct with proper JSON formatting
- Semantically appropriate for invitation/joining functionality
- Consistently placed alongside related keys
Based on learnings: This appears to be part of Cal.com's automated i18n system via lingo.dev, which propagates translation keys across all locale files.
apps/web/public/static/locales/he/common.json (1)
2155-2157: LGTM! Translation additions look good.The three new translation keys (
accept_invite,join_now,successfully_joined) have been properly added with appropriate Hebrew translations. The JSON structure is valid and consistent with the existing format.Based on learnings: These translations appear to be part of Cal.com's automated i18n system via lingo.dev, which automatically propagates translation keys across locale files.
apps/web/public/static/locales/bn/common.json (1)
2155-2157: LGTM! New translation keys added successfully.The three new Bengali translation keys (
accept_invite,join_now,successfully_joined) have been added correctly for invitation and joining functionality. The translations are contextually appropriate and properly formatted. Based on learnings, this is part of Cal.com's automated i18n system with lingo.dev.apps/web/public/static/locales/tr/common.json (1)
2155-2157: Translations align with existing phrasing.Yeni anahtarlar mevcut davet çağrılarıyla tutarlı; Türkçe ton ve üslup korunmuş.
apps/web/public/static/locales/el/common.json (1)
2155-2157: Translations read naturally in Greek.The added strings stay consistent with our existing tone and casing, so nothing further needed here.
apps/web/public/static/locales/ar/common.json (1)
2155-2157: LGTM! Translation keys added successfullyThe three new translation keys (
accept_invite,join_now,successfully_joined) have been properly added to the Arabic locale file. The JSON structure is valid, and based on the learnings, these translations were automatically generated and propagated by the lingo.dev system used by Cal.com for i18n management.Based on learnings
apps/web/public/static/locales/zh-TW/common.json (1)
2155-2157: 翻譯新增正確無誤這三個新增的翻譯鍵值(accept_invite、join_now、successfully_joined)的繁體中文翻譯準確且適當。它們的位置也很合理,放置在其他邀請相關的翻譯鍵值附近。
apps/web/public/static/locales/es-419/common.json (1)
2155-2157: Translations look goodThe added strings read naturally for es-419 and match the surrounding invitation copy. No changes needed.
apps/web/public/static/locales/eu/common.json (1)
2155-2157: Translations look solid.The added Basque strings read naturally and stay consistent with the surrounding terminology for invite flows.
apps/web/public/static/locales/es/common.json (1)
2155-2157: Translations look solid.The added strings read naturally in Spanish and match the surrounding terminology. Sin observaciones.
apps/web/public/static/locales/az/common.json (1)
2155-2157: New CTA strings look good.The additions follow existing tone and match the surrounding invite CTA phrasing. No issues spotted.
apps/web/public/static/locales/bg/common.json (1)
2155-2157: New CTA strings read wellThe added Bulgarian translations for “accept_invite”, “join_now”, and “successfully_joined” sound natural and align with the surrounding invitation copy. 👍
apps/web/public/static/locales/et/common.json (1)
2155-2157: Translations look solid.The added Estonian strings read naturally and align with the nearby invitation context. Nicely done.
| "accept_invite": "Acceptér invitation", | ||
| "join_now": "Deltag nu", | ||
| "successfully_joined": "Deltog med succes", |
There was a problem hiding this comment.
Tweak “successfully_joined” phrasing
“Deltog med succes” reads like someone successfully attended an event. For a join/acceptance confirmation, Danish usually uses “Tilmeldingen lykkedes” or similar wording. Please adjust the translation accordingly.
Apply this diff:
- "successfully_joined": "Deltog med succes",
+ "successfully_joined": "Tilmeldingen lykkedes",📝 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.
| "accept_invite": "Acceptér invitation", | |
| "join_now": "Deltag nu", | |
| "successfully_joined": "Deltog med succes", | |
| "accept_invite": "Acceptér invitation", | |
| "join_now": "Deltag nu", | |
| "successfully_joined": "Tilmeldingen lykkedes", |
🤖 Prompt for AI Agents
In apps/web/public/static/locales/da/common.json around lines 2155 to 2157, the
translation for "successfully_joined" reads "Deltog med succes" which implies
attendance; replace its value with a confirmation phrasing appropriate for
join/accept actions such as "Tilmeldingen lykkedes" (i.e., change the string
value to "Tilmeldingen lykkedes").
| "accept_invite": "Uitnodiging accepteren", | ||
| "join_now": "Nu deelnemen", | ||
| "successfully_joined": "Succesvol deelgenomen", |
There was a problem hiding this comment.
Tighten the “successfully joined” phrasing
"Succesvol deelgenomen" reads as “participated successfully,” which is off in this join/invite context. Please switch it to something like "Succesvol lid geworden" so it communicates “successfully joined.”
🤖 Prompt for AI Agents
apps/web/public/static/locales/nl/common.json lines 2155-2157: the Dutch
translation for "successfully_joined" is currently "Succesvol deelgenomen",
which implies "participated" rather than "joined"; change the value for the
"successfully_joined" key to "Succesvol lid geworden" (ensuring proper JSON
string quoting and trailing comma placement remains valid).
| "accept_invite": "Aksepter invitasjon", | ||
| "join_now": "Bli med nå", | ||
| "successfully_joined": "Vellykket tilslutning", |
There was a problem hiding this comment.
Refine “successfully_joined” translation
“Vellykket tilslutning” isn’t idiomatic Norwegian for a success message. Something like “Du har blitt med!” or “Du ble med!” reads far more natural in UI copy.
I recommend updating the string, e.g.:
- "successfully_joined": "Vellykket tilslutning",
+ "successfully_joined": "Du har blitt med!",📝 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.
| "accept_invite": "Aksepter invitasjon", | |
| "join_now": "Bli med nå", | |
| "successfully_joined": "Vellykket tilslutning", | |
| "accept_invite": "Aksepter invitasjon", | |
| "join_now": "Bli med nå", | |
| "successfully_joined": "Du har blitt med!", |
🤖 Prompt for AI Agents
In apps/web/public/static/locales/no/common.json around lines 2155 to 2157, the
value for "successfully_joined" is not idiomatic Norwegian; replace "Vellykket
tilslutning" with a natural UI string such as "Du har blitt med!" (or "Du ble
med!" if preferred). Update only the value for the "successfully_joined" key,
preserving JSON syntax (quotes and the trailing comma as appropriate) and ensure
the file remains valid UTF-8 JSON.
| "accept_invite": "Принять приглашение", | ||
| "join_now": "Присоединиться сейчас", | ||
| "successfully_joined": "Успешно присоединились", |
There was a problem hiding this comment.
Polish the RU toast copy.
"Успешно присоединились" sounds unfinished in Russian UI; other strings in this file address the user directly (“Вы успешно …”). Please update to something like “Вы успешно присоединились”, which matches the existing tone and reads naturally.
🤖 Prompt for AI Agents
In apps/web/public/static/locales/ru/common.json around lines 2155 to 2157, the
"successfully_joined" value reads "Успешно присоединились" which is impersonal
and sounds unfinished; update the string to address the user directly by
replacing it with "Вы успешно присоединились" to match the tone of other
messages in the file.
| "accept_invite": "Prijať pozvánku", | ||
| "join_now": "Pripojiť sa teraz", | ||
| "successfully_joined": "Úspešne pripojené", |
There was a problem hiding this comment.
Fix Slovak phrasing for “successfully_joined”.
"Úspešne pripojené" is grammatically incorrect in Slovak. Please update "successfully_joined" to a natural form like "Úspešne ste sa pripojili" to match native usage.
🤖 Prompt for AI Agents
In apps/web/public/static/locales/sk-SK/common.json around lines 2155 to 2157,
the Slovak value for "successfully_joined" is grammatically incorrect ("Úspešne
pripojené"); replace it with a natural phrasing like "Úspešne ste sa pripojili"
to match native usage and keep the key unchanged.
| "accept_invite": "Acceptera inbjudan", | ||
| "join_now": "Gå med nu", | ||
| "successfully_joined": "Gick med framgångsrikt", |
There was a problem hiding this comment.
Improve the Swedish phrasing for successfully_joined.
"Gick med framgångsrikt" is not idiomatic Swedish; it reads like a literal translation. Prefer something like "Du har gått med" or "Anslutningen lyckades" to match natural usage in UI strings.
🤖 Prompt for AI Agents
In apps/web/public/static/locales/sv/common.json around lines 2155 to 2157, the
Swedish value for "successfully_joined" is not idiomatic; replace the current
literal translation "Gick med framgångsrikt" with a natural UI string such as
"Du har gått med" (or alternatively "Anslutningen lyckades"), ensuring you only
change the value for the "successfully_joined" key and keep the JSON syntax
intact.
b9eab3e to
6fe5af5
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (3)
apps/web/public/static/locales/da/common.json (1)
2157-2157: Clarify “successfully_joined” translation“Deltog med succes” lyder som om man deltog i selve mødet. For en bekræftelse på, at registreringen/joining lykkedes, er “Tilmeldingen lykkedes” mere idiomatisk.
- "successfully_joined": "Deltog med succes", + "successfully_joined": "Tilmeldingen lykkedes",Based on learnings
apps/web/public/static/locales/sv/common.json (1)
2157-2157: Adjustsuccessfully_joinedphrasing for natural Swedish
"Gick med framgångsrikt"still reads like a literal translation and doesn’t match idiomatic UI tone. Please switch to a natural confirmation such as"Du har gått med", which aligns with prior feedback.- "successfully_joined": "Gick med framgångsrikt", + "successfully_joined": "Du har gått med",apps/web/public/static/locales/sk-SK/common.json (1)
2155-2157: Fix Slovak phrasing for “successfully_joined”.
"Úspešne pripojené"is grammatically off (passive neuter) and reads unnatural in Slovak. Please switch to a user-facing form like"Úspešne ste sa pripojili"so the CTA matches native usage.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
⛔ Files ignored due to path filters (1)
i18n.lockis excluded by!**/*.lock
📒 Files selected for processing (36)
apps/web/public/static/locales/ar/common.json(1 hunks)apps/web/public/static/locales/az/common.json(1 hunks)apps/web/public/static/locales/bg/common.json(1 hunks)apps/web/public/static/locales/bn/common.json(1 hunks)apps/web/public/static/locales/ca/common.json(1 hunks)apps/web/public/static/locales/cs/common.json(1 hunks)apps/web/public/static/locales/da/common.json(1 hunks)apps/web/public/static/locales/de/common.json(1 hunks)apps/web/public/static/locales/el/common.json(1 hunks)apps/web/public/static/locales/es-419/common.json(1 hunks)apps/web/public/static/locales/es/common.json(1 hunks)apps/web/public/static/locales/et/common.json(1 hunks)apps/web/public/static/locales/eu/common.json(1 hunks)apps/web/public/static/locales/fi/common.json(1 hunks)apps/web/public/static/locales/fr/common.json(1 hunks)apps/web/public/static/locales/he/common.json(1 hunks)apps/web/public/static/locales/hu/common.json(1 hunks)apps/web/public/static/locales/it/common.json(1 hunks)apps/web/public/static/locales/ja/common.json(1 hunks)apps/web/public/static/locales/km/common.json(1 hunks)apps/web/public/static/locales/ko/common.json(1 hunks)apps/web/public/static/locales/nl/common.json(1 hunks)apps/web/public/static/locales/no/common.json(1 hunks)apps/web/public/static/locales/pl/common.json(1 hunks)apps/web/public/static/locales/pt-BR/common.json(1 hunks)apps/web/public/static/locales/pt/common.json(1 hunks)apps/web/public/static/locales/ro/common.json(1 hunks)apps/web/public/static/locales/ru/common.json(1 hunks)apps/web/public/static/locales/sk-SK/common.json(1 hunks)apps/web/public/static/locales/sr/common.json(1 hunks)apps/web/public/static/locales/sv/common.json(1 hunks)apps/web/public/static/locales/tr/common.json(1 hunks)apps/web/public/static/locales/uk/common.json(1 hunks)apps/web/public/static/locales/vi/common.json(1 hunks)apps/web/public/static/locales/zh-CN/common.json(1 hunks)apps/web/public/static/locales/zh-TW/common.json(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (26)
- apps/web/public/static/locales/ru/common.json
- apps/web/public/static/locales/fi/common.json
- apps/web/public/static/locales/zh-TW/common.json
- apps/web/public/static/locales/ko/common.json
- apps/web/public/static/locales/vi/common.json
- apps/web/public/static/locales/he/common.json
- apps/web/public/static/locales/es/common.json
- apps/web/public/static/locales/eu/common.json
- apps/web/public/static/locales/ja/common.json
- apps/web/public/static/locales/nl/common.json
- apps/web/public/static/locales/pt-BR/common.json
- apps/web/public/static/locales/ro/common.json
- apps/web/public/static/locales/et/common.json
- apps/web/public/static/locales/uk/common.json
- apps/web/public/static/locales/ar/common.json
- apps/web/public/static/locales/bn/common.json
- apps/web/public/static/locales/de/common.json
- apps/web/public/static/locales/zh-CN/common.json
- apps/web/public/static/locales/ca/common.json
- apps/web/public/static/locales/pl/common.json
- apps/web/public/static/locales/cs/common.json
- apps/web/public/static/locales/es-419/common.json
- apps/web/public/static/locales/no/common.json
- apps/web/public/static/locales/el/common.json
- apps/web/public/static/locales/it/common.json
- apps/web/public/static/locales/bg/common.json
🧰 Additional context used
🧠 Learnings (1)
📓 Common learnings
Learnt from: bandhan-majumder
PR: calcom/cal.com#23192
File: packages/features/insights/components/booking/LeastCompletedBookings.tsx:31-31
Timestamp: 2025-08-21T05:55:35.187Z
Learning: Cal.com uses an automated i18n system with lingo.dev that automatically propagates new translation keys from en/common.json to all other locale files and creates PRs with proper translations. The system includes a check-missing-translations.ts script that adds English placeholders for missing keys, and a GitHub workflow that triggers lingo.dev automation to translate and create PRs.
🔇 Additional comments (4)
apps/web/public/static/locales/sr/common.json (1)
2155-2157: Translations look solid.New strings read naturally, match the surrounding voice, and stay consistent with existing invitations wording. Nicely done.
apps/web/public/static/locales/fr/common.json (1)
2154-2156: Nice consistency with existing phrasingThe added translations read naturally in French and stay consistent with the surrounding invitation-related strings. Merci !
apps/web/public/static/locales/tr/common.json (1)
2155-2157: Translations read wellYeni anahtarlar, mevcut "Daveti görüntüle" CTA'sıyla tutarlı bir üslup yakalıyor ve Türkçe çeviriler net. Güncelleme için teşekkürler.
apps/web/public/static/locales/az/common.json (1)
2155-2157: Translations look solid
The new keys use consistent imperative phrasing and match the surrounding style, so I don’t see any follow-up needed.
| "accept_invite": "Meghívó elfogadása", | ||
| "join_now": "Csatlakozás most", | ||
| "successfully_joined": "Sikeres csatlakozás", |
There was a problem hiding this comment.
Refine CTA and success copy to natural Hungarian.
The new strings read like noun phrases, but in Hungarian UI copy these should be imperative or full-sentence feedback. Please adjust to something like “Meghívás elfogadása”, “Csatlakozz most”, and “Sikeresen csatlakozott”, which mirrors existing tone elsewhere in this file.
🤖 Prompt for AI Agents
In apps/web/public/static/locales/hu/common.json around lines 2155 to 2157, the
three Hungarian strings are phrased as noun fragments; update them to
imperative/full-sentence UI tone by replacing "accept_invite" with "Meghívás
elfogadása", "join_now" with "Csatlakozz most", and "successfully_joined" with
"Sikeresen csatlakozott" so they match the existing tone used elsewhere in the
file.
6fe5af5 to
44f7e1c
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (3)
apps/web/public/static/locales/no/common.json (1)
2157-2157: Use an idiomatic success message for “successfully_joined”.“Vellykket tilslutning” reads unnatural. Prefer “Du har blitt med!” (or “Du ble med!”) for UI feedback.
Apply this diff:
- "successfully_joined": "Vellykket tilslutning", + "successfully_joined": "Du har blitt med!",apps/web/public/static/locales/hu/common.json (1)
2155-2157: Refine Hungarian CTA copy for natural tone and consistency.Proposed updates:
- "accept_invite": "Meghívó elfogadása", - "join_now": "Csatlakozás most", - "successfully_joined": "Sikeres csatlakozás", + "accept_invite": "Meghívás elfogadása", + "join_now": "Csatlakozz most", + "successfully_joined": "Sikeresen csatlakozott",Note: Consider aligning with the existing “accept_invitation” key usage elsewhere to avoid divergent phrasing. (Based on learnings)
apps/web/public/static/locales/uk/common.json (1)
2157-2157: Polish “successfully_joined” phrasing (UA)Prefer “Успішно приєдналися” for natural, user-facing tone.
- "successfully_joined": "Успішно приєднано", + "successfully_joined": "Успішно приєдналися",
🧹 Nitpick comments (3)
apps/web/public/static/locales/no/common.json (1)
2155-2156: Confirm intent of new keys vs existing “accept_invitation”.You now have both “accept_invitation” (line 10) and “accept_invite” with the same Norwegian copy. If these serve different contexts (e.g., email CTA vs in‑app button), all good; otherwise consider reusing one key to avoid drift.
apps/web/public/static/locales/es-419/common.json (1)
2155-2158: Avoid key duplication; minor phrasing consistency tweak
- accept_invite appears to duplicate existing accept_invitation. Confirm both are required by the UI; if not, prefer reusing one key to avoid divergence across locales.
- Suggest aligning “successfully_joined” with common phrasing used elsewhere in this file (“con éxito”).
Proposed tweak:
- "successfully_joined": "Te has unido exitosamente", + "successfully_joined": "Te has unido con éxito",(Based on learnings)
apps/web/public/static/locales/uk/common.json (1)
2155-2157: Meta: CLA gate before mergeCLA status shows not_signed for this PR. Please get the CLA green before merging to unblock CI/policies.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
⛔ Files ignored due to path filters (1)
i18n.lockis excluded by!**/*.lock
📒 Files selected for processing (36)
apps/web/public/static/locales/ar/common.json(1 hunks)apps/web/public/static/locales/az/common.json(1 hunks)apps/web/public/static/locales/bg/common.json(1 hunks)apps/web/public/static/locales/bn/common.json(1 hunks)apps/web/public/static/locales/ca/common.json(1 hunks)apps/web/public/static/locales/cs/common.json(1 hunks)apps/web/public/static/locales/da/common.json(1 hunks)apps/web/public/static/locales/de/common.json(1 hunks)apps/web/public/static/locales/el/common.json(1 hunks)apps/web/public/static/locales/es-419/common.json(1 hunks)apps/web/public/static/locales/es/common.json(1 hunks)apps/web/public/static/locales/et/common.json(1 hunks)apps/web/public/static/locales/eu/common.json(1 hunks)apps/web/public/static/locales/fi/common.json(1 hunks)apps/web/public/static/locales/fr/common.json(1 hunks)apps/web/public/static/locales/he/common.json(1 hunks)apps/web/public/static/locales/hu/common.json(1 hunks)apps/web/public/static/locales/it/common.json(1 hunks)apps/web/public/static/locales/ja/common.json(1 hunks)apps/web/public/static/locales/km/common.json(1 hunks)apps/web/public/static/locales/ko/common.json(1 hunks)apps/web/public/static/locales/nl/common.json(1 hunks)apps/web/public/static/locales/no/common.json(1 hunks)apps/web/public/static/locales/pl/common.json(1 hunks)apps/web/public/static/locales/pt-BR/common.json(1 hunks)apps/web/public/static/locales/pt/common.json(1 hunks)apps/web/public/static/locales/ro/common.json(1 hunks)apps/web/public/static/locales/ru/common.json(1 hunks)apps/web/public/static/locales/sk-SK/common.json(1 hunks)apps/web/public/static/locales/sr/common.json(1 hunks)apps/web/public/static/locales/sv/common.json(1 hunks)apps/web/public/static/locales/tr/common.json(1 hunks)apps/web/public/static/locales/uk/common.json(1 hunks)apps/web/public/static/locales/vi/common.json(1 hunks)apps/web/public/static/locales/zh-CN/common.json(1 hunks)apps/web/public/static/locales/zh-TW/common.json(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (27)
- apps/web/public/static/locales/sv/common.json
- apps/web/public/static/locales/da/common.json
- apps/web/public/static/locales/zh-CN/common.json
- apps/web/public/static/locales/zh-TW/common.json
- apps/web/public/static/locales/vi/common.json
- apps/web/public/static/locales/bg/common.json
- apps/web/public/static/locales/ca/common.json
- apps/web/public/static/locales/es/common.json
- apps/web/public/static/locales/sk-SK/common.json
- apps/web/public/static/locales/ko/common.json
- apps/web/public/static/locales/et/common.json
- apps/web/public/static/locales/ru/common.json
- apps/web/public/static/locales/ja/common.json
- apps/web/public/static/locales/pt-BR/common.json
- apps/web/public/static/locales/it/common.json
- apps/web/public/static/locales/eu/common.json
- apps/web/public/static/locales/fr/common.json
- apps/web/public/static/locales/cs/common.json
- apps/web/public/static/locales/tr/common.json
- apps/web/public/static/locales/de/common.json
- apps/web/public/static/locales/az/common.json
- apps/web/public/static/locales/nl/common.json
- apps/web/public/static/locales/he/common.json
- apps/web/public/static/locales/fi/common.json
- apps/web/public/static/locales/sr/common.json
- apps/web/public/static/locales/bn/common.json
- apps/web/public/static/locales/el/common.json
🧰 Additional context used
🧠 Learnings (1)
📓 Common learnings
Learnt from: bandhan-majumder
PR: calcom/cal.com#23192
File: packages/features/insights/components/booking/LeastCompletedBookings.tsx:31-31
Timestamp: 2025-08-21T05:55:35.187Z
Learning: Cal.com uses an automated i18n system with lingo.dev that automatically propagates new translation keys from en/common.json to all other locale files and creates PRs with proper translations. The system includes a check-missing-translations.ts script that adds English placeholders for missing keys, and a GitHub workflow that triggers lingo.dev automation to translate and create PRs.
🔇 Additional comments (6)
apps/web/public/static/locales/ro/common.json (1)
2155-2157: LGTM, but verify key usage vs. existing “accept_invitation”.
- Translations read well and match the surrounding formal register.
- There’s an existing key “accept_invitation” (Line 10) with identical meaning. Please confirm “accept_invite” is a distinct call‑site to avoid duplicate/unused keys.
- Also confirm “join_now” context (team/org invite vs. meeting join) to ensure the Romanian imperative is appropriate for the intended action.
apps/web/public/static/locales/ar/common.json (1)
2155-2157: LGTM! Translation keys added successfullyThe three new translation keys (
accept_invite,join_now,successfully_joined) have been properly added to the Arabic locale file. The JSON syntax is correct, the placement is appropriate among other invitation-related strings, and the keys follow the established naming convention.Based on learnings: Cal.com uses an automated i18n system with lingo.dev that handles translations across all locale files.
apps/web/public/static/locales/pt/common.json (1)
2155-2157: accept_invite is in use and distinct from accept_invitation
All locales include the new keys.accept_inviteis referenced in packages/emails/src/templates/TeamInviteEmail.tsx (line 64), whereasaccept_invitationhas no code usage—no duplication concerns.apps/web/public/static/locales/km/common.json (1)
2155-2157: LGTM; translations valid. JSON syntax is correct and Khmer strings read naturally. Note that bothaccept_invite(new) andaccept_invitation(existing) share the same phrase—if they target the same UI flow, consider consolidating to avoid drift. No code references were found for any of these keys; please verify that they’re actually used (and remove or consolidate any orphaned entries).apps/web/public/static/locales/pl/common.json (2)
2155-2157: Translations look goodPolish strings are correct and consistent with existing tone (imperatives, neutral past participle). No diacritics or ICU variables to validate.
2155-2157: Consolidate duplicate translation keys accept_invitation and accept_invite
Both keys map to identical strings across every locale. Determine which key the code actually uses, update all references to the chosen key, and remove the other.
| "accept_invite": "Прийняти запрошення", | ||
| "join_now": "Приєднатися зараз", | ||
| "successfully_joined": "Успішно приєднано", |
There was a problem hiding this comment.
🛠️ Refactor suggestion | 🟠 Major
🧩 Analysis chain
Verify no duplicate keys and confirm key intent
- Ensure these keys aren’t defined elsewhere in this file (JSON duplicate keys would silently override).
- Confirm product intent for both accept_invitation (existing) vs accept_invite (new). If both are needed, keep; otherwise, dedupe or alias to avoid drift.
Based on learnings
Run from repo root:
🏁 Script executed:
#!/bin/bash
set -euo pipefail
file="apps/web/public/static/locales/uk/common.json"
echo "Checking duplicates in $file"
for k in accept_invite join_now successfully_joined; do
cnt=$(rg -nP "^\s*\"$k\"\s*:" "$file" | wc -l | tr -d ' ')
echo "$k occurrences: $cnt"
done
echo -e "\nOccurrences across all locales:"
for k in accept_invite join_now successfully_joined; do
echo "— $k"
rg -nP "^\s*\"$k\"\s*:" apps/web/public/static/locales | cut -d: -f1 | sort | uniq -c
doneLength of output: 6280
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "Searching for accept_invitation occurrences across all locale files"
rg -nP '"accept_invitation"\s*:' -n apps/web/public/static/locales | sortLength of output: 3938
Unify invitation acceptance key
accept_invite duplicates the existing accept_invitation key (same translation present in every locale). Remove accept_invite and reference common.accept_invitation (or alias it) to avoid drift.
🤖 Prompt for AI Agents
In apps/web/public/static/locales/uk/common.json around lines 2155–2157, the
"accept_invite" entry duplicates the existing "accept_invitation" key; remove
the "accept_invite" key from this file and update any code/templates that
reference "accept_invite" to use "common.accept_invitation" instead (or add a
single canonical alias in your i18n lookup layer if you need backward
compatibility), then run a quick grep across the repo to replace remaining
usages and run the localization lint/tests to verify no missing keys.
Hey team,
Lingo.dev here with fresh translations!
In this update
Next Steps