Skip to content

Comments

feat: update translations via @LingoDotDev#24178

Merged
hbjORbj merged 1 commit intomainfrom
lingo.dev/main
Sep 30, 2025
Merged

feat: update translations via @LingoDotDev#24178
hbjORbj merged 1 commit intomainfrom
lingo.dev/main

Conversation

@calcom-bot
Copy link
Collaborator

Hey team,

Lingo.dev here with fresh translations!

In this update

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

Next Steps

  • Review the changes
  • Merge when ready

@vercel
Copy link

vercel bot commented Sep 30, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

2 Skipped Deployments
Project Deployment Preview Comments Updated (UTC)
cal Ignored Ignored Sep 30, 2025 1:35pm
cal-eu Ignored Ignored Sep 30, 2025 1:35pm

@CLAassistant
Copy link

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


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

@graphite-app graphite-app bot requested a review from a team September 30, 2025 13:11
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Sep 30, 2025

Walkthrough

This 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)
Check name Status Explanation
Title Check ✅ Passed The title clearly describes the primary change of updating translations via LingoDotDev, which matches the bulk of modifications that add new localization strings across numerous language files.
Description Check ✅ Passed The description outlines that missing translations were added and localization checks were performed, which directly corresponds to the translation updates present throughout the PR.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch lingo.dev/main

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🧪 Early access (Sonnet 4.5): enabled

We 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:

  • Public repositories are always opted into early access features.
  • You can enable or disable early access features from the CodeRabbit UI or by updating the CodeRabbit configuration file.

Comment @coderabbitai help to get the list of available commands and usage tips.

@graphite-app graphite-app bot requested a review from a team September 30, 2025 13:11
@keithwillcode keithwillcode added core area: core, team members only foundation labels Sep 30, 2025
@dosubot dosubot bot added the i18n area: i18n, translations label Sep 30, 2025
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 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 to Junte-se agora so 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.

📥 Commits

Reviewing files that changed from the base of the PR and between b2ade56 and b9eab3e.

⛔ 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 (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 successfully

The 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 good

The 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 well

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

Comment on lines +2155 to +2157
"accept_invite": "Acceptér invitation",
"join_now": "Deltag nu",
"successfully_joined": "Deltog med succes",
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

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.

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

Comment on lines +2155 to +2157
"accept_invite": "Uitnodiging accepteren",
"join_now": "Nu deelnemen",
"successfully_joined": "Succesvol deelgenomen",
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

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

Comment on lines +2155 to +2157
"accept_invite": "Aksepter invitasjon",
"join_now": "Bli med nå",
"successfully_joined": "Vellykket tilslutning",
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

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.

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

Comment on lines +2155 to +2157
"accept_invite": "Принять приглашение",
"join_now": "Присоединиться сейчас",
"successfully_joined": "Успешно присоединились",
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

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.

Comment on lines +2155 to +2157
"accept_invite": "Prijať pozvánku",
"join_now": "Pripojiť sa teraz",
"successfully_joined": "Úspešne pripojené",
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

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.

Comment on lines +2155 to +2157
"accept_invite": "Acceptera inbjudan",
"join_now": "Gå med nu",
"successfully_joined": "Gick med framgångsrikt",
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

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.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 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: Adjust successfully_joined phrasing 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.

📥 Commits

Reviewing files that changed from the base of the PR and between b9eab3e and 6fe5af5.

⛔ 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 (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 phrasing

The 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 well

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

Comment on lines +2155 to +2157
"accept_invite": "Meghívó elfogadása",
"join_now": "Csatlakozás most",
"successfully_joined": "Sikeres csatlakozás",
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

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.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 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 merge

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

📥 Commits

Reviewing files that changed from the base of the PR and between 6fe5af5 and 44f7e1c.

⛔ 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 (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 successfully

The 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_invite is referenced in packages/emails/src/templates/TeamInviteEmail.tsx (line 64), whereas accept_invitation has 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 both accept_invite (new) and accept_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 good

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

Comment on lines +2155 to +2157
"accept_invite": "Прийняти запрошення",
"join_now": "Приєднатися зараз",
"successfully_joined": "Успішно приєднано",
Copy link
Contributor

Choose a reason for hiding this comment

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

🛠️ 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
done

Length 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 | sort

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

@hbjORbj hbjORbj enabled auto-merge (squash) September 30, 2025 13:49
@hbjORbj hbjORbj merged commit 094595c into main Sep 30, 2025
31 of 33 checks passed
@hbjORbj hbjORbj deleted the lingo.dev/main branch September 30, 2025 13:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants