Skip to content

Çeviri Metinleri

Bu belge içerik metinlerinin nasıl yönetildiğini anlatır: menü, footer, sayfa başlıkları, form etiketleri.

Sistem i18n (locale routing, hreflang, getLangFromUrl) Çoklu Dil Kullanımı rehberindedir — burada tekrarlanmaz.


FonksiyonNe zaman
ls(en, tr, de, fr)Metin tanımı — dört dil tek satırda
t(obj, locale)Astro/TS içinde o anki dilde string

Tip: LS = locale anahtarlı obje ({ en, tr, de, fr }).

import { ls, t } from '@/i18n/utils';
const heading = ls('Contact', 'İletişim', 'Kontakt', 'Contact');
// kullanım: t(heading, locale)

Eksik dil anahtarı build veya runtime’da hata riski taşır — her ls dörtlüsü tam olmalı.


Dosya: src/i18n/common.ts

AlanKullanıldığı yer
common.nav.*Header/footer menü etiketleri (home, blog, contact)
common.footer.*Footer başlık ve telif (quickLinks, emailCta, …)
common.blog.*Blog liste ve boş durum metinleri

Navigasyon nav.ts yalnızca referans tutar; görünen metin t(common.nav.contact, locale) ile gelir — Navigasyon.


i18n/pages/contact.ts — Sayfaya Özel Copy

Section titled “i18n/pages/contact.ts — Sayfaya Özel Copy”

Contact sayfası metinleri merkezi config’te değil, sayfa dosyasında:

Dosya: src/i18n/pages/contact.ts

Örnek alanlar:

  • metaTitle, metaDescriptionBaseLayout SEO
  • heading, lead — sayfa üstü
  • infoTitle, phoneLabel, emailLabel, … — bilgi kartı
  • nameLabel, messageLabel, submit — form
  • toastMessage — demo gönderim bildirimi

Bileşen: ContactPage.astrot(contactPage.heading, locale) vb.

İletişim numarası burada değil — src/config/contact.ts (Site Bilgileri).


SenaryoTercih
Tam sayfa (Contact; Hakkımızda henüz yok)Yeni src/i18n/pages/ornek.ts
Çok kısa tek sayfaNadiren bileşen içi copy — büyüyünce pages/*.ts’e taşıyın

Kalıp:

export const ornekPage = {
metaTitle: ls('Contact — Falcon', 'İletişim — Falcon', …),
heading: ls('Contact', 'İletişim', …),
} as const;

Ortak bileşen: t(ornekPage.heading, locale).


Metin çevirisi routes.ts ile karıştırılmaz.

Türkçe path /tr/iletisim, İngilizce /contact — ikisi de pageId: 'contact'. Slug’ı routes.ts’te tanımlarsınız; i18n/pages yalnızca ekrandaki kelimeler.

Yanlış: /tr/contact (İngilizce slug + TR prefix) — SEO ve kullanıcı beklentisi için yerel slug kullanın.


Falcon şablonu en, tr, de, fr ile gelir.

  • Her yeni ls(...) satırında dört string
  • Yeni menü etiketi → common.nav + dört dil
  • Build şeması locale enum’u kontrol eder (Çoklu Dil Kullanımı)

Eksik dil: TypeScript/ içerik hatası veya boş UI.


Yeni dil (ör. es) nadiren gerekir; iş yükü büyüktür:

  1. src/config/locales.ts — locale listesi, prefix
  2. Tüm ls() çağrılarına beşinci parametre (veya yapıyı genişletme)
  3. routes.ts — her sitePages için yeni path
  4. Yeni src/pages/es/... sarmalayıcıları
  5. Blog filtreleri ve hreflang

Bu rehberde adım adım anlatılmaz; mevcut dört dil operasyonel hedeftir.


DeğişiklikSonuç
common.nav.contact TR metniMenüde «İletişim» (tüm TR sayfalarında)
contactPage.submitYalnızca Contact form butonu
routes.ts TR pathURL değişir; metin dosyası şart değil
Eksik ls diliBuild/type hatası veya yanlış fallback

  • Telefon/e-posta metnini i18n/pages içine yazmayın — contact.ts.
  • Her dil için ayrı Astro dosyasında uzun paragraf kopyalamayın — ortak bileşen + t().
  • Locale routing kurallarını burada yeniden anlatmayın — Çoklu Dil Kullanımı.


Operasyonel çeviri: ls tanımı, t kullanımı. Ortak: common.ts. Sayfa: i18n/pages/*.ts. URL slug: routes.ts. Dört dil eksiksiz. Contact canlı örnek.