Skip to content

fix(locales): correct placeholder syntax in Turkish translations for liquidation and bonus messages#29779

Merged
PatrykLucka merged 1 commit into
mainfrom
fix-turkish-percentage-formatting
May 7, 2026
Merged

fix(locales): correct placeholder syntax in Turkish translations for liquidation and bonus messages#29779
PatrykLucka merged 1 commit into
mainfrom
fix-turkish-percentage-formatting

Conversation

@PatrykLucka
Copy link
Copy Markdown
Contributor

@PatrykLucka PatrykLucka commented May 6, 2026

Description

Turkish copy used %{{variable}} so a literal percent could sit before the interpolated value. i18n-js (used by react-native-i18n) treats % followed by { as the start of a %{name} placeholder, so %{{...}} was parsed as one invalid token and users saw messages like [missing %{{apy}} value] instead of the real value.

All affected tr.json strings were updated to %%{variable}: a literal % plus the supported %{variable} interpolation, preserving “percent before number” wording while matching the same interpolation keys the app already passes (apy, percentage, fee, distance, etc.). No application code changes.

Changelog

CHANGELOG entry: Fixed Turkish strings that showed broken i18n placeholders when a percent sign appeared before an interpolated value.

Related issues

Fixes:

Manual testing steps

Feature: Turkish locale i18n placeholders

  Scenario: APY and bonus copy interpolate with a leading percent
    Given the app language is set to Türkçe (tr)
    And the user opens a surface that shows Money APY label, MetaMask Card APY bullet, earn/mUSD bonus copy, bridge fee disclaimer, swap slippage errors, or perps liquidation distance strings

    When those screens render

    Then no string should contain a substring like "[missing" or "value]"
    And percent-prefixed values should show as "%" immediately followed by the numeric or formatted value (e.g. "%4" for APY), not a raw placeholder token

Screenshots/Recordings

Before

After

Pre-merge author checklist

Performance checks (if applicable)

  • I've tested on Android
    • Ideally on a mid-range device; emulator is acceptable
  • I've tested with a power user scenario
    • Use these power-user SRPs to import wallets with many accounts and tokens
  • I've instrumented key operations with Sentry traces for production performance metrics

For performance guidelines and tooling, see the Performance Guide.

Pre-merge reviewer checklist

  • I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed).
  • I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.

Note

Low Risk
Low risk translation-only change that adjusts placeholder formatting; main risk is minor copy/interpolation regressions if any key names are mismatched.

Overview
Fixes broken Turkish (tr.json) interpolations where a leading percent sign caused i18n placeholders like %{{percentage}} to be parsed incorrectly.

Updates affected strings (perps liquidation/fees, swap/bridge fee and slippage messages, earn/mUSD bonus and APY/cashback labels) to use %%{...} so the UI shows a literal % followed by the interpolated value.

Reviewed by Cursor Bugbot for commit 4a6b57e. Bugbot is set up for automated code reviews on this repo. Configure here.

@PatrykLucka PatrykLucka self-assigned this May 6, 2026
@PatrykLucka PatrykLucka marked this pull request as ready for review May 6, 2026 08:33
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 6, 2026

CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes.

@github-actions github-actions Bot added the size-S label May 6, 2026
@PatrykLucka PatrykLucka added the team-mobile-ux Mobile UX team label May 6, 2026
Copy link
Copy Markdown
Contributor

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 49cb281. Configure here.

Comment thread locales/languages/tr.json
@PatrykLucka PatrykLucka force-pushed the fix-turkish-percentage-formatting branch from 49cb281 to 4a6b57e Compare May 6, 2026 09:28
@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented May 6, 2026

@PatrykLucka PatrykLucka enabled auto-merge May 7, 2026 08:06
@PatrykLucka PatrykLucka added this pull request to the merge queue May 7, 2026
Merged via the queue into main with commit 0a4a7b4 May 7, 2026
64 checks passed
@PatrykLucka PatrykLucka deleted the fix-turkish-percentage-formatting branch May 7, 2026 08:25
@github-actions github-actions Bot locked and limited conversation to collaborators May 7, 2026
@metamaskbotv2 metamaskbotv2 Bot added the release-7.77.0 Issue or pull request that will be included in release 7.77.0 label May 7, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-7.77.0 Issue or pull request that will be included in release 7.77.0 size-S team-mobile-ux Mobile UX team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants