-
Notifications
You must be signed in to change notification settings - Fork 14
chore: new crowdin translations #7901
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
WalkthroughLarge cross-locale i18n update: adds and reorganizes many translation keys (journeys admin, journeys-ui, libs-journeys-ui, apps-watch), introduces new apps-player locale files for many languages, renames several keys (notably "Next Step" → "Next", "Label" → "Field Name"), and expands Google Sheets, multiselect, subtitle, export, and video-related strings. Changes
Sequence Diagram(s)(omitted — changes are localization/resource updates, not new multi-component control flow) Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches🧪 Generate unit tests (beta)
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. Comment |
|
View your CI Pipeline Execution ↗ for commit 8366843
☁️ Nx Cloud last updated this comment at |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 6
📜 Review details
Configuration used: CodeRabbit UI
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 selected for processing (66)
libs/locales/am-ET/apps-journeys-admin.json(3 hunks)libs/locales/am-ET/journeys-ui.json(1 hunks)libs/locales/am-ET/libs-journeys-ui.json(1 hunks)libs/locales/ar-SA/apps-journeys-admin.json(3 hunks)libs/locales/ar-SA/journeys-ui.json(1 hunks)libs/locales/ar-SA/libs-journeys-ui.json(1 hunks)libs/locales/bn-BD/apps-journeys-admin.json(3 hunks)libs/locales/bn-BD/journeys-ui.json(1 hunks)libs/locales/bn-BD/libs-journeys-ui.json(1 hunks)libs/locales/de-DE/apps-journeys-admin.json(3 hunks)libs/locales/de-DE/journeys-ui.json(1 hunks)libs/locales/de-DE/libs-journeys-ui.json(1 hunks)libs/locales/es-ES/apps-journeys-admin.json(3 hunks)libs/locales/es-ES/journeys-ui.json(1 hunks)libs/locales/es-ES/libs-journeys-ui.json(1 hunks)libs/locales/fr-FR/apps-journeys-admin.json(3 hunks)libs/locales/fr-FR/journeys-ui.json(1 hunks)libs/locales/fr-FR/libs-journeys-ui.json(1 hunks)libs/locales/hi-IN/apps-journeys-admin.json(3 hunks)libs/locales/hi-IN/journeys-ui.json(1 hunks)libs/locales/hi-IN/libs-journeys-ui.json(1 hunks)libs/locales/id-ID/apps-journeys-admin.json(3 hunks)libs/locales/id-ID/journeys-ui.json(1 hunks)libs/locales/id-ID/libs-journeys-ui.json(1 hunks)libs/locales/ja-JP/apps-journeys-admin.json(3 hunks)libs/locales/ja-JP/journeys-ui.json(1 hunks)libs/locales/ja-JP/libs-journeys-ui.json(1 hunks)libs/locales/ko-KR/apps-journeys-admin.json(3 hunks)libs/locales/ko-KR/journeys-ui.json(1 hunks)libs/locales/ko-KR/libs-journeys-ui.json(1 hunks)libs/locales/ms-MY/apps-journeys-admin.json(3 hunks)libs/locales/ms-MY/journeys-ui.json(1 hunks)libs/locales/ms-MY/libs-journeys-ui.json(1 hunks)libs/locales/my-MM/apps-journeys-admin.json(3 hunks)libs/locales/my-MM/journeys-ui.json(1 hunks)libs/locales/my-MM/libs-journeys-ui.json(1 hunks)libs/locales/ne-NP/apps-journeys-admin.json(3 hunks)libs/locales/ne-NP/journeys-ui.json(1 hunks)libs/locales/ne-NP/libs-journeys-ui.json(1 hunks)libs/locales/pt-BR/apps-journeys-admin.json(3 hunks)libs/locales/pt-BR/journeys-ui.json(1 hunks)libs/locales/pt-BR/libs-journeys-ui.json(1 hunks)libs/locales/ru-RU/apps-journeys-admin.json(3 hunks)libs/locales/ru-RU/journeys-ui.json(1 hunks)libs/locales/ru-RU/libs-journeys-ui.json(1 hunks)libs/locales/th-TH/apps-journeys-admin.json(3 hunks)libs/locales/th-TH/journeys-ui.json(1 hunks)libs/locales/th-TH/libs-journeys-ui.json(1 hunks)libs/locales/tl-PH/apps-journeys-admin.json(3 hunks)libs/locales/tl-PH/journeys-ui.json(1 hunks)libs/locales/tl-PH/libs-journeys-ui.json(1 hunks)libs/locales/tr-TR/apps-journeys-admin.json(3 hunks)libs/locales/tr-TR/journeys-ui.json(1 hunks)libs/locales/tr-TR/libs-journeys-ui.json(1 hunks)libs/locales/ur-PK/apps-journeys-admin.json(3 hunks)libs/locales/ur-PK/journeys-ui.json(1 hunks)libs/locales/ur-PK/libs-journeys-ui.json(1 hunks)libs/locales/vi-VN/apps-journeys-admin.json(3 hunks)libs/locales/vi-VN/journeys-ui.json(1 hunks)libs/locales/vi-VN/libs-journeys-ui.json(1 hunks)libs/locales/zh-Hans-CN/apps-journeys-admin.json(3 hunks)libs/locales/zh-Hans-CN/journeys-ui.json(1 hunks)libs/locales/zh-Hans-CN/libs-journeys-ui.json(1 hunks)libs/locales/zh-Hant-TW/apps-journeys-admin.json(3 hunks)libs/locales/zh-Hant-TW/journeys-ui.json(1 hunks)libs/locales/zh-Hant-TW/libs-journeys-ui.json(1 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: mikeallisonJS
PR: JesusFilm/core#7658
File: libs/locales/ms-MY/apps-watch.json:62-62
Timestamp: 2025-09-12T20:30:23.683Z
Learning: Interpolation spacing and localization fixes for i18n files are specific to journeys-admin context and may not apply to other apps like apps-watch.
📚 Learning: 2025-09-12T20:30:23.683Z
Learnt from: mikeallisonJS
PR: JesusFilm/core#7658
File: libs/locales/ms-MY/apps-watch.json:62-62
Timestamp: 2025-09-12T20:30:23.683Z
Learning: Interpolation spacing and localization fixes for i18n files are specific to journeys-admin context and may not apply to other apps like apps-watch.
Applied to files:
libs/locales/ru-RU/apps-journeys-admin.jsonlibs/locales/fr-FR/apps-journeys-admin.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
- GitHub Check: test (22, 2/3)
- GitHub Check: build (22)
- GitHub Check: lint (22)
- GitHub Check: test (22, 1/3)
- GitHub Check: test (22, 3/3)
🔇 Additional comments (9)
libs/locales/ja-JP/journeys-ui.json (1)
7-7: Please double-check the new JA translation for “Next”.“次のページ” literally means “next page,” which may feel too specific if the control just says “Next.” Could you confirm with the localization team whether a more general term like “次へ” (or similar) is intended here?
libs/locales/my-MM/apps-journeys-admin.json (1)
654-654: Localization updates align with global copy changeParenthesis normalization and the explicit “Next” entry keep this locale consistent with the rest of the rollout. Looks good.
Also applies to: 813-813, 861-861
libs/locales/es-ES/libs-journeys-ui.json (1)
13-13: Updated notice reads wellThe shorter “not original template” notice mirrors the English source cleanly for es-ES. 👍
libs/locales/vi-VN/libs-journeys-ui.json (1)
13-13: Vietnamese copy matches source intentReworded notice clearly communicates the AI/copy caveat. Change looks good.
libs/locales/ne-NP/apps-journeys-admin.json (1)
654-654: Nepali locale stays in sync with key renameParentheses match the source string and the new “Next” key pairs correctly with the retained “Next Step”.
Also applies to: 813-813, 861-861
libs/locales/zh-Hans-CN/libs-journeys-ui.json (1)
13-13: Simplified Chinese translation follows updated guidanceThe refreshed wording conveys the AI-copy warning accurately. All good.
libs/locales/zh-Hans-CN/journeys-ui.json (1)
7-7: Navigation label update confirmedSwitching to the “Next” key keeps this locale aligned with the UI terminology changes.
libs/locales/ur-PK/libs-journeys-ui.json (1)
13-13: Template warning string syncedEven with English fallback, the key now mirrors the updated messaging used elsewhere. Looks consistent.
libs/locales/ar-SA/apps-journeys-admin.json (1)
654-654: Arabic strings track the shared localization changesParenthesis adjustment plus the “Next”/“Next Step” coverage align with the cross-locale rollout.
Also applies to: 813-813, 861-861
| "Select a language": "Wähle eine Sprache", | ||
| "Select a team": "Wähle ein Team", | ||
| "Next Step": "Nächster Schritt" | ||
| "Next": "Nächste" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix German label for “Next”.
“Next” should be translated as “Weiter”; “Nächste” is grammatically incomplete without a noun and looks incorrect on the button.
🤖 Prompt for AI Agents
In libs/locales/de-DE/journeys-ui.json around line 7, the German translation for
the key "Next" is currently "Nächste", which is grammatically incorrect for a
standalone button; change the value to "Weiter" to provide the correct, natural
label on the button.
| "Select a language": "Chọn ngôn ngữ", | ||
| "Select a team": "Chọn một đội", | ||
| "Next Step": "Next Step" | ||
| "Next": "Next" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Restore the Vietnamese translation for “Next”.
This key now surfaces the English word “Next” in the Vietnamese UI. It should remain localized as “Tiếp theo” to match the rest of the locale.
Apply this diff to correct the translation:
- "Next": "Next"
+ "Next": "Tiếp theo"📝 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.
| "Next": "Next" | |
| "Next": "Tiếp theo" |
🤖 Prompt for AI Agents
In libs/locales/vi-VN/journeys-ui.json around line 7, the "Next" key is using
the English string "Next" instead of the Vietnamese translation; update the
value to "Tiếp theo" so the entry reads "Next": "Tiếp theo" to restore correct
localization.
| "Select a language": "選擇語言", | ||
| "Select a team": "選擇團隊", | ||
| "Next Step": "下一步" | ||
| "Next": "下一個" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Restore the standard navigation translation.
“下一個” reads as “next item,” which is awkward for a navigation button. The previous “下一步” matches the intended “Next” step action and should remain.
Apply this diff to fix the regression:
- "Next": "下一個"
+ "Next": "下一步"📝 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.
| "Next": "下一個" | |
| "Next": "下一步" |
🤖 Prompt for AI Agents
In libs/locales/zh-Hant-TW/journeys-ui.json around line 7, the translation for
"Next" was changed to "下一個" (reads as "next item") but should be the
navigation/step label "下一步"; revert or replace the value to "下一步" to restore the
standard navigation translation.
|
The latest updates on your projects.
|
|
The latest updates on your projects.
|
|
The latest updates on your projects.
|
|
The latest updates on your projects.
|
|
The latest updates on your projects.
|
|
Plan Error |
4 similar comments
|
Plan Error |
|
Plan Error |
|
Plan Error |
|
Plan Error |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In @libs/locales/hi-IN/apps-journeys-admin.json:
- Line 805: The "History" translation value contains a trailing space ("इतिहास
"); remove the trailing whitespace so the value is exactly "इतिहास" in the
apps-journeys-admin.json entry for the "History" key to prevent display and
matching issues.
📜 Review details
Configuration used: Repository UI
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 selected for processing (22)
libs/locales/am-ET/apps-journeys-admin.jsonlibs/locales/ar-SA/apps-journeys-admin.jsonlibs/locales/bn-BD/apps-journeys-admin.jsonlibs/locales/de-DE/apps-journeys-admin.jsonlibs/locales/es-ES/apps-journeys-admin.jsonlibs/locales/fr-FR/apps-journeys-admin.jsonlibs/locales/hi-IN/apps-journeys-admin.jsonlibs/locales/id-ID/apps-journeys-admin.jsonlibs/locales/ja-JP/apps-journeys-admin.jsonlibs/locales/ko-KR/apps-journeys-admin.jsonlibs/locales/ms-MY/apps-journeys-admin.jsonlibs/locales/my-MM/apps-journeys-admin.jsonlibs/locales/ne-NP/apps-journeys-admin.jsonlibs/locales/pt-BR/apps-journeys-admin.jsonlibs/locales/ru-RU/apps-journeys-admin.jsonlibs/locales/th-TH/apps-journeys-admin.jsonlibs/locales/tl-PH/apps-journeys-admin.jsonlibs/locales/tr-TR/apps-journeys-admin.jsonlibs/locales/ur-PK/apps-journeys-admin.jsonlibs/locales/vi-VN/apps-journeys-admin.jsonlibs/locales/zh-Hans-CN/apps-journeys-admin.jsonlibs/locales/zh-Hant-TW/apps-journeys-admin.json
🚧 Files skipped from review as they are similar to previous changes (1)
- libs/locales/pt-BR/apps-journeys-admin.json
🧰 Additional context used
🧠 Learnings (8)
📓 Common learnings
Learnt from: mikeallisonJS
Repo: JesusFilm/core PR: 7659
File: libs/locales/pt-BR/apps-journeys-admin.json:512-526
Timestamp: 2025-09-16T00:30:59.827Z
Learning: The team uses Crowdin with DeepL and Google Translate for translations. Do not recommend translation corrections or improvements for locale files as they have an established translation workflow.
Learnt from: mikeallisonJS
Repo: JesusFilm/core PR: 7658
File: libs/locales/ms-MY/apps-watch.json:62-62
Timestamp: 2025-09-12T20:30:23.683Z
Learning: Interpolation spacing and localization fixes for i18n files are specific to journeys-admin context and may not apply to other apps like apps-watch.
Learnt from: CR
Repo: JesusFilm/core PR: 0
File: apps/watch/AGENTS.md:0-0
Timestamp: 2025-12-19T04:58:24.460Z
Learning: Applies to apps/watch/src/**/*.{ts,tsx} : When calling `t(...)` for translations, inline human-readable copy with interpolation placeholders (e.g., `t('Switch to {{localeName}}', { localeName: localeDetails.nativeName })`) instead of referencing stored translation keys.
Learnt from: CR
Repo: JesusFilm/core PR: 0
File: apps/resources/AGENTS.md:0-0
Timestamp: 2025-12-19T19:18:43.790Z
Learning: Applies to apps/resources/**/*.{ts,tsx} : When calling `t(...)`, inline the human-readable copy with interpolation placeholders (e.g., `t('Switch to {{localeName}}', { localeName: localeDetails.nativeName })`) instead of referencing stored translation keys like `t('localeSuggestion.action', ...)`
Learnt from: CR
Repo: JesusFilm/core PR: 0
File: apps/resources/AGENTS.md:0-0
Timestamp: 2025-12-19T19:18:43.790Z
Learning: Applies to apps/resources/**/*.{ts,tsx} : Use direct English strings in `t()` function calls instead of translation keys. Use `t('Welcome back')` instead of `t('welcomeBack')` or nested structures like `t('user.profile.name')`
📚 Learning: 2025-09-12T20:30:23.683Z
Learnt from: mikeallisonJS
Repo: JesusFilm/core PR: 7658
File: libs/locales/ms-MY/apps-watch.json:62-62
Timestamp: 2025-09-12T20:30:23.683Z
Learning: Interpolation spacing and localization fixes for i18n files are specific to journeys-admin context and may not apply to other apps like apps-watch.
Applied to files:
libs/locales/ja-JP/apps-journeys-admin.jsonlibs/locales/ur-PK/apps-journeys-admin.jsonlibs/locales/es-ES/apps-journeys-admin.jsonlibs/locales/th-TH/apps-journeys-admin.jsonlibs/locales/tr-TR/apps-journeys-admin.jsonlibs/locales/id-ID/apps-journeys-admin.jsonlibs/locales/ms-MY/apps-journeys-admin.jsonlibs/locales/ne-NP/apps-journeys-admin.jsonlibs/locales/bn-BD/apps-journeys-admin.jsonlibs/locales/tl-PH/apps-journeys-admin.jsonlibs/locales/ko-KR/apps-journeys-admin.jsonlibs/locales/de-DE/apps-journeys-admin.jsonlibs/locales/my-MM/apps-journeys-admin.jsonlibs/locales/ru-RU/apps-journeys-admin.jsonlibs/locales/am-ET/apps-journeys-admin.jsonlibs/locales/fr-FR/apps-journeys-admin.jsonlibs/locales/hi-IN/apps-journeys-admin.jsonlibs/locales/ar-SA/apps-journeys-admin.json
📚 Learning: 2025-09-16T00:30:59.827Z
Learnt from: mikeallisonJS
Repo: JesusFilm/core PR: 7659
File: libs/locales/pt-BR/apps-journeys-admin.json:512-526
Timestamp: 2025-09-16T00:30:59.827Z
Learning: The team uses Crowdin with DeepL and Google Translate for translations. Do not recommend translation corrections or improvements for locale files as they have an established translation workflow.
Applied to files:
libs/locales/ur-PK/apps-journeys-admin.jsonlibs/locales/ne-NP/apps-journeys-admin.jsonlibs/locales/bn-BD/apps-journeys-admin.jsonlibs/locales/tl-PH/apps-journeys-admin.jsonlibs/locales/my-MM/apps-journeys-admin.jsonlibs/locales/am-ET/apps-journeys-admin.json
📚 Learning: 2025-12-19T04:58:24.460Z
Learnt from: CR
Repo: JesusFilm/core PR: 0
File: apps/watch/AGENTS.md:0-0
Timestamp: 2025-12-19T04:58:24.460Z
Learning: Applies to apps/watch/src/**/*.{ts,tsx} : When calling `t(...)` for translations, inline human-readable copy with interpolation placeholders (e.g., `t('Switch to {{localeName}}', { localeName: localeDetails.nativeName })`) instead of referencing stored translation keys.
Applied to files:
libs/locales/tr-TR/apps-journeys-admin.jsonlibs/locales/de-DE/apps-journeys-admin.json
📚 Learning: 2025-12-19T19:18:43.790Z
Learnt from: CR
Repo: JesusFilm/core PR: 0
File: apps/resources/AGENTS.md:0-0
Timestamp: 2025-12-19T19:18:43.790Z
Learning: Applies to apps/resources/**/*.{ts,tsx} : When calling `t(...)`, inline the human-readable copy with interpolation placeholders (e.g., `t('Switch to {{localeName}}', { localeName: localeDetails.nativeName })`) instead of referencing stored translation keys like `t('localeSuggestion.action', ...)`
Applied to files:
libs/locales/tr-TR/apps-journeys-admin.json
📚 Learning: 2025-12-19T19:18:43.790Z
Learnt from: CR
Repo: JesusFilm/core PR: 0
File: apps/resources/AGENTS.md:0-0
Timestamp: 2025-12-19T19:18:43.790Z
Learning: Applies to apps/resources/**/*.{ts,tsx} : Use direct English strings in `t()` function calls instead of translation keys. Use `t('Welcome back')` instead of `t('welcomeBack')` or nested structures like `t('user.profile.name')`
Applied to files:
libs/locales/tr-TR/apps-journeys-admin.jsonlibs/locales/ne-NP/apps-journeys-admin.jsonlibs/locales/tl-PH/apps-journeys-admin.json
📚 Learning: 2025-11-13T20:28:24.049Z
Learnt from: mikeallisonJS
Repo: JesusFilm/core PR: 8310
File: apis/api-journeys-modern/src/schema/integration/google/googleUpdate.mutation.ts:93-102
Timestamp: 2025-11-13T20:28:24.049Z
Learning: In the Integration model for apis/api-journeys-modern, the fields `accessId` and `accessSecretPart` are specific to the GrowthSpaces integration type and are not used for Google integrations. Google integrations use encrypted OAuth credentials via `accessSecretCipherText`, `accessSecretIv`, `accessSecretTag`, and `accountEmail` fields instead.
Applied to files:
libs/locales/id-ID/apps-journeys-admin.jsonlibs/locales/ne-NP/apps-journeys-admin.json
📚 Learning: 2025-09-10T19:52:52.934Z
Learnt from: mikeallisonJS
Repo: JesusFilm/core PR: 7629
File: apis/api-journeys/schema.graphql:947-956
Timestamp: 2025-09-10T19:52:52.934Z
Learning: The canBlockHaveAction function in apis/api-journeys/src/app/modules/action/canBlockHaveAction/canBlockHaveAction.ts incorrectly includes 'MultiselectOptionBlock' in its allowlist, but MultiselectOptionBlock blocks should not have actions. Only MultiselectBlock (the container) should have actions, not the individual option blocks.
Applied to files:
libs/locales/hi-IN/apps-journeys-admin.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Infracost
🔇 Additional comments (15)
libs/locales/ne-NP/apps-journeys-admin.json (1)
1-1058: LGTM! Technical structure is sound.The JSON structure, interpolation patterns ({{variable}}), and pluralization conventions (_one/_other) are all correct. The additions align with the PR objectives—Integration/Google, Multiselect, Field Name, subtitle features, phone validation, and Google Sheets sync strings are properly formatted for the i18n framework.
Based on learnings, the team uses Crowdin with DeepL and Google Translate for translations, so translation quality is handled through that established workflow.
libs/locales/ur-PK/apps-journeys-admin.json (1)
1-1058: LGTM! Locale file structure is valid and follows Crowdin conventions.The new translation keys for multiselect, Google Sheets sync, phone/contact actions, subtitles, video status, tracking events, and template management are properly structured. All interpolation patterns (
{{variable}}) and plural forms (_one,_other) are consistent between keys and values. Based on learnings, translation content is managed through the established Crowdin workflow with DeepL and Google Translate.libs/locales/ms-MY/apps-journeys-admin.json (1)
1-1048: LGTM! Translation file is technically sound.This i18n update adds many new translation keys (Integration, Google, multiselect, subtitles, Google Sheets sync, export settings, video processing, etc.) as described in the PR objectives. The JSON structure is valid, interpolation placeholders are correctly formatted, and markup tags are properly structured.
Some entries remain in English while others are translated to Malay, which is expected in the Crowdin workflow where keys are added in English first and then translated through your established process.
Based on learnings, the team uses Crowdin with DeepL and Google Translate for translations, so I'm not flagging untranslated strings or suggesting translation improvements.
libs/locales/ru-RU/apps-journeys-admin.json (1)
1-1078: LGTM! Translation file structure is technically sound.The Russian locale file has been successfully updated with new keys for multiselect, Google integration, subtitles, video processing, contact actions, and template management. All technical aspects are correct:
- JSON syntax is valid
- Interpolation placeholders (e.g.,
{{title}},{{count}}) are consistent- React component tags (
<0>,<1>) are properly preserved- Pluralization keys follow proper i18n conventions
Based on learnings, the team uses Crowdin with DeepL and Google Translate for translations with an established workflow, so translation quality is not reviewed here.
libs/locales/id-ID/apps-journeys-admin.json (1)
1-1048: LGTM! Automated translation update appears technically sound.This automated Crowdin translation update adds extensive i18n coverage for Indonesian locale, including new features like Google integration, multiselect components, template lifecycle management, Google Sheets sync, and enhanced video/subtitle functionality. The JSON structure is valid, interpolation syntax is consistent ({{variable}} format), and i18next conventions are properly followed for HTML tags and pluralization.
Based on learnings, the team has an established translation workflow using Crowdin with DeepL and Google Translate, so translation quality review is handled through that process.
libs/locales/hi-IN/apps-journeys-admin.json (1)
1-1058: LGTM - i18n additions are structurally sound.The new translation keys for Integration, Google Sheets sync, Multiselect, Field Name/Label, Subtitles, Export options, and Template lifecycle features are properly structured. Interpolation placeholders are consistent between keys and values. Based on learnings, the team uses Crowdin with DeepL/Google Translate for translations, so untranslated English values are expected and will be processed through the established workflow.
libs/locales/ja-JP/apps-journeys-admin.json (1)
30-828: ja-JP locale additions look structurally soundNew keys (integrations, multiselect, subtitles, exports, Google Sheets, navigation) keep placeholders and formatting consistent with existing patterns; no structural or interpolation issues detected. As per learnings, not reviewing translation wording itself.
libs/locales/es-ES/apps-journeys-admin.json (1)
30-828: es-ES locale updates are consistent and placeholder-safeAdded/updated strings for integrations, multiselect, exports, subtitles, and Google Sheets retain the expected keys and interpolation tokens; JSON and key patterns match other locales. Translation wording intentionally left unreviewed per established workflow.
libs/locales/de-DE/apps-journeys-admin.json (1)
30-828: de-DE journey-admin keys: no structural/i18n-token issuesNew German entries for integrations, multiselect, subtitles, exports, and template/journey lifecycle preserve all interpolation tokens and follow existing key patterns; no structural concerns from an i18n standpoint. Not commenting on translation quality per team workflow.
libs/locales/ko-KR/apps-journeys-admin.json (1)
30-828: ko-KR locale expansion is structurally consistentDespite the large diff, new/updated keys (integrations, multiselect, phone/URL/chat actions, subtitles, exports, Google Sheets, templates) keep all interpolation tokens and ICU/React-style markers intact, and align with other locales’ key set. Translation phrasing intentionally not reviewed per established localization process.
libs/locales/am-ET/apps-journeys-admin.json (1)
30-828: am-ET locale: new keys match global i18n structureNew English-valued keys for integrations, multiselect, subtitles, exports, and Google Sheets follow the same key patterns and preserve all placeholders and plural forms; JSON remains well-formed. Wording itself left as-is per localization workflow.
libs/locales/bn-BD/apps-journeys-admin.json (1)
30-845: Locale additions look structurally sound (placeholders & keys preserved)New bn-BD keys for integrations, multiselect, subtitles, Google Sheets, exports, and template lifecycle all preserve interpolation tokens (e.g.,
{{teamName}},{{pixels}},{{ width }},{{ height }}) and JSX-like markup (<0>…</0>) correctly. JSON syntax and pluralization patterns are consistent with the rest of the file. No structural issues from an i18n/keys perspective. Based on learnings, I’m intentionally not reviewing or suggesting changes to the actual translations.libs/locales/tl-PH/apps-journeys-admin.json (1)
30-845: Structural i18n changes in tl-PH are consistent and safeFor the new tl-PH strings (integrations, multiselect, subtitles, exports, Google Sheets sync, template lifecycle, phone validation), all interpolation tokens and React-style markup are preserved exactly from the keys (
{{teamName}},{{scans}},<0>…</0>, etc.), and JSON remains valid. No structural or key/placeholder issues detected; I’m deliberately not commenting on translation quality per your Crowdin workflow.libs/locales/fr-FR/apps-journeys-admin.json (1)
30-845: fr-FR key additions keep interpolation and JSON structure intactThe new French strings for integrations, multiselect, subtitles, Google export/Sheets, and template/journey lifecycle reuse existing keys and preserve all interpolation (
{{count}},{{ teamName }}, etc.) and<0>…</0>markup. I don’t see any JSON or placeholder mismatches; everything aligns with the patterns already used in this file. Translation wording itself is left to your Crowdin flow.libs/locales/ar-SA/apps-journeys-admin.json (1)
30-1097: ar-SA additions mirror other locales and preserve technical semanticsThe Arabic updates for integrations, multiselect, subtitles, export/Google Sheets sync, and template/journey lifecycle are structurally consistent with other locales: plural forms follow your existing
_zero/_one/_two/_few/_many/_otherscheme, JSON is valid, and all interpolation tokens ({{count}},{{ teamName }},{{ messagePlatform }}, etc.) and markup segments are preserved. No key/placeholder or structural issues from an i18n integration standpoint; translation content is left to your established Crowdin process.
|
@coderabbitai resolve |
✅ Actions performedComments resolved. |
Summary by CodeRabbit
New Features
Bug Fixes
Chores
✏️ Tip: You can customize this high-level summary in your review settings.
Note
Updates i18n across many locales to add multiselect and label controls, subtitle/video status UX, phone/SMS actions with validation, analytics/export tweaks, download/share strings, and standardizes “Next.”
Field Name,Labelshow/hide with helper text, "This field is required", andAdd Option.Multiselect, option editing on canvas, properties, submission/answers, and selection limits (min/max).Off; video status toasts (processing/queued/timed out), "select a video block first", "subtitles available",Dismiss.Call/Text (SMS)actions with validation (Country,Phone Number, errors); chat URL prompts and invalid URL handling.Next StepwithNext.Written by Cursor Bugbot for commit 64d5cf5. This will update automatically on new commits. Configure here.