Files
sure/config/locales/defaults/tr.yml
Erkan Doğan 6a41b26280 fix(i18n): resolve close button label in goals dialog across all locales (#2741)
`app/views/goals/new.html.erb` called `t("common.close")`, but that key is
only defined at the top level in `ru`, `tr` and `zh-CN`. The canonical key is
`defaults.common.close`, which is defined in `en` (and therefore resolves in
every locale via `config.i18n.fallbacks`) and is already used by
`settings/providers/_drawer_header.html.erb` and
`shared/notifications/_sync_toast.html.erb`.

Because `en` has no top-level `common.close`, the fallback had nothing to fall
back to, so the lookup failed everywhere except those three locales. The
failed lookup was passed straight into the button's `title` and `aria_label`
attributes, injecting literal markup into text meant for screen readers:

    t("common.close") @ en
    => "<span class=\"translation_missing\" title=\"translation missing: en.common.close, locale: en\">Close</span>"

Point the view at `defaults.common.close` and drop the now-dead top-level
`common:` blocks from `ru`, `tr` and `zh-CN`. No `en.yml` changes needed.

Verified with `bin/rails runner`: `defaults.common.close` resolves in en, ca,
fr, it, ru, tr, zh-CN, and falls back cleanly to "Close" for de/es. No
`t("common.*")` call sites remain in `app/`.

Closes #2740

Co-authored-by: erkdgn <erkdgn@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 09:00:18 +02:00

229 lines
5.5 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
tr:
activerecord:
errors:
messages:
record_invalid: 'Doğrulama başarısız oldu: %{errors}'
restrict_dependent_destroy:
has_many: Bağlı kayıtlar %{record} bulunduğu için kayıt silinemedi
has_one: Bağlı bir kayıt %{record} bulunduğu için kayıt silinemedi
date:
abbr_day_names:
- Pzr
- Pzt
- Sal
- Çrş
- Prş
- Cum
- Cts
abbr_month_names:
-
- Oca
- Şub
- Mar
- Nis
- May
- Haz
- Tem
- Ağu
- Eyl
- Eki
- Kas
- Ara
day_names:
- Pazar
- Pazartesi
- Salı
- Çarşamba
- Perşembe
- Cuma
- Cumartesi
formats:
default: "%d.%m.%Y"
long: "%e %B %Y %A"
month_year: "%B %Y"
short: "%e %b"
short_month_year: "%b %Y"
month_names:
-
- Ocak
- Şubat
- Mart
- Nisan
- Mayıs
- Haziran
- Temmuz
- Ağustos
- Eylül
- Ekim
- Kasım
- Aralık
order:
- :day
- :month
- :year
datetime:
distance_in_words:
about_x_hours:
one: yaklaşık %{count} saat
other: yaklaşık %{count} saat
about_x_months:
one: yaklaşık %{count} ay
other: yaklaşık %{count} ay
about_x_years:
one: yaklaşık %{count} yıl
other: yaklaşık %{count} yıl
almost_x_years:
one: neredeyse %{count} yıl
other: neredeyse %{count} yıl
half_a_minute: yarım dakika
less_than_x_minutes:
one: "%{count} dakikadan az"
other: "%{count} dakikadan az"
less_than_x_seconds:
one: "%{count} saniyeden az"
other: "%{count} saniyeden az"
over_x_years:
one: "%{count} yıldan fazla"
other: "%{count} yıldan fazla"
x_days:
one: "%{count} gün"
other: "%{count} gün"
x_minutes:
one: "%{count} dakika"
other: "%{count} dakika"
x_months:
one: "%{count} ay"
other: "%{count} ay"
x_seconds:
one: "%{count} saniye"
other: "%{count} saniye"
x_years:
one: "%{count} yıl"
other: "%{count} yıl"
prompts:
day: Gün
hour: Saat
minute: Dakika
month: Ay
second: Saniye
year: Yıl
defaults:
brand_name: "%{brand_name}"
common:
close: Kapat
product_name: "%{product_name}"
errors:
format: "%{attribute} %{message}"
messages:
accepted: kabul edilmeli
blank: doldurulmalı
confirmation: "%{attribute} teyidiyle uyuşmuyor"
empty: doldurulmalı
equal_to: tam olarak %{count} olmalı
even: çift olmalı
exclusion: kullanılamaz
greater_than: "%{count} sayısından büyük olmalı"
greater_than_or_equal_to: "%{count} sayısına eşit veya büyük olmalı"
in: "%{count} içinde olmalı"
inclusion: kabul edilen bir kelime değil
invalid: geçersiz
less_than: "%{count} sayısından küçük olmalı"
less_than_or_equal_to: "%{count} sayısına eşit veya küçük olmalı"
model_invalid: 'Doğrulama başarısız oldu: %{errors}'
not_a_number: geçerli bir sayı değil
not_an_integer: tam sayı olmalı
odd: tek olmalı
other_than: "%{count} karakterden oluşamaz"
present: boş bırakılmalı
required: doldurulmalı
taken: hali hazırda kullanılmakta
too_long:
one: çok uzun (en fazla %{count} karakter)
other: çok uzun (en fazla %{count} karakter)
too_short:
one: çok kısa (en az %{count} karakter)
other: çok kısa (en az %{count} karakter)
wrong_length:
one: hatalı uzunlukta (%{count} karakter olmalı)
other: hatalı uzunlukta (%{count} karakter olmalı)
template:
body: 'Lütfen aşağıdaki hataları düzeltiniz:'
header:
one: "%{count} hata oluştuğu için %{model} kaydedilemedi"
other: "%{count} hata oluştuğu için %{model} kaydedilemedi"
global:
expand: Genişlet
helpers:
select:
default_label: Seç...
prompt: Lütfen seçiniz
search_placeholder: Ara
submit:
create: "%{model} Ekle"
submit: "%{model} Kaydet"
update: "%{model} Güncelle"
number:
currency:
format:
delimiter: "."
format: "%n %u"
precision: 2
separator: ","
significant: false
strip_insignificant_zeros: false
unit: "₺"
format:
delimiter: "."
precision: 2
round_mode: default
separator: ","
significant: false
strip_insignificant_zeros: false
human:
decimal_units:
format: "%n %u"
units:
billion: Milyar
million: Milyon
quadrillion: Katrilyon
thousand: Bin
trillion: Trilyon
unit: ''
format:
delimiter: "."
precision: 3
significant: true
strip_insignificant_zeros: true
storage_units:
format: "%n %u"
units:
byte:
one: Bayt
other: Bayt
eb: EB
gb: GB
kb: KB
mb: MB
pb: PB
tb: TB
percentage:
format:
delimiter: ''
format: "%%n"
precision:
format:
delimiter: "."
support:
array:
last_word_connector: " ve "
two_words_connector: " ve "
words_connector: ", "
time:
am: öğleden önce
formats:
default: "%a %d.%b.%y %H:%M"
long: "%e %B %Y, %A, %H:%M"
short: "%e %B, %H:%M"
pm: öğleden sonra