chore(i18n): translate text fields to Spanish - #2678
Conversation
|
Warning Rate limit exceeded
You’ve run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After the wait time has elapsed, 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 have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
WalkthroughThis PR adds Spanish localization resources across the application, introducing 800+ new string entries while systematically rebranding loan terminology from "préstamo" to "crédito" throughout existing Spanish UI strings. The changes span core design system foundations, feature-specific terminology alignment, and comprehensive new Spanish translations for loan, savings, recurring deposit, and settings modules. ChangesSpanish Localization & Terminology Rebranding Click to expand changes table
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Important Pre-merge checks failedPlease resolve all errors before merging. Addressing warnings is optional. ❌ Failed checks (1 error)
✅ Passed checks (3 passed)
✨ 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 |
There was a problem hiding this comment.
Actionable comments posted: 6
🧹 Nitpick comments (3)
feature/offline/src/commonMain/composeResources/values-es/strings.xml (1)
30-30: ⚡ Quick winKey naming should use snake_case separators.
The keys
feature_offline_sync_loanrepayment,feature_offline_failed_to_load_loanrepayment, andfeature_offline_no_loanrepayment_to_syncconcatenate "loan" and "repayment" without an underscore separator, reducing readability and deviating from snake_case best practices.♻️ Suggested fix
- <string name="feature_offline_sync_loanrepayment">Sincronizar transacción de pago de crédito</string> + <string name="feature_offline_sync_loan_repayment">Sincronizar transacción de pago de crédito</string> - <string name="feature_offline_failed_to_load_loanrepayment">Fallo al cargar el pago del crédito</string> + <string name="feature_offline_failed_to_load_loan_repayment">Fallo al cargar el pago del crédito</string> - <string name="feature_offline_no_loanrepayment_to_sync">No hay pagos de créditos para sincronizar</string> + <string name="feature_offline_no_loan_repayment_to_sync">No hay pagos de créditos para sincronizar</string>Note: This will require updating references to these keys throughout the codebase.
As per coding guidelines: "Keys must be lowercase and use snake_case".
Also applies to: 36-36, 66-66
🤖 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 `@feature/offline/src/commonMain/composeResources/values-es/strings.xml` at line 30, The resource keys feature_offline_sync_loanrepayment, feature_offline_failed_to_load_loanrepayment, and feature_offline_no_loanrepayment_to_sync violate snake_case by concatenating "loan" and "repayment"; rename them to feature_offline_sync_loan_repayment, feature_offline_failed_to_load_loan_repayment, and feature_offline_no_loan_repayment_to_sync respectively in values-es/strings.xml and update every reference across the codebase (layouts, code, tests, and other string resource files) to use the new keys so there are no unresolved resource lookups.feature/client/src/commonMain/composeResources/values-es/strings.xml (2)
257-258: ⚖️ Poor tradeoffKey naming doesn't follow the required pattern.
The keys
client_performance_history_loan_cycle_count_label,client_performance_history_active_loans_count_label, andclient_performance_history_last_loan_amount_labeldon't start with thefeature_prefix. As per coding guidelines, all keys must follow the patternfeature_{feature_name}_{ui_text_in_snake_case}.♻️ Suggested fix
- <string name="client_performance_history_loan_cycle_count_label">No. de ciclos de crédito: </string> - <string name="client_performance_history_active_loans_count_label">No. de créditos activos: </string> + <string name="feature_client_performance_history_loan_cycle_count_label">No. de ciclos de crédito: </string> + <string name="feature_client_performance_history_active_loans_count_label">No. de créditos activos: </string> - <string name="client_performance_history_last_loan_amount_label">Último monto de crédito: </string> + <string name="feature_client_performance_history_last_loan_amount_label">Último monto de crédito: </string>Note: This will require updating references to these keys throughout the codebase.
As per coding guidelines: "All keys must follow: feature_{feature_name}_{ui_text_in_snake_case}".
Also applies to: 260-260
🤖 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 `@feature/client/src/commonMain/composeResources/values-es/strings.xml` around lines 257 - 258, Rename the localization keys to follow the required pattern by prefixing them with feature_: change client_performance_history_loan_cycle_count_label, client_performance_history_active_loans_count_label, and client_performance_history_last_loan_amount_label to feature_client_performance_history_loan_cycle_count_label, feature_client_performance_history_active_loans_count_label, and feature_client_performance_history_last_loan_amount_label respectively, and update every reference to these keys across the codebase (resource lookups, view bindings, tests, and any string usage) to use the new names so they remain consistent with the guideline feature_{feature_name}_{ui_text_in_snake_case}.
265-265: ⚖️ Poor tradeoffKey naming doesn't follow the required pattern.
The keys
client_profile_general_action_title_loan_accounts,client_profile_loan_account,client_apply_new_applications_loan_account, andclient_apply_new_applications_apply_loan_accountdon't start with thefeature_prefix. As per coding guidelines, all keys must follow the patternfeature_{feature_name}_{ui_text_in_snake_case}.♻️ Suggested fix
- <string name="client_profile_general_action_title_loan_accounts">Cuentas de crédito</string> + <string name="feature_client_profile_general_action_title_loan_accounts">Cuentas de crédito</string> - <string name="client_profile_loan_account">Cuenta de crédito</string> + <string name="feature_client_profile_loan_account">Cuenta de crédito</string> - <string name="client_apply_new_applications_loan_account">Nueva cuenta de crédito</string> + <string name="feature_client_apply_new_applications_loan_account">Nueva cuenta de crédito</string> - <string name="client_apply_new_applications_apply_loan_account">Solicitar nueva cuenta de crédito</string> + <string name="feature_client_apply_new_applications_apply_loan_account">Solicitar nueva cuenta de crédito</string>Note: This will require updating references to these keys throughout the codebase.
As per coding guidelines: "All keys must follow: feature_{feature_name}_{ui_text_in_snake_case}".
Also applies to: 448-448, 463-463, 468-468
🤖 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 `@feature/client/src/commonMain/composeResources/values-es/strings.xml` at line 265, The resource keys client_profile_general_action_title_loan_accounts, client_profile_loan_account, client_apply_new_applications_loan_account, and client_apply_new_applications_apply_loan_account violate the naming guideline — they must be prefixed with feature_{feature_name}_; rename them to follow the pattern (e.g., feature_client_profile_general_action_title_loan_accounts, feature_client_profile_loan_account, feature_client_apply_new_applications_loan_account, feature_client_apply_new_applications_apply_loan_account) and update all references across the codebase (layouts, view models, adapters, tests, and any string lookups) to use the new keys so builds and runtime lookups continue to work.
🤖 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.
Inline comments:
In `@cmp-android/src/main/res/values-es/strings.xml`:
- Line 255: The string resource report_loan_purpose currently includes literal
double quotes around the text; update the <string name="report_loan_purpose">
entry to remove the surrounding quotes so the value is plain text (Propósito del
crédito) and not rendered with quotation marks in the UI.
In `@feature/loan/src/commonMain/composeResources/values-es/strings.xml`:
- Around line 226-384: Many string resource keys (e.g., product_name, next, ok,
charges, collateral_count) do not follow the repository convention; rename them
to the required feature_{feature_name}_{ui_text_in_snake_case} format (use
feature_loan_ as the feature_name here) while keeping the Spanish text unchanged
— for example rename product_name -> feature_loan_product_name, next ->
feature_loan_next, ok -> feature_loan_ok, charges -> feature_loan_charges,
collateral_count -> feature_loan_collateral_count; update all usages across the
codebase that reference the old keys so nothing breaks and ensure naming is
consistently snake_case and matches existing loan-prefixed keys like
loan_new_loan_*.
- Around line 95-117: The resource key feature_loan_make_Repayment uses an
uppercase letter and violates snake_case; rename the key to
feature_loan_make_repayment in the strings file and update all references/usages
in the codebase (search for feature_loan_make_Repayment) so callers use
feature_loan_make_repayment while keeping the existing Spanish text "Realizar
Pago" unchanged; ensure any generated resource accessors (if any) are rebuilt or
references adjusted to the new key.
In `@feature/offline/src/commonMain/composeResources/values-es/strings.xml`:
- Line 14: Rename the resource key feature_offline_sync_loanRepayments to
snake_case feature_offline_sync_loan_repayments in the strings.xml entry and
update every reference to that resource (e.g., usages of
feature_offline_sync_loanRepayments in layout XML, Kotlin/Java resource lookups,
or Compose stringResource calls) to the new name so the app compiles and uses
the updated key consistently.
In
`@feature/recurringDeposit/src/commonMain/composeResources/values-es/feature_recurring_deposit_string.xml`:
- Line 28: Update the Spanish string resources to improve grammar, consistency
and casing: locate the string with name
feature_recurring_deposit_deposit_frequency_same_as_meeting and change its value
from "Frecuencia de Depósito Igual a la reunión de Grupo/Centro" to a more
natural phrasing such as "Frecuencia de depósito igual a la reunión del
grupo/centro" (lowercase "depósito" and adjusted article/casing), and apply
similar grammar/casing/pluralization fixes to the other affected Spanish entries
noted in the review (lines referenced 58, 64, 77) so all resource values follow
consistent Spanish capitalization and wording.
In
`@feature/savings/src/commonMain/composeResources/values-es/feature_savings_strings.xml`:
- Line 70: Remove trailing spaces from label string resources (e.g., the string
with name "feature_savings_nominal") so text values don't include trailing
whitespace; update the resource values for the other affected labels in the same
file (the label strings around lines 77–79) by deleting the ending space
characters and keep UI spacing to layout code instead of embedded spaces in the
string values.
---
Nitpick comments:
In `@feature/client/src/commonMain/composeResources/values-es/strings.xml`:
- Around line 257-258: Rename the localization keys to follow the required
pattern by prefixing them with feature_: change
client_performance_history_loan_cycle_count_label,
client_performance_history_active_loans_count_label, and
client_performance_history_last_loan_amount_label to
feature_client_performance_history_loan_cycle_count_label,
feature_client_performance_history_active_loans_count_label, and
feature_client_performance_history_last_loan_amount_label respectively, and
update every reference to these keys across the codebase (resource lookups, view
bindings, tests, and any string usage) to use the new names so they remain
consistent with the guideline feature_{feature_name}_{ui_text_in_snake_case}.
- Line 265: The resource keys client_profile_general_action_title_loan_accounts,
client_profile_loan_account, client_apply_new_applications_loan_account, and
client_apply_new_applications_apply_loan_account violate the naming guideline —
they must be prefixed with feature_{feature_name}_; rename them to follow the
pattern (e.g., feature_client_profile_general_action_title_loan_accounts,
feature_client_profile_loan_account,
feature_client_apply_new_applications_loan_account,
feature_client_apply_new_applications_apply_loan_account) and update all
references across the codebase (layouts, view models, adapters, tests, and any
string lookups) to use the new keys so builds and runtime lookups continue to
work.
In `@feature/offline/src/commonMain/composeResources/values-es/strings.xml`:
- Line 30: The resource keys feature_offline_sync_loanrepayment,
feature_offline_failed_to_load_loanrepayment, and
feature_offline_no_loanrepayment_to_sync violate snake_case by concatenating
"loan" and "repayment"; rename them to feature_offline_sync_loan_repayment,
feature_offline_failed_to_load_loan_repayment, and
feature_offline_no_loan_repayment_to_sync respectively in values-es/strings.xml
and update every reference across the codebase (layouts, code, tests, and other
string resource files) to use the new keys so there are no unresolved resource
lookups.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 15230f68-ecfb-4dbe-817a-ec6de872cc31
📒 Files selected for processing (13)
cmp-android/src/main/res/values-es/strings.xmlcore/designsystem/src/commonMain/composeResources/values-es/strings.xmlcore/ui/src/commonMain/composeResources/values-es/strings.xmlfeature/center/src/commonMain/composeResources/values-es/strings.xmlfeature/client/src/commonMain/composeResources/values-es/strings.xmlfeature/groups/src/commonMain/composeResources/values-es/strings.xmlfeature/loan/src/commonMain/composeResources/values-es/strings.xmlfeature/offline/src/commonMain/composeResources/values-es/strings.xmlfeature/recurringDeposit/src/commonMain/composeResources/values-es/feature_recurring_deposit_string.xmlfeature/savings/src/commonMain/composeResources/values-es/feature_savings_strings.xmlfeature/search/src/commonMain/composeResources/values-es/feature_search_strings.xmlfeature/settings/src/commonMain/composeResources/values-es/feature_settings_.xmlfeature/settings/src/commonMain/composeResources/values-es/strings.xml
📜 Review details
⏰ 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: PR Checks / Static Analysis Check
🧰 Additional context used
📓 Path-based instructions (1)
**/composeResources/values*/strings.xml
⚙️ CodeRabbit configuration file
**/composeResources/values*/strings.xml: String resource conventions:Naming:
- All keys must follow:
feature_{feature_name}_{ui_text_in_snake_case}Examples:
"In Advance" → feature_loan_in_advance
"Outstanding" → feature_loan_outstanding
- Avoid generic names like: title, text1, label
- The suffix should be a short, readable representation of the UI text
- Avoid multiple keys representing the same UI text
- Keys must be lowercase and use snake_case
Flag:
- Incorrect naming pattern
- Generic or unclear key names
- Duplicate keys for same UI text
Files:
feature/groups/src/commonMain/composeResources/values-es/strings.xmlfeature/center/src/commonMain/composeResources/values-es/strings.xmlcore/designsystem/src/commonMain/composeResources/values-es/strings.xmlfeature/offline/src/commonMain/composeResources/values-es/strings.xmlfeature/settings/src/commonMain/composeResources/values-es/strings.xmlcore/ui/src/commonMain/composeResources/values-es/strings.xmlfeature/loan/src/commonMain/composeResources/values-es/strings.xmlfeature/client/src/commonMain/composeResources/values-es/strings.xml
🔇 Additional comments (10)
feature/recurringDeposit/src/commonMain/composeResources/values-es/feature_recurring_deposit_string.xml (1)
12-80: Great localization coverage for recurring deposit flowNice job on the breadth of Spanish entries in
feature_recurring_deposit_string.xml— the step flow, validation, and charge/interest sections look comprehensively covered.feature/offline/src/commonMain/composeResources/values-es/strings.xml (1)
14-14: LGTM! Spanish translations are consistent.The terminology update from "préstamo" to "crédito" is applied consistently across all loan-related strings, improving alignment with the broader localization effort.
Also applies to: 30-30, 31-31, 34-34, 36-36, 66-66
feature/center/src/commonMain/composeResources/values-es/strings.xml (1)
26-27: LGTM! Spanish translations are consistent and keys follow naming conventions.The terminology update from "préstamos" to "créditos" is applied correctly across all loan-related strings. All string keys on these lines follow the proper
feature_center_{description}snake_case pattern.Also applies to: 30-31
feature/client/src/commonMain/composeResources/values-es/strings.xml (1)
29-29: LGTM! Spanish translations are consistent.The terminology update from "préstamo" to "crédito" is applied consistently across all loan-related strings, maintaining alignment with the broader Spanish localization effort throughout the PR.
Also applies to: 43-43, 257-258, 260-260, 265-265, 448-448, 463-463, 468-468
feature/savings/src/commonMain/composeResources/values-es/feature_savings_strings.xml (6)
1-11: XML header and license structure look good.The UTF-8 encoding declaration is appropriate for Spanish text, and the MPL 2.0 license header is correctly formatted.
142-142: Format placeholder correctly preserved.The Android format specifier
%1$dis correctly preserved in the Spanish translation with appropriate word order for Spanish.
12-141: Spanish translation quality and terminology consistency look solid.The translations use appropriate financial terminology consistently throughout:
- Proper banking terminology ("cuenta de ahorro", "depósito", "retiro")
- Consistent term usage across related strings
- Correct Spanish orthography and diacritics
- Appropriate formality level for a financial application
1-148: Translation file is complete and matches English source.The Spanish strings file contains all 126 keys from the English source file with no missing or extraneous entries, confirming full key coverage and translation completeness.
39-39: No action needed—the asterisk is part of the actual menu label.The dialog message correctly references the menu item
'Sincronización Offline *'with the asterisk. This matches the English source ('Offline Sync *'at feature/savings/src/commonMain/composeResources/values/feature_savings_strings.xml:40) and the actual menu item definition infeature/offline/src/commonMain/composeResources/values-es/strings.xml:13, which explicitly defines the label asSincronización sin conexión *. The asterisk is intentional and part of the UI design, not a translation artifact.
44-44: No translation issue found — the Spanish translation is correct.The English source string is "Review Payment Details" (not "Review Transaction Details"). The Spanish translation "Revisar Detalles del Pago" accurately translates the English source, so no change is needed.
The mismatch between the key name (
review_transaction_details) and the value ("Payment Details") exists at the English level, not in the Spanish translation. If consistency is desired, that would require changing the English source, not the Spanish.> Likely an incorrect or invalid review comment.
|



Fixes - MIFOSAC-778
Didn't create a Jira ticket, click here to create new.
Please Add Screenshots If there are any UI changes.
Please make sure these boxes are checked before submitting your pull request - thanks!
Run the static analysis check
./gradlew checkorci-prepush.shto make sure you didn't break anythingIf you have multiple commits please combine them into one commit by squashing them.