Skip to content

Conversation

@tataihono
Copy link
Contributor

@tataihono tataihono commented Oct 2, 2025

Summary by CodeRabbit

  • New Features

    • Expanded localized UI copy across languages: Field Name & label visibility, Multiselect (options/properties/limits), video/subtitles UX (language selector, queue/status), chat URL/phone flows, template lifecycle actions, Google integration & Sheets sync surface, export labels, navigation text (Next / Back to Home), and player/watch UI strings.
  • Bug Fixes

    • Added analytics/error messages and improved validation text (invalid URL, phone/email, error fetching analytics).
  • Chores

    • Added helper texts and form copy (Add Option, This field is required.).

✏️ 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.”

  • i18n (multiple locales):
    • Forms/Labels: Add Field Name, Label show/hide with helper text, "This field is required", and Add Option.
    • Multiselect: New Multiselect, option editing on canvas, properties, submission/answers, and selection limits (min/max).
    • Media/Subtitles: Subtitle language selector, availability states, search, Off; video status toasts (processing/queued/timed out), "select a video block first", "subtitles available", Dismiss.
    • Contact/Actions: Phone Call/Text (SMS) actions with validation (Country, Phone Number, errors); chat URL prompts and invalid URL handling.
    • Analytics/Export: Add "Error fetching analytics"; multiselect submission/answers; optional settings (include old data); standardized contact data wording.
    • Navigation Copy: Replace Next Step with Next.
    • Watch App: Download modal strings (qualities, terms accept/cancel) and share/embed strings.

Written by Cursor Bugbot for commit 64d5cf5. This will update automatically on new commits. Configure here.

@tataihono tataihono added effort: 1 priority: soon type: chore updating folder structure, initializing projects etc; no production code change labels Oct 2, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Oct 2, 2025

Walkthrough

Large 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

Cohort / File(s) Summary
Journeys admin locales
libs/locales/*/apps-journeys-admin.json (e.g. ar-SA, bn-BD, de-DE, es-ES, fr-FR, hi-IN, id-ID, ja-JP, ko-KR, ms-MY, my-MM, ne-NP, pt-BR, ru-RU, th-TH, tl-PH, tr-TR, ur-PK, vi-VN, zh-Hans-CN, zh-Hant-TW, am-ET, etc.)
Bulk additions/reorgs: add top-level groups (Integration, Google), many Google Sheets sync/account keys, export/analytics keys, multiselect surface, phone/URL/chat validations, video/subtitle keys, template lifecycle strings; rename LabelField Name, add Show label/Hide label; remove/consolidate some legacy keys.
Journeys UI key renames
libs/locales/*/journeys-ui.json (many locales)
Key rename across locales: Next StepNext with updated localized values.
Libs journeys-ui (shared UI bits)
libs/locales/*/libs-journeys-ui.json (many locales)
Replace long template-origin notice with AI-aware phrasing; add Add Option, This field is required., Quick Start, Website, subtitle/off keys, Start a Chat (replacing Start a Conversation), plural/select keys for option counts, and related UI strings.
Apps-watch / player keys
libs/locales/*/apps-watch.json (various locales)
Replace Available Languages / Other Languages with parameterized {{ languageCount }} Languages; add playback keys (Play, Play with sound, See All), download/size, share/embed, content-type tokens (Item/Collection/Episode/…), and reorganize description/discussion keys.
Apps-player new files
libs/locales/*/apps-player.json (added for many locales: ar-SA,bn-BD,de-DE,es-ES,fr-FR,hi-IN,id-ID,ja-JP,ko-KR,ms-MY,my-MM,ne-NP,ru-RU,th-TH,tl-PH,tr-TR,ur-PK,vi-VN,zh-Hans-CN,zh-Hant-TW,am-ET, etc.)
New per-locale files added providing localized strings for apps-player surfaces (RootIndexPage, Metadata, PlaylistRoutePage, PlaylistPage, PlaylistList, StudyQuestions, VideoPlayer, SharedPlaylistBanner).
Plural/format and minor fixes
libs/locales/*/libs-journeys-ui.json and assorted
Added plural variants and punctuation/format normalization, some duplicate placements of This field is required. for coverage consistency; minor casing changes in upload messages.

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

  • jianwei1
  • Kneesal
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title succinctly and accurately summarizes the PR: a chore updating Crowdin translations across locales.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 00-00-CI-chore-i10n-updates

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

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

@github-actions
Copy link
Contributor

github-actions bot commented Oct 2, 2025

Warnings
⚠️ ❗ Big PR (7554 changes)

(change count - 7554): Pull Request size seems relatively large. If Pull Request contains multiple changes, split each into separate PR will helps faster, easier review.

Generated by 🚫 dangerJS against 8366843

@nx-cloud
Copy link

nx-cloud bot commented Oct 2, 2025

View your CI Pipeline Execution ↗ for commit 8366843

Command Status Duration Result
nx run player-e2e:e2e ✅ Succeeded 3s View ↗
nx run journeys-admin-e2e:e2e ✅ Succeeded 2m 41s View ↗
nx run journeys-e2e:e2e ✅ Succeeded 18s View ↗
nx run resources-e2e:e2e ✅ Succeeded 11s View ↗
nx run watch-e2e:e2e ✅ Succeeded 12s View ↗
nx run videos-admin-e2e:e2e ✅ Succeeded 4s View ↗
nx run watch-modern-e2e:e2e ✅ Succeeded 3s View ↗
nx run-many --target=vercel-alias --projects=jo... ✅ Succeeded 2s View ↗
Additional runs (20) ✅ Succeeded ... View ↗

☁️ Nx Cloud last updated this comment at 2026-01-13 04:05:06 UTC

@github-actions github-actions bot temporarily deployed to Preview - journeys-admin October 2, 2025 22:43 Inactive
@github-actions github-actions bot temporarily deployed to Preview - journeys October 2, 2025 22:43 Inactive
@github-actions github-actions bot temporarily deployed to Preview - watch-modern October 2, 2025 22:43 Inactive
@github-actions github-actions bot temporarily deployed to Preview - videos-admin October 2, 2025 22:43 Inactive
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: 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.

📥 Commits

Reviewing files that changed from the base of the PR and between 3768b15 and 3ba0c74.

📒 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.json
  • libs/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 change

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

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

Reworded 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 rename

Parentheses 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 guidance

The refreshed wording conveys the AI-copy warning accurately. All good.

libs/locales/zh-Hans-CN/journeys-ui.json (1)

7-7: Navigation label update confirmed

Switching 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 synced

Even 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 changes

Parenthesis 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"
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 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"
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

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.

Suggested change
"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": "下一個"
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

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.

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

@github-actions
Copy link
Contributor

github-actions bot commented Oct 2, 2025

The latest updates on your projects.

Name Status Preview Updated (UTC)
watch-modern ✅ Ready watch-modern preview Tue Jan 13 16:53:21 NZDT 2026

@github-actions
Copy link
Contributor

github-actions bot commented Oct 2, 2025

The latest updates on your projects.

Name Status Preview Updated (UTC)
journeys ✅ Ready journeys preview Tue Jan 13 16:52:32 NZDT 2026

@github-actions
Copy link
Contributor

github-actions bot commented Oct 2, 2025

The latest updates on your projects.

Name Status Preview Updated (UTC)
videos-admin ✅ Ready videos-admin preview Tue Jan 13 16:53:00 NZDT 2026

@github-actions
Copy link
Contributor

github-actions bot commented Oct 2, 2025

The latest updates on your projects.

Name Status Preview Updated (UTC)
watch ✅ Ready watch preview Tue Jan 13 16:53:34 NZDT 2026

@github-actions
Copy link
Contributor

github-actions bot commented Oct 2, 2025

The latest updates on your projects.

Name Status Preview Updated (UTC)
journeys-admin ✅ Ready journeys-admin preview Tue Jan 13 16:53:56 NZDT 2026

@github-actions github-actions bot temporarily deployed to Preview - journeys October 5, 2025 23:19 Inactive
@github-actions github-actions bot temporarily deployed to Preview - journeys-admin October 5, 2025 23:19 Inactive
@github-actions github-actions bot temporarily deployed to Preview - videos-admin October 5, 2025 23:19 Inactive
@github-actions github-actions bot temporarily deployed to Preview - watch-modern October 5, 2025 23:19 Inactive
@jesus-film-bot
Copy link

Plan Error

the default workspace at path . is currently locked by another command that is running for this pull request.
Wait until the previous command is complete and try again

4 similar comments
@jesus-film-bot
Copy link

Plan Error

the default workspace at path . is currently locked by another command that is running for this pull request.
Wait until the previous command is complete and try again

@jesus-film-bot
Copy link

Plan Error

the default workspace at path . is currently locked by another command that is running for this pull request.
Wait until the previous command is complete and try again

@jesus-film-bot
Copy link

Plan Error

the default workspace at path . is currently locked by another command that is running for this pull request.
Wait until the previous command is complete and try again

@jesus-film-bot
Copy link

Plan Error

the default workspace at path . is currently locked by another command that is running for this pull request.
Wait until the previous command is complete and try again

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

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

📥 Commits

Reviewing files that changed from the base of the PR and between 100dd45 and cd38793.

📒 Files selected for processing (22)
  • libs/locales/am-ET/apps-journeys-admin.json
  • libs/locales/ar-SA/apps-journeys-admin.json
  • libs/locales/bn-BD/apps-journeys-admin.json
  • libs/locales/de-DE/apps-journeys-admin.json
  • libs/locales/es-ES/apps-journeys-admin.json
  • libs/locales/fr-FR/apps-journeys-admin.json
  • libs/locales/hi-IN/apps-journeys-admin.json
  • libs/locales/id-ID/apps-journeys-admin.json
  • libs/locales/ja-JP/apps-journeys-admin.json
  • libs/locales/ko-KR/apps-journeys-admin.json
  • libs/locales/ms-MY/apps-journeys-admin.json
  • libs/locales/my-MM/apps-journeys-admin.json
  • libs/locales/ne-NP/apps-journeys-admin.json
  • libs/locales/pt-BR/apps-journeys-admin.json
  • libs/locales/ru-RU/apps-journeys-admin.json
  • libs/locales/th-TH/apps-journeys-admin.json
  • libs/locales/tl-PH/apps-journeys-admin.json
  • libs/locales/tr-TR/apps-journeys-admin.json
  • libs/locales/ur-PK/apps-journeys-admin.json
  • libs/locales/vi-VN/apps-journeys-admin.json
  • libs/locales/zh-Hans-CN/apps-journeys-admin.json
  • libs/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.json
  • libs/locales/ur-PK/apps-journeys-admin.json
  • libs/locales/es-ES/apps-journeys-admin.json
  • libs/locales/th-TH/apps-journeys-admin.json
  • libs/locales/tr-TR/apps-journeys-admin.json
  • libs/locales/id-ID/apps-journeys-admin.json
  • libs/locales/ms-MY/apps-journeys-admin.json
  • libs/locales/ne-NP/apps-journeys-admin.json
  • libs/locales/bn-BD/apps-journeys-admin.json
  • libs/locales/tl-PH/apps-journeys-admin.json
  • libs/locales/ko-KR/apps-journeys-admin.json
  • libs/locales/de-DE/apps-journeys-admin.json
  • libs/locales/my-MM/apps-journeys-admin.json
  • libs/locales/ru-RU/apps-journeys-admin.json
  • libs/locales/am-ET/apps-journeys-admin.json
  • libs/locales/fr-FR/apps-journeys-admin.json
  • libs/locales/hi-IN/apps-journeys-admin.json
  • libs/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.json
  • libs/locales/ne-NP/apps-journeys-admin.json
  • libs/locales/bn-BD/apps-journeys-admin.json
  • libs/locales/tl-PH/apps-journeys-admin.json
  • libs/locales/my-MM/apps-journeys-admin.json
  • libs/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.json
  • libs/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.json
  • libs/locales/ne-NP/apps-journeys-admin.json
  • libs/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.json
  • libs/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 sound

New 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-safe

Added/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 issues

New 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 consistent

Despite 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 structure

New 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 safe

For 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 intact

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

The 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/_other scheme, 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.

@github-actions github-actions bot temporarily deployed to Preview - videos-admin January 12, 2026 02:27 Inactive
@github-actions github-actions bot temporarily deployed to Preview - journeys-admin January 12, 2026 02:27 Inactive
@github-actions github-actions bot temporarily deployed to Preview - resources January 12, 2026 02:27 Inactive
@github-actions github-actions bot temporarily deployed to Preview - journeys January 12, 2026 02:27 Inactive
@github-actions github-actions bot temporarily deployed to Preview - watch-modern January 12, 2026 02:27 Inactive
@jianwei1
Copy link
Contributor

@coderabbitai resolve

@jianwei1 jianwei1 disabled auto-merge January 13, 2026 03:49
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 13, 2026

✅ Actions performed

Comments resolved.

@jianwei1 jianwei1 enabled auto-merge January 13, 2026 04:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

effort: 1 priority: soon type: chore updating folder structure, initializing projects etc; no production code change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants