Skip to content

Comments

feat: update translations via @LingoDotDev#22426

Merged
anikdhabal merged 1 commit intomainfrom
lingo.dev/main
Jul 24, 2025
Merged

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

Conversation

@calcom-bot
Copy link
Collaborator

@calcom-bot calcom-bot commented Jul 11, 2025

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

Summary by cubic

Updated translations for multiple languages to add missing keys, improve accuracy, and ensure consistent brand voice across the app.

  • New Features
    • Added new translation keys for meeting session details and video options in supported languages.
    • Enhanced existing translations for clarity and context.

@vercel
Copy link

vercel bot commented Jul 11, 2025

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

2 Skipped Deployments
Name Status Preview Comments Updated (UTC)
cal ⬜️ Ignored (Inspect) Visit Preview Jul 24, 2025 7:31pm
cal-eu ⬜️ Ignored (Inspect) Visit Preview Jul 24, 2025 7:31pm

@CLAassistant
Copy link

CLAassistant commented Jul 11, 2025

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 review from a team July 11, 2025 16:56
@keithwillcode keithwillcode added core area: core, team members only foundation labels Jul 11, 2025
@dosubot dosubot bot added the i18n area: i18n, translations label Jul 11, 2025
@delve-auditor
Copy link

delve-auditor bot commented Jul 11, 2025

No security or compliance issues detected. Reviewed everything up to 8000345.

Security Overview
  • 🔎 Scanned files: 37 changed file(s)
Detected Code Changes
Change Type Relevant files
Enhancement ► common.json
    Add new translation keys for host availability messages

Reply to this PR with @delve-auditor followed by a description of what change you want and we'll auto-submit a change to this PR to implement it.

Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

cubic reviewed 31 files and found no issues. Review PR in cubic.dev.

Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

cubic reviewed 31 files and found no issues. Review PR in cubic.dev.

@graphite-app
Copy link

graphite-app bot commented Jul 11, 2025

Graphite Automations

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

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

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

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

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

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

@github-actions github-actions bot force-pushed the lingo.dev/main branch 3 times, most recently from 000e1f4 to 57f3bab Compare July 11, 2025 17:19
@anikdhabal anikdhabal enabled auto-merge (squash) July 11, 2025 17:28
anikdhabal
anikdhabal previously approved these changes Jul 11, 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: 0

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

80-88: cancelled_by is missing the dynamic subject

The English key usually reads “Cancelled by {{name}}”.
Here the value is just “בוטל על ידי” – without {{name}}.
This will surface to users literally and drop the person’s name.

-"cancelled_by": "בוטל על ידי",
+"cancelled_by": "בוטל על-ידי {{name}}",
🧹 Nitpick comments (4)
apps/web/public/static/locales/he/common.json (4)

687-687: Minor wording nit

"view_role": "צפה בתפקיד" – consider the infinitive form (“לצפות בתפקיד”) to be consistent with existing keys such as "view_notifications": "צפייה בהתראות".


2732-2734: Rating strings – keep adjective gender neutral

Hebrew adjectives currently masculine (“הכי גבוה”, “הכי נמוך”).
If UI can appear for female-gendered hosts you may want neutral phrasing, e.g.
“בדירוג הגבוה ביותר” / “בדירוג הנמוך ביותר”.


3327-3339: Cache-management strings – punctuation

Hebrew full-stop after sentences is optional in UI; here a mix exists.
For the new cache strings keep it consistent with surrounding keys (most lines have no trailing period).

No functional impact – style only.


3382-3390: “Delete cache” confirmation – imperative gender

"yes_delete_cache": "כן, מחק מטמון" – consider “כן, מחק את המטמון” for clarity.
Same for "delete_cached_data" → “מחק את הנתונים במטמון”.

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between e4cc209 and ffa785c.

⛔ 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 (11 hunks)
  • apps/web/public/static/locales/az/common.json (11 hunks)
  • apps/web/public/static/locales/bg/common.json (10 hunks)
  • apps/web/public/static/locales/bn/common.json (11 hunks)
  • apps/web/public/static/locales/ca/common.json (11 hunks)
  • apps/web/public/static/locales/cs/common.json (11 hunks)
  • apps/web/public/static/locales/da/common.json (11 hunks)
  • apps/web/public/static/locales/de/common.json (11 hunks)
  • apps/web/public/static/locales/el/common.json (11 hunks)
  • apps/web/public/static/locales/es-419/common.json (11 hunks)
  • apps/web/public/static/locales/es/common.json (11 hunks)
  • apps/web/public/static/locales/et/common.json (11 hunks)
  • apps/web/public/static/locales/eu/common.json (11 hunks)
  • apps/web/public/static/locales/fi/common.json (11 hunks)
  • apps/web/public/static/locales/fr/common.json (11 hunks)
  • apps/web/public/static/locales/he/common.json (11 hunks)
  • apps/web/public/static/locales/hu/common.json (11 hunks)
  • apps/web/public/static/locales/it/common.json (11 hunks)
  • apps/web/public/static/locales/ja/common.json (11 hunks)
  • apps/web/public/static/locales/km/common.json (11 hunks)
  • apps/web/public/static/locales/ko/common.json (10 hunks)
  • apps/web/public/static/locales/nl/common.json (11 hunks)
  • apps/web/public/static/locales/no/common.json (11 hunks)
  • apps/web/public/static/locales/pl/common.json (11 hunks)
  • apps/web/public/static/locales/pt-BR/common.json (11 hunks)
  • apps/web/public/static/locales/pt/common.json (11 hunks)
  • apps/web/public/static/locales/ro/common.json (10 hunks)
  • apps/web/public/static/locales/ru/common.json (11 hunks)
  • apps/web/public/static/locales/sk-SK/common.json (10 hunks)
  • apps/web/public/static/locales/sr/common.json (11 hunks)
  • apps/web/public/static/locales/sv/common.json (11 hunks)
  • apps/web/public/static/locales/tr/common.json (11 hunks)
  • apps/web/public/static/locales/uk/common.json (11 hunks)
  • apps/web/public/static/locales/vi/common.json (11 hunks)
  • apps/web/public/static/locales/zh-CN/common.json (11 hunks)
  • apps/web/public/static/locales/zh-TW/common.json (11 hunks)
✅ Files skipped from review due to trivial changes (2)
  • apps/web/public/static/locales/hu/common.json
  • apps/web/public/static/locales/bn/common.json
🚧 Files skipped from review as they are similar to previous changes (33)
  • apps/web/public/static/locales/nl/common.json
  • apps/web/public/static/locales/uk/common.json
  • apps/web/public/static/locales/fr/common.json
  • apps/web/public/static/locales/da/common.json
  • apps/web/public/static/locales/ca/common.json
  • apps/web/public/static/locales/pl/common.json
  • apps/web/public/static/locales/bg/common.json
  • apps/web/public/static/locales/ar/common.json
  • apps/web/public/static/locales/zh-CN/common.json
  • apps/web/public/static/locales/sv/common.json
  • apps/web/public/static/locales/fi/common.json
  • apps/web/public/static/locales/ko/common.json
  • apps/web/public/static/locales/el/common.json
  • apps/web/public/static/locales/it/common.json
  • apps/web/public/static/locales/az/common.json
  • apps/web/public/static/locales/es-419/common.json
  • apps/web/public/static/locales/es/common.json
  • apps/web/public/static/locales/zh-TW/common.json
  • apps/web/public/static/locales/pt-BR/common.json
  • apps/web/public/static/locales/cs/common.json
  • apps/web/public/static/locales/tr/common.json
  • apps/web/public/static/locales/et/common.json
  • apps/web/public/static/locales/ro/common.json
  • apps/web/public/static/locales/vi/common.json
  • apps/web/public/static/locales/ja/common.json
  • apps/web/public/static/locales/km/common.json
  • apps/web/public/static/locales/eu/common.json
  • apps/web/public/static/locales/no/common.json
  • apps/web/public/static/locales/pt/common.json
  • apps/web/public/static/locales/sr/common.json
  • apps/web/public/static/locales/ru/common.json
  • apps/web/public/static/locales/sk-SK/common.json
  • apps/web/public/static/locales/de/common.json
🧰 Additional context used
🧠 Learnings (1)
📓 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.
🔇 Additional comments (4)
apps/web/public/static/locales/he/common.json (4)

51-55: Placeholder consistency for new Cal Video strings

Consider whether these new strings will be rendered together with dynamic data (e.g. organiser name, join-link, etc.).
If additional placeholders are expected (for example {{name}} or {{url}}) they must be present in the Hebrew string as well; otherwise run-time interpolation will fail.

Nothing to change if the English source also contains no placeholders – just double-check.


122-124: Fine-grained wording LGTM

Both round-robin / fixed-host variants are translated clearly and keep the original nuance.
No action required.


2172-2181: Analytics keys – plural & context

  1. "events": "אירועים" duplicates no other key – ✅
  2. "bookings_by_hour"/"most_booked_members" … translations are good.
  3. Ensure graphs/tables that expect plural-aware forms (_one / _other) won’t break; if the frontend uses simple strings you’re fine.

No immediate code change, just sanity-check usage.


3153-3153: Consistency with existing superlative keys

"most_cancelled_bookings" parallels previous “most_booked_members” – translation looks consistent.
No change needed.

emrysal
emrysal previously approved these changes Jul 24, 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

♻️ Duplicate comments (1)
apps/web/public/static/locales/sk-SK/common.json (1)

2734-2736: Duplicate keys – invalid JSON

Keys "most_no_show_host", "highest_rated" and "lowest_rated" already exist earlier in the same file (~ lines 1480-1482).
JSON objects must not contain repeated keys – this makes the whole file invalid for strict parsers and breaks runtime i18n loaders.

-  "most_no_show_host": "Najviac neúčastí",
-  "highest_rated": "Najlepšie hodnotené",
-  "lowest_rated": "Najhoršie hodnotené",

Either delete these duplicates or merge the wording into the original entries.

🧹 Nitpick comments (6)
apps/web/public/static/locales/sr/common.json (1)

2172-2176: Check plural-forms & placeholders for the added analytics strings

Keys such as "bookings_by_hour", "most_booked_members" and "least_booked_members" will likely be rendered in tables/charts that can show singular & plural counts.
Consider adding ICU plural forms (one, other) or {count} placeholders now, so that downstream code doesn’t need special-case logic later.

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

2172-2175: Hebrew wording is off – use “הכי …”

"most_booked_members" / "least_booked_members" read awkwardly:

-"most_booked_members": "המוזמנים ביותר",
-"least_booked_members": "המוזמנים הפחות",
+"most_booked_members": "הכי מוזמנים",
+"least_booked_members": "הכי פחות מוזמנים",

This is the common concise phrasing.

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

2172-2174: Clarify labels – they appear as bare nouns in dashboards

The new metrics are user-facing headings. Russian benefits from explicit subjects:

-"Бронирования по часам"
-"Самые востребованные"
-"Наименее востребованные"
+"Бронирования по часам"
+"Чаще всего бронируемые участники"
+"Реже всего бронируемые участники"

Adds context and stays close to the English intent.


2362-2365: Natural-sounding wording for analytics funnel

Current phrasing is literal and a bit clumsy.

-"Маршрутизация воронки"
+"Воронка маршрутизации"

-"Успешные маршрутизации"
+"Успешные перенаправления"

Consider revising the remaining two keys in the same style.

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

120-125: Terminology drift: “ev sahibi” vs “host”

fixed_hosts_unavailable_for_booking and round_robin_hosts_unavailable_for_booking
use “ev sahibləri / ev sahiblərindən heç biri”.
Elsewhere (“organizer”, “host”) the file consistently uses the singular form “ev
sahibi”. Pick one variant and stick to it; otherwise UI wording looks patchy.
Example:

-"Bəzi sabit ev sahibləri rezervasiya üçün əlçatan deyil."
+"Bəzi sabit ev sahibləri (hostlar) rezervasiya üçün əlçatan deyil."

685-689: UI label sounds awkward

"view_role": "Rola Bax" is an imperative but drops the post-position “bax”.
Consistency with neighbours ("edit_role": "Rolu redaktə et") would be:

-"Rola Bax"
+"Rola bax"

(lower-case verb and correct case suffix).

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between 3479863 and 2729578.

⛔ 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 (13 hunks)
  • apps/web/public/static/locales/az/common.json (13 hunks)
  • apps/web/public/static/locales/bg/common.json (13 hunks)
  • apps/web/public/static/locales/bn/common.json (12 hunks)
  • apps/web/public/static/locales/ca/common.json (13 hunks)
  • apps/web/public/static/locales/cs/common.json (13 hunks)
  • apps/web/public/static/locales/da/common.json (13 hunks)
  • apps/web/public/static/locales/de/common.json (13 hunks)
  • apps/web/public/static/locales/el/common.json (12 hunks)
  • apps/web/public/static/locales/es-419/common.json (13 hunks)
  • apps/web/public/static/locales/es/common.json (13 hunks)
  • apps/web/public/static/locales/et/common.json (13 hunks)
  • apps/web/public/static/locales/eu/common.json (13 hunks)
  • apps/web/public/static/locales/fi/common.json (13 hunks)
  • apps/web/public/static/locales/fr/common.json (13 hunks)
  • apps/web/public/static/locales/he/common.json (13 hunks)
  • apps/web/public/static/locales/hu/common.json (13 hunks)
  • apps/web/public/static/locales/it/common.json (12 hunks)
  • apps/web/public/static/locales/ja/common.json (13 hunks)
  • apps/web/public/static/locales/km/common.json (12 hunks)
  • apps/web/public/static/locales/ko/common.json (12 hunks)
  • apps/web/public/static/locales/nl/common.json (13 hunks)
  • apps/web/public/static/locales/no/common.json (13 hunks)
  • apps/web/public/static/locales/pl/common.json (12 hunks)
  • apps/web/public/static/locales/pt-BR/common.json (13 hunks)
  • apps/web/public/static/locales/pt/common.json (13 hunks)
  • apps/web/public/static/locales/ro/common.json (12 hunks)
  • apps/web/public/static/locales/ru/common.json (13 hunks)
  • apps/web/public/static/locales/sk-SK/common.json (13 hunks)
  • apps/web/public/static/locales/sr/common.json (13 hunks)
  • apps/web/public/static/locales/sv/common.json (13 hunks)
  • apps/web/public/static/locales/tr/common.json (13 hunks)
  • apps/web/public/static/locales/uk/common.json (12 hunks)
  • apps/web/public/static/locales/vi/common.json (13 hunks)
  • apps/web/public/static/locales/zh-CN/common.json (13 hunks)
  • apps/web/public/static/locales/zh-TW/common.json (12 hunks)
✅ Files skipped from review due to trivial changes (2)
  • apps/web/public/static/locales/bn/common.json
  • apps/web/public/static/locales/ca/common.json
🚧 Files skipped from review as they are similar to previous changes (29)
  • apps/web/public/static/locales/fr/common.json
  • apps/web/public/static/locales/it/common.json
  • apps/web/public/static/locales/uk/common.json
  • apps/web/public/static/locales/da/common.json
  • apps/web/public/static/locales/ja/common.json
  • apps/web/public/static/locales/fi/common.json
  • apps/web/public/static/locales/pl/common.json
  • apps/web/public/static/locales/es/common.json
  • apps/web/public/static/locales/zh-CN/common.json
  • apps/web/public/static/locales/eu/common.json
  • apps/web/public/static/locales/ro/common.json
  • apps/web/public/static/locales/nl/common.json
  • apps/web/public/static/locales/et/common.json
  • apps/web/public/static/locales/ar/common.json
  • apps/web/public/static/locales/ko/common.json
  • apps/web/public/static/locales/el/common.json
  • apps/web/public/static/locales/pt/common.json
  • apps/web/public/static/locales/hu/common.json
  • apps/web/public/static/locales/es-419/common.json
  • apps/web/public/static/locales/tr/common.json
  • apps/web/public/static/locales/sv/common.json
  • apps/web/public/static/locales/cs/common.json
  • apps/web/public/static/locales/bg/common.json
  • apps/web/public/static/locales/zh-TW/common.json
  • apps/web/public/static/locales/vi/common.json
  • apps/web/public/static/locales/de/common.json
  • apps/web/public/static/locales/km/common.json
  • apps/web/public/static/locales/pt-BR/common.json
  • apps/web/public/static/locales/no/common.json
🧰 Additional context used
🧠 Learnings (4)
📓 Common learnings
Learnt from: bandhan-majumder
PR: calcom/cal.com#22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.233Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.
apps/web/public/static/locales/ru/common.json (1)

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

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

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

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

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

🔇 Additional comments (5)
apps/web/public/static/locales/he/common.json (1)

78-82: Placeholder seems to be missing for dynamic name

If the key "cancelled_by" is interpolated elsewhere as e.g. "Cancelled by {{name}}", the Hebrew string should keep the {{name}} placeholder to avoid runtime trimming.

-"cancelled_by": "בוטל על ידי",
+"cancelled_by": "בוטל על ידי {{name}}",

Please double-check the English source and keep placeholders intact.

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

3383-3390: Placeholders preserved – looks good

{{acceptedTypes}} / {{maxSize}} kept intact, plural forms OK.


51-54: LGTM

Translations are accurate and consistent with earlier vocabulary.

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

3339-3343: Both old and new keys coexist – remove the obsolete one

You introduced restriction_schedule_description but kept
choose_restriction_schedule (line 3340).
If the old key is no longer referenced, delete it to avoid dead
translations and dev confusion.


3383-3390: Duplicate error messages

invalid_file_type and invalid_file_type_extension convey the same idea.
Unless the caller distinguishes them, keep only one key; otherwise translators
maintain two identical sentences.

Comment on lines 49 to 55
"disable_recording_for_guests": "Qonaqlar üçün yazını deaktiv edin",
"enable_automatic_transcription": "Görüşə qoşulduqdan sonra avtomatik transkripsiya funksiyasını aktivləşdir",
"enable_automatic_recording": "Təşkilatçı görüşə qoşulduqdan sonra avtomatik yazılışı aktivləşdir",
"video_options": "Video Seçimləri",
"get_meeting_session_details": "Görüş Sessiyasının Detallarını Əldə Et",
"edit_event": "Tədbiri redaktə et",
"view_session_details": "Sessiya Təfərrüatlarına Bax",
"meeting_session_details": "Görüş Sessiyasının Detalları",
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

“Recording” is mistranslated

enable_automatic_recording is rendered as
"Təşkilatçı görüşə qoşulduqdan sonra avtomatik yazılışı aktivləşdir".
“Yazılış” means “spelling/orthography”; the feature is about recording (audio/video).
Use a verb-noun pair consistent with lines 50 and 67, e.g.

-"Təşkilatçı görüşə qoşulduqdan sonra avtomatik yazılışı aktivləşdir"
+"Təşkilatçı görüşə qoşulduqdan sonra avtomatik yazmanı aktivləşdir"
📝 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
"disable_recording_for_guests": "Qonaqlar üçün yazını deaktiv edin",
"enable_automatic_transcription": "Görüşə qoşulduqdan sonra avtomatik transkripsiya funksiyasını aktivləşdir",
"enable_automatic_recording": "Təşkilatçı görüşə qoşulduqdan sonra avtomatik yazılışı aktivləşdir",
"video_options": "Video Seçimləri",
"get_meeting_session_details": "Görüş Sessiyasının Detallarını Əldə Et",
"edit_event": "Tədbiri redaktə et",
"view_session_details": "Sessiya Təfərrüatlarına Bax",
"meeting_session_details": "Görüş Sessiyasının Detalları",
"disable_recording_for_guests": "Qonaqlar üçün yazını deaktiv edin",
"enable_automatic_transcription": "Görüşə qoşulduqdan sonra avtomatik transkripsiya funksiyasını aktivləşdir",
"enable_automatic_recording": "Təşkilatçı görüşə qoşulduqdan sonra avtomatik yazmanı aktivləşdir",
"video_options": "Video Seçimləri",
"edit_event": "Tədbiri redaktə et",
"view_session_details": "Sessiya Təfərrüatlarına Bax",
"meeting_session_details": "Görüş Sessiyasının Detalları",
🤖 Prompt for AI Agents
In apps/web/public/static/locales/az/common.json around lines 49 to 55, the
translation for "enable_automatic_recording" incorrectly uses "yazılış" which
means spelling; replace it with the correct term for recording consistent with
other entries, using a verb-noun pair that clearly refers to audio/video
recording to accurately convey the feature.

"you_can_view_booking_details_with_this_url": "Вы можете просмотреть детали бронирования по этой ссылке {{url}} и добавить встречу в свой календарь",
"no_options_available": "Нет доступных вариантов",
"cancellation_reason": "Причина отмены (необязательно)",
"cancelled_by": "Отменено пользователем",
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

Missing placeholder jeopardises runtime substitution

The source string usually contains a placeholder (e.g. "Cancelled by {{user}}").
Current translation "Отменено пользователем" drops that variable, so the UI will lose the actor’s name.

-"cancelled_by": "Отменено пользователем",
+"cancelled_by": "Отменено {{user}}",

Please re-insert the {{user}} token (or verify that the key is indeed placeholder-free).

📝 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
"cancelled_by": "Отменено пользователем",
"cancelled_by": "Отменено {{user}}",
🤖 Prompt for AI Agents
In apps/web/public/static/locales/ru/common.json at line 80, the translation
string for "cancelled_by" is missing the placeholder {{user}} that exists in the
source string. To fix this, re-insert the {{user}} token into the Russian
translation so it matches the source format, ensuring the actor's name is
correctly displayed in the UI.

Comment on lines +122 to +123
"fixed_hosts_unavailable_for_booking": "Некоторые из закрепленных хостов недоступны для бронирования.",
"round_robin_hosts_unavailable_for_booking": "Нет доступных хостов для бронирования по принципу Round Robin.",
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

Terminology drift: use one word for “host” across the file

Earlier keys translate “host” as «организатор».
Here you switch to «хост», producing mixed wording in the UI.

-"Некоторые из закрепленных хостов недоступны для бронирования."
+"Некоторые из закреплённых организаторов недоступны для бронирования."

Please align both lines (122-123) to the chosen term.

Committable suggestion skipped: line range outside the PR's diff.

🤖 Prompt for AI Agents
In apps/web/public/static/locales/ru/common.json at lines 122-123, the term for
"host" is inconsistent with earlier translations, switching from «организатор»
to «хост». To fix this, replace «хост» with «организатор» in both lines to
maintain consistent terminology across the file.

Comment on lines +2179 to +2180
"events": "События",
"performance": "Производительность",
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

Potential duplicate keys – JSON will keep the last one

"events" & "performance" already exist earlier in the same file (lines ~147 & 511).
Having the same key twice is legal JSON but the first value is silently overwritten.

Please search & remove the duplicate, or rename the new key (e.g. "events_label").

🤖 Prompt for AI Agents
In apps/web/public/static/locales/ru/common.json around lines 2179 to 2180, the
keys "events" and "performance" are duplicates of keys defined earlier in the
file (around lines 147 and 511). Since JSON keys must be unique, remove these
duplicate entries or rename them to unique keys such as "events_label" or
"performance_label" to avoid overwriting the original values.

"you_can_view_booking_details_with_this_url": "Podrobnosti o rezervácii si môžete pozrieť na tejto url {{url}} a pridať udalosť do svojho kalendára",
"no_options_available": "Žiadne možnosti nie sú k dispozícii",
"cancellation_reason": "Dôvod zrušenia (nepovinné)",
"cancelled_by": "Zrušené používateľom",
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

Missing interpolation placeholder

The English key cancelled_by expects a dynamic value, e.g. Cancelled by {{user}}.
The Slovak translation currently drops the {{user}} placeholder ("Zrušené používateľom"), so the UI will lose the cancelling user’s name.

-  "cancelled_by": "Zrušené používateľom",
+  "cancelled_by": "Zrušil používateľ {{user}}",

Make sure the placeholder is preserved.

📝 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
"cancelled_by": "Zrušené používateľom",
"cancelled_by": "Zrušil používateľ {{user}}",
🤖 Prompt for AI Agents
In apps/web/public/static/locales/sk-SK/common.json at line 80, the translation
for the key "cancelled_by" is missing the interpolation placeholder {{user}}
that is present in the English version. To fix this, update the Slovak
translation to include the {{user}} placeholder, for example "Zrušené
používateľom {{user}}", so the cancelling user's name is correctly displayed in
the UI.

Comment on lines 2178 to 2181
"events_rescheduled": "Pomereni događaji",
"events": "Događaji",
"performance": "Performanse",
"from_last_period": "iz prošlog perioda",
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

Duplicate JSON key ‒ the second "events" will overwrite the first

A key with the same name already exists earlier in the file ("events": "Događaji" around line 147).
JSON parsers keep only the last occurrence, so every runtime/ build that reads this bundle will silently drop the first translation entry.

-  "events": "Događaji",
+  // TODO: decide which translation you want to keep and delete the other,
+  // or rename this key if it was meant to be different

Committable suggestion skipped: line range outside the PR's diff.

🤖 Prompt for AI Agents
In apps/web/public/static/locales/sr/common.json around lines 2178 to 2181,
there is a duplicate JSON key "events" which overwrites the earlier entry around
line 147. To fix this, remove or rename the duplicate "events" key in this
section to ensure each key is unique and no translations are silently dropped
during runtime or build.

Comment on lines +3385 to +3390
"file_size_limit_exceed": "Veličina fajla prelazi ograničenje",
"invalid_file_type": "Nevažeći tip fajla",
"invalid_file_type_extension": "Nevažeći tip fajla. Prihvaćeni tipovi: {{acceptedTypes}}",
"max_files_exceeded": "Prekoračen maksimalan broj fajlova",
"files_uploaded_successfully": "Fajlovi uspešno otpremljeni",
"file_upload_instructions": "Prihvaćeni tipovi: {{acceptedTypes}}; Maksimalna veličina fajla: {{maxSize}}",
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

File-upload error strings miss consistency with validation layer

The new keys for upload errors ("invalid_file_type_extension", "file_size_limit_exceed", …) encode the error message, but the limits / accepted extensions are duplicated across translations and server-side validation.

If those limits ever change, messages will get out of sync. Prefer parameterised messages:

"file_size_limit_exceed": "Veličina fajla prelazi ograničenje od {{maxSize}} {{unit}}",
"invalid_file_type_extension": "Nevažeći tip fajla. Dozvoljeni: {{extensions}}"

Then populate {{maxSize}} / {{extensions}} from the validation layer.

🤖 Prompt for AI Agents
In apps/web/public/static/locales/sr/common.json around lines 3385 to 3390, the
error messages for file upload validation are hardcoded without parameters,
causing duplication and risk of inconsistency with the validation logic. Update
these messages to use parameterized placeholders like {{maxSize}}, {{unit}}, and
{{extensions}} instead of fixed values. Then ensure these placeholders are
dynamically populated from the validation layer to keep messages consistent with
actual limits and accepted file types.

@anikdhabal anikdhabal merged commit f991669 into main Jul 24, 2025
35 of 36 checks passed
@anikdhabal anikdhabal deleted the lingo.dev/main branch July 24, 2025 19:54
zomars pushed a commit that referenced this pull request Jul 25, 2025
Co-authored-by: Lingo.dev <support@lingo.dev>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants