Ç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.
ls() Ve t() (Kısa Hatırlatma)
Section titled “ls() Ve t() (Kısa Hatırlatma)”| Fonksiyon | Ne 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ı.
common.ts — Site Geneli Metinler
Section titled “common.ts — Site Geneli Metinler”Dosya: src/i18n/common.ts
| Alan | Kullanı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,metaDescription—BaseLayoutSEOheading,lead— sayfa üstüinfoTitle,phoneLabel,emailLabel, … — bilgi kartınameLabel,messageLabel,submit— formtoastMessage— demo gönderim bildirimi
Bileşen: ContactPage.astro → t(contactPage.heading, locale) vb.
İletişim numarası burada değil — src/config/contact.ts (Site Bilgileri).
Yeni Sayfa Metni Nereye?
Section titled “Yeni Sayfa Metni Nereye?”| Senaryo | Tercih |
|---|---|
| Tam sayfa (Contact; Hakkımızda henüz yok) | Yeni src/i18n/pages/ornek.ts |
| Çok kısa tek sayfa | Nadiren 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).
URL Slug Çevirisi (routes.ts)
Section titled “URL Slug Çevirisi (routes.ts)”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.
Dört Dil Zorunluluğu
Section titled “Dört Dil Zorunluluğu”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.
İleri Not: Yeni Dil Eklemek (Nadir)
Section titled “İleri Not: Yeni Dil Eklemek (Nadir)”Yeni dil (ör. es) nadiren gerekir; iş yükü büyüktür:
src/config/locales.ts— locale listesi, prefix- Tüm
ls()çağrılarına beşinci parametre (veya yapıyı genişletme) routes.ts— hersitePagesiçin yeni path- Yeni
src/pages/es/...sarmalayıcıları - Blog filtreleri ve hreflang
Bu rehberde adım adım anlatılmaz; mevcut dört dil operasyonel hedeftir.
Ne Değiştirirse Ne Olur
Section titled “Ne Değiştirirse Ne Olur”| Değişiklik | Sonuç |
|---|---|
common.nav.contact TR metni | Menüde «İletişim» (tüm TR sayfalarında) |
contactPage.submit | Yalnızca Contact form butonu |
routes.ts TR path | URL değişir; metin dosyası şart değil |
Eksik ls dili | Build/type hatası veya yanlış fallback |
Yapmayın
Section titled “Yapmayın”- Telefon/e-posta metnini
i18n/pagesiç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ı.
İlgili Rehberler
Section titled “İlgili Rehberler”- Çoklu Dil Kullanımı — routing, hreflang
- Sayfa Ekle / Kaldır — sayfa +
i18n/pages - Navigasyon —
common.nav - Formlar (Demo) — Contact form metinleri
- SEO / Meta —
metaTitle/ description
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.