Rehberler//15 dk okuma

Better Auth Nasıl Lokalize Edilir: Hata Mesajları, UI ve E-postalar (Kapsamlı Rehber)

Ali Osman Delismen
Paylaş

Better Auth, TypeScript uygulamaları için hızla tercih edilen kimlik doğrulama framework'ü haline geliyor. Ancak kullanıcılarınız Türkçe, Almanca veya Japonca konuştuğunda "Invalid email or password" göstermek yeterli değil.

Bu rehber, Better Auth'u lokalize etmek için ihtiyacınız olan her şeyi kapsıyor — 48 hata kodunun çevirisinden cookie tabanlı dil algılamaya kadar, yeni dil eklerken sıfır deploy gereksinimi ile.

Better i18n modern uygulamalar için lokalizasyon altyapısıdır. Ücretsiz başlayın — hesabınızı oluşturun.


Kimlik Doğrulama Lokalizasyonunun Üç Katmanı

Better Auth'un çeviri gerektiren üç farklı yüzeyi var:

KatmanNe ÇevrilirNerede Gerçekleşir
Sunucu hatalarıINVALID_EMAIL_OR_PASSWORD → "Geçersiz e-posta veya şifre"Sunucu tarafı plugin
UI bileşenleri"Sign in" → "Giriş Yap"İstemci tarafı AuthLocalization
E-posta şablonlarıDoğrulama e-postaları, şifre sıfırlamaE-posta gönderim callback'leri

Çoğu rehber yalnızca bir katmanı kapsar. Bu rehber üçünü de kapsıyor — çünkü kullanıcılarınız üçüyle de etkileşime giriyor.


Tüm 48 Better Auth Hata Kodu (Çevirileriyle)

Kuruluma geçmeden önce, Better Auth'un döndürebileceği tüm hata kodlarının tam referansı. Bunlar çevirmeniz gereken key'ler:

Kimlik Doğrulama (8 key)

Hata KoduİngilizceTürkçe
INVALID_EMAIL_OR_PASSWORDInvalid email or passwordGeçersiz e-posta veya şifre
INVALID_PASSWORDInvalid passwordGeçersiz şifre
INVALID_EMAILInvalid emailGeçersiz e-posta
INVALID_TOKENInvalid tokenGeçersiz token
TOKEN_EXPIREDToken expiredToken süresi doldu
EMAIL_NOT_VERIFIEDEmail not verifiedE-posta doğrulanmadı
EMAIL_ALREADY_VERIFIEDEmail is already verifiedE-posta zaten doğrulanmış
EMAIL_MISMATCHEmail mismatchE-posta uyuşmuyor

Kullanıcı Yönetimi (8 key)

Hata KoduİngilizceTürkçe
USER_NOT_FOUNDUser not foundKullanıcı bulunamadı
USER_ALREADY_EXISTSUser already exists.Bu kullanıcı zaten mevcut.
USER_ALREADY_EXISTS_USE_ANOTHER_EMAILUser already exists. Use another email.Bu e-posta adresi zaten kayıtlı. Başka bir e-posta deneyin.
INVALID_USERInvalid userGeçersiz kullanıcı
USER_EMAIL_NOT_FOUNDUser email not foundKullanıcı e-postası bulunamadı
USER_ALREADY_HAS_PASSWORDUser already has a password.Kullanıcının zaten bir şifresi var.
FAILED_TO_CREATE_USERFailed to create userKullanıcı oluşturulamadı
FAILED_TO_UPDATE_USERFailed to update userKullanıcı güncellenemedi

Oturum ve Şifre (8 key)

Hata KoduİngilizceTürkçe
SESSION_EXPIREDSession expired.Oturum süresi doldu. Yeniden giriş yapın.
SESSION_NOT_FRESHSession is not freshOturum güncel değil
FAILED_TO_CREATE_SESSIONFailed to create sessionOturum oluşturulamadı
FAILED_TO_GET_SESSIONFailed to get sessionOturum bilgisi alınamadı
PASSWORD_TOO_SHORTPassword too shortŞifre çok kısa
PASSWORD_TOO_LONGPassword too longŞifre çok uzun
PASSWORD_ALREADY_SETUser already has a password setKullanıcının zaten bir şifresi var
CREDENTIAL_ACCOUNT_NOT_FOUNDCredential account not foundKimlik bilgisi hesabı bulunamadı

Yaklaşım 1: Statik Çeviriler (Yerleşik Plugin)

Better Auth, statik çeviri haritası kabul eden resmi bir @better-auth/i18n plugin'i sunar:

import { betterAuth } from "better-auth";
import { i18n } from "@better-auth/i18n";

export const auth = betterAuth({
  plugins: [
    i18n({
      defaultLocale: "en",
      translations: {
        tr: {
          INVALID_EMAIL_OR_PASSWORD: "Geçersiz e-posta veya şifre",
          USER_NOT_FOUND: "Kullanıcı bulunamadı",
          // ... 46 key daha
        },
      },
      detection: ["cookie", "header"],
      localeCookie: "locale",
    }),
  ],
});

Artıları: Sıfır bağımlılık, kutudan çıktığı gibi çalışır.

Eksileri:

  • Her çeviri değişikliği kod değişikliği + deploy gerektirir
  • Çeviriler sunucu kodunuza gömülüdür — dil sayısıyla doğru orantılı büyür
  • Çeviri yönetim arayüzü yok — geliştiriciler JSON düzenler
  • AI destekli çeviri yok — her yeni dil için manuel çalışma

2-3 dil için sorunsuz çalışır. Ancak 10+ dile ölçeklendirirken veya geliştirici olmayan kişilerin çevirileri yönetmesini istediğinizde farklı bir yaklaşım gerekir.


Yaklaşım 2: CDN Tabanlı Çeviriler — Better i18n ile (Önerilen)

Better i18n temelden farklı bir yaklaşım benimser: çeviriler CDN'de yaşar, dashboard'dan yönetilir ve deploy gerektirmeden güncellenir.

Adım 1: Server SDK'yı Kurun

npm install @better-i18n/server

Adım 2: i18n Singleton Oluşturun

// src/i18n.ts
import { createServerI18n } from "@better-i18n/server";

export const i18n = createServerI18n({
  project: "sizin-org/sizin-proje",
  defaultLocale: "en",
});

Adım 3: Better Auth Provider'ı Ekleyin

// src/auth.ts
import { betterAuth } from "better-auth";
import { createBetterAuthProvider } from "@better-i18n/server/providers/better-auth";
import { i18n } from "./i18n";

export const auth = betterAuth({
  plugins: [
    createBetterAuthProvider(i18n, {
      localeCookie: "locale",
    }),
  ],
});

Sunucu tarafında bu kadar. Provider:

  1. Her Better Auth hata yanıtını yakalar
  2. Kullanıcının dilini locale cookie'sinden okur (Accept-Language'a fallback)
  3. Çevirileri CDN'den getirir (bellekte 60 saniye önbelleğe alınır)
  4. Hata mesajını çevirisiyle değiştirir

Better Auth entegrasyon dokümanları →

Adım 4: İstemcide Dili Kaydedin

İstemci tarafında localeCookie prop'unu kullanın — cookie otomatik yazılır:

import { BetterI18nProvider } from "@better-i18n/use-intl";

function App() {
  return (
    <BetterI18nProvider
      project="sizin-org/sizin-proje"
      localeCookie
    >
      <UygulamanIz />
    </BetterI18nProvider>
  );
}

Provider dokümanları →

Adım 5: Çeviri Key'lerini Ekleyin

Tüm 48 key'i eklemenin en hızlı yolu Better i18n MCP sunucusu ve bir AI agent kullanmaktır:

"auth" namespace'inde DEFAULT_AUTH_KEYS'teki tüm key'leri oluştur. İngilizce varsayılanları ayarla, sonra Türkçe, Almanca, İspanyolca, Fransızca ve Japonca'ya çevir.

Adım 6: Dashboard'dan Çevirin

better-i18n.com'a gidin, projenizi açın, "auth" namespace'ine gidin ve çevirin. AI Çevir butonunu kullanarak tüm key'leri saniyeler içinde herhangi bir dile otomatik çevirin.

Kod değişikliği yok. Deploy yok. Çeviriler 60 saniye içinde CDN'de canlı.


Statik vs CDN Tabanlı: Tam Karşılaştırma

Özellik@better-auth/i18nbetter-auth-localizationBetter i18n
Çeviri kaynağıKoda gömülünpm paketiCDN (runtime)
Yeni dil eklemeKod + deploynpm güncellemesi bekleDashboard — deploy yok
Çeviri güncellemeKod + deployAçık kaynak PRDashboard — 60s'de canlı
Yerleşik dillerSadece İngilizce31+ dilHerhangi biri (AI çevirili)
AI çeviriHayırHayırEvet — tek tıkla
Geliştirici olmayanlarHayırHayırEvet — dashboard UI
Paket boyutu etkisiDillerle büyürDil başına ~50KBSıfır — runtime'da çekilir
E-posta şablonu i18nManuelHayırCDN tabanlı (aynı sistem)
MCP / AI agent desteğiHayırHayırEvet — tam MCP sunucusu
Ücretsiz tierN/A (yerleşik)Açık kaynakÜcretsiz başla

Başlarken

Better Auth lokalizasyonunu Better i18n ile kurmak yaklaşık 10 dakika sürer:

  1. better-i18n.com'da ücretsiz hesap oluşturun
  2. Proje oluşturun ve hedef dillerinizi ekleyin
  3. @better-i18n/server kurun ve Better Auth provider'ı ekleyin
  4. Key'leri ekleyin — AI ile MCP sunucusu kullanın veya DEFAULT_AUTH_KEYS'i programatik olarak import edin
  5. Çevirin — dashboard'dan AI çeviri kullanın veya manuel çevirin
  6. Yayınlayın — çeviriler anında CDN'de canlı

Kredi kartı gerekmez. Ücretsiz başlayın.

Hesabınızı oluşturun → · Dokümanları okuyun →

Comments

Loading comments...