[codex] split localization messages#13
Conversation
|
Warning Review limit reached
More reviews will be available in 53 minutes and 34 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (33)
WalkthroughThis PR migrates the localization architecture from monolithic locale files to feature-split message catalogs, updates Inlang configuration and documentation, and adds infrastructure ignore patterns for build tooling and CI workflows. ChangesLocalization Architecture Refactor
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 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 |
Fallow audit reportNo GitHub PR/MR findings. Generated by fallow. |
2570a3c to
47cb6b1
Compare
There was a problem hiding this comment.
Pull request overview
This PR refactors localization sources from single per-locale JSON catalogs into feature-scoped catalogs, updating Inlang/Paraglide configuration and documentation so the app can keep using the existing m.some_key() API while improving scalability and ownership.
Changes:
- Split
messages/en.jsonandmessages/es.jsoninto feature-scoped files undermessages/en/andmessages/es/. - Updated
project.inlang/settings.jsonpathPatternso Inlang/Paraglide compiles from the split files in a defined merge order. - Updated localization docs and small quality/CI ignore-pattern + artifact-handling tweaks.
Reviewed changes
Copilot reviewed 34 out of 34 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| vite.config.ts | Adds formatter/linter ignore patterns for generated/vendor-like files. |
| project.inlang/settings.json | Switches pathPattern to an ordered list of per-feature message files. |
| messages/en/core.json | New split English core catalog (schema + shared keys). |
| messages/en/auth.json | New split English auth catalog. |
| messages/en/settings.json | New split English settings catalog. |
| messages/en/dashboard.json | New split English dashboard catalog. |
| messages/en/articles.json | New split English articles catalog. |
| messages/en/connections.json | New split English connections catalog. |
| messages/en/chat.json | New split English chat catalog. |
| messages/en/items.json | New split English items catalog (includes plural message). |
| messages/en/timeline.json | New split English timeline catalog. |
| messages/en/usage.json | New split English usage catalog. |
| messages/en/pricing.json | New split English pricing catalog. |
| messages/en/timer.json | New split English timer catalog. |
| messages/en/calculator.json | New split English calculator catalog. |
| messages/es/core.json | New split Spanish core catalog (schema + shared keys). |
| messages/es/auth.json | New split Spanish auth catalog. |
| messages/es/settings.json | New split Spanish settings catalog. |
| messages/es/dashboard.json | New split Spanish dashboard catalog. |
| messages/es/articles.json | New split Spanish articles catalog. |
| messages/es/connections.json | New split Spanish connections catalog. |
| messages/es/chat.json | New split Spanish chat catalog. |
| messages/es/items.json | New split Spanish items catalog (includes plural message). |
| messages/es/timeline.json | New split Spanish timeline catalog. |
| messages/es/usage.json | New split Spanish usage catalog. |
| messages/es/pricing.json | New split Spanish pricing catalog. |
| messages/es/timer.json | New split Spanish timer catalog. |
| messages/es/calculator.json | New split Spanish calculator catalog. |
| messages/en.json | Removes old monolithic English catalog. |
| messages/es.json | Removes old monolithic Spanish catalog. |
| docs/localization.md | Updates docs to describe the new split-catalog workflow and merge/export caveats. |
| .github/workflows/test.yml | Simplifies moving Fallow artifacts via find. |
| .config/mise/conf.d/tasks-quality.toml | Adds prepare:msw to the CI task sequence. |
| .config/fallow.toml | Ignores scripts/steiger/** for Fallow findings. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| 1. Add locale code in `project.inlang/settings.json` (`locales` array). | ||
| 2. Add `messages/<locale>.json`. | ||
| 2. Add `messages/<locale>/*.json` matching the existing feature files. | ||
| 3. Add `language_<locale>` keys to all message files. |
| "./messages/{locale}/usage.json", | ||
| "./messages/{locale}/pricing.json", | ||
| "./messages/{locale}/timer.json", | ||
| "./messages/{locale}/calculator.json" | ||
| ] |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
messages/en/connections.json (1)
2-2: ⚡ Quick winStandardize ellipsis usage for consistency.
The file mixes the ellipsis character (…) in
"Testing connection…"and"Reconnecting…"with three periods (...) in"Search connections...". For consistency across the UI, consider standardizing on one approach.Typical convention: use "..." for search placeholders and either "…" or "..." for loading states, but keep it consistent within the same file and across similar message types.
🎨 Proposed fix to standardize on three periods
- "connection_testing": "Testing connection…", + "connection_testing": "Testing connection...", "connection_successful": "Connection successful", - "connection_reconnecting": "Reconnecting…", + "connection_reconnecting": "Reconnecting...",Also applies to: 4-4, 21-21
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@messages/en/connections.json` at line 2, Standardize ellipsis usage by replacing the single-character ellipsis (…) with three periods (...) for the JSON message keys shown; update the value for "connection_testing" from "Testing connection…" to "Testing connection..." and make the same change for the similar keys mentioned (e.g., the "reconnecting" entry and the "Search connections..." placeholder) so all messages in this file use the same three-period format.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@messages/en/connections.json`:
- Line 2: Standardize ellipsis usage by replacing the single-character ellipsis
(…) with three periods (...) for the JSON message keys shown; update the value
for "connection_testing" from "Testing connection…" to "Testing connection..."
and make the same change for the similar keys mentioned (e.g., the
"reconnecting" entry and the "Search connections..." placeholder) so all
messages in this file use the same three-period format.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 91cd156e-e680-46fb-b822-e354e558ebc0
📒 Files selected for processing (34)
.config/fallow.toml.config/mise/conf.d/tasks-quality.toml.github/workflows/test.ymldocs/localization.mdmessages/en.jsonmessages/en/articles.jsonmessages/en/auth.jsonmessages/en/calculator.jsonmessages/en/chat.jsonmessages/en/connections.jsonmessages/en/core.jsonmessages/en/dashboard.jsonmessages/en/items.jsonmessages/en/pricing.jsonmessages/en/settings.jsonmessages/en/timeline.jsonmessages/en/timer.jsonmessages/en/usage.jsonmessages/es.jsonmessages/es/articles.jsonmessages/es/auth.jsonmessages/es/calculator.jsonmessages/es/chat.jsonmessages/es/connections.jsonmessages/es/core.jsonmessages/es/dashboard.jsonmessages/es/items.jsonmessages/es/pricing.jsonmessages/es/settings.jsonmessages/es/timeline.jsonmessages/es/timer.jsonmessages/es/usage.jsonproject.inlang/settings.jsonvite.config.ts
💤 Files with no reviewable changes (2)
- messages/en.json
- messages/es.json
47cb6b1 to
09435a4
Compare
What changed
pathPatternconfiguration so Paraglide merges the split catalogs.Why
Large per-locale JSON files do not scale well as the app grows. This keeps localization source files closer to feature ownership while preserving the existing
m.some_key()Paraglide API.Validation
bun run preparebun run typecheckmise run lint:paraglide-tree-shakingSummary by CodeRabbit
New Features
Documentation
Chores