Files
sure/config/locales/models/entry
Erkan Doğan 209622f320 feat(i18n): complete Turkish (tr) locale coverage and Türkiye formatting (#2737)
* feat(i18n): complete Turkish (tr) locale coverage and Türkiye formatting

Brings the Turkish (tr) locale to full key parity with the base English
locale and finalizes Türkiye-appropriate number/currency/date formatting.

Locale coverage:
- Add 64 missing tr.yml files and complete 61 partial ones, covering all
  views, models, mailers, breadcrumbs, doorkeeper, and defaults namespaces
  (125 tr.yml files total, matching the en.yml set 1:1 by key).
- Translate all user-facing values to natural Turkish (formal "siz"
  register), consistent with existing tr terminology (Hesap, İşlem, Bütçe,
  Kategori, Transfer, Satıcı, Bakiye, Para Birimi, ...). Brand names
  (Sure, Plaid, SimpleFIN, Brex, Questrade, etc.) and format strings are
  intentionally left in English.

Türkiye formatting:
- defaults/tr.yml: number.human decimal units translated
  (Bin/Milyon/Milyar/Trilyon/Katrilyon; Byte -> Bayt).
- views/application/tr.yml already provides TRY currency (₺, separator
  ",", delimiter "."); DD.MM.YYYY date format is selectable via
  Family::DATE_FORMATS.

Fixes:
- Correct broken interpolation in 5 tr keys where "%%{percent}" rendered
  as the literal string instead of the value (goals.show.ring.aria_label,
  reports.print.summary.of_income/vs_prior,
  reports.trends.insight_higher_weekday/weekend). Aligned to en's working
  "%{percent}%" pattern so the percent value now interpolates correctly
  (verified at runtime via I18n.t).

Verification:
- i18n-tasks: tr has full key parity with en. The 33 keys reported as
  "missing" for tr are pre-existing upstream app-level gaps (referenced
  in views/controllers but defined in no locale, including en), not a
  tr deficiency.
- check-consistent-interpolations: tr placeholder sets match en for all
  shared keys.
- Runtime render checks via `rails runner` confirm interpolations produce
  expected output (e.g. "Hedef 50% tamamlandı", "gelirin 30%'i").

Builds on prior Turkish PRs #4 and #31 (musabustun, 2025-07/08) by
backfilling all keys added to en since then and fixing interpolation
regressions.

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(i18n): address tr locale review findings on PR #2737

Restore Turkish number.currency.format keys (format/unit/delimiter/separator/
precision) that were dropped — number_to_currency without explicit unit: now
renders "1.234,56 ₺" again. Plus translation fixes from CodeRabbit/Codex review:

- doorkeeper.tr.yml: translate go_back/authorization_code_label/copy_instructions;
  use %d.%m.%Y date_format for authorized_applications.created_at
- brex_item: official_hosts_only now says 'cannot be blank' (was contradictory)
- category/deletions: informal -> formal Turkish (silin/atayın/atayabilirsiniz)
- goal_pledges/reports: percent possessive uses 'yüzde %{percent}'i' form
- ibkr_items: Interactive Brokers'tan (hard-consonant ablative)
- indexa_capital_items: savings -> 'Tasarruf Hesabı' (was 'Vadeli Hesap')
- kraken_items: 'spot işlem gerçekleşmeleri' (was 'dolguları')
- properties: 'Metrekare' (was 'Metre Kare')
- registrations: 'vb.' (was 'etc')
- settings/api_keys: drop stray 'Maybe' brand word
- settings: 'Go to ...' -> '<a>...</a> sayfasına gidin'
- simplefin_items + simplefin_account: 'SimpleFin' -> 'SimpleFIN' brand casing
- transactions: 'Kopya?'/'İncele' (was truncated 'Kop?'/'İnc')
- invitation_mailer/invitations: reword to avoid hard-coded case suffixes on
  interpolations (Turkish vowel harmony)

Verified: i18n-tasks health clean for tr, all YAML parses, runtime render checks
pass (currency, percent, invitation, doorkeeper keys).

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(i18n): restore YAML arrays stringified in tr locale

Two keys were serialized as strings containing JSON-array literals instead
of YAML lists, causing NoMethodError (undefined method 'each' for String):

- settings.securities.show.encryption_warning.keys
  -> crashed Settings::Securities#show (t(...).each)
- recurring_transactions.info.triggers

Both now proper YAML arrays matching en. Verified via runtime I18n.t
(Array#each works) and an en-vs-tr type-mismatch scan (no remaining
array/string regressions; the only structural diffs are the pre-existing
plain-string million/trillion units in origin/main).

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(i18n): restore missing 2FA keys, off status key, and moniker placeholders in tr locale

- Add 5 missing settings.securities.show 2FA keys in config/locales/views/settings/securities/tr.yml
- Fix settings.providers.status.'false' key back to off in config/locales/views/settings/tr.yml
- Restore %{moniker} placeholders in account, registrations, settings, invitations, and merchants tr files
- Remove double percent sign in goals velocity_delta_down and velocity_delta_up

* fix(i18n): update settings security page_title from 'Menkul Kıymet' to 'Güvenlik'

---------

Co-authored-by: erkdgn <erkdgn@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
2026-07-21 05:49:03 +02:00
..
2025-11-14 13:38:16 +01:00
2025-11-12 20:02:14 +01:00
2025-11-24 00:29:03 +01:00
2026-07-08 08:10:18 +02:00
2025-12-23 11:21:53 +01:00