Next.js uygulamaları için uluslararasılaştırma (i18n) konusunda en iyi çözüm
Next.js uygulamanızı yeni pazarlara genişletmeyi mi düşünüyorsunuz? TacoTranslate, Next.js projenizi yerelleştirmeyi inanılmaz derecede kolaylaştırır ve size zahmet olmadan küresel bir kitleye ulaşma imkanı sunar.
Next.js için TacoTranslate'i neden seçmelisiniz?
- Sorunsuz Entegrasyon: Özellikle Next.js uygulamaları için tasarlanan TacoTranslate, mevcut iş akışınıza zahmetsizce entegre olur.
- Otomatik Metin Toplama: JSON dosyalarını elle yönetmeye son. TacoTranslate, kod tabanınızdaki metinleri otomatik olarak toplar.
- Yapay Zeka Destekli Çeviriler: Uygulamanızın tonuna uygun, bağlama duyarlı ve doğru çeviriler sağlamak için yapay zekâ gücünden yararlanın.
- Anında Dil Desteği: Yeni diller için desteği sadece bir tıklamayla ekleyin; böylece uygulamanız küresel olarak erişilebilir hale gelir.
Nasıl çalışır
Dünya giderek daha küreselleştikçe, web geliştiricilerinin farklı ülkelerden ve kültürlerden gelen kullanıcılara hitap edebilen uygulamalar geliştirmeleri giderek daha önemli hale geliyor. Bunu başarmanın ana yollarından biri, uygulamanızı farklı dillere, para birimlerine ve tarih formatlarına uyarlamanıza olanak tanıyan uluslararasılaştırma (i18n)'dır.
Bu öğreticide, React Next.js uygulamanıza sunucu tarafı render (SSR) ile uluslararasılaştırmayı nasıl ekleyeceğimizi inceleyeceğiz. TL;DR: Tam örneği buradan görebilirsiniz.
Bu kılavuz, Pages Router kullanan Next.js uygulamaları içindir.
Eğer App Router kullanıyorsanız, lütfen bunun yerine bu kılavuzu inceleyin.
Adım 1: Bir i18n kütüphanesi yükleyin
Next.js uygulamanızda uluslararasılaştırmayı uygulamak için önce bir i18n kütüphanesi seçeceğiz. Birkaç popüler kütüphane var, bunlar arasında next-intl. Ancak, bu örnekte TacoTranslate kullanacağız.
TacoTranslate, gelişmiş yapay zeka kullanarak dizelerinizi herhangi bir dile otomatik olarak çevirir ve sizi JSON dosyalarının zahmetli yönetiminden kurtarır.
Terminalinizde npm kullanarak yükleyelim:
npm install tacotranslateAdım 2: Ücretsiz bir TacoTranslate hesabı oluşturun
Modülü yüklediğinize göre, şimdi TacoTranslate hesabınızı, bir çeviri projesi ve ilgili API anahtarlarını oluşturma zamanı. Buradan hesap oluşturun. Ücretsizdir ve kredi kartı eklemenizi gerektirmez.
TacoTranslate uygulama arayüzünde bir proje oluşturun ve API anahtarları sekmesine gidin. Bir read anahtarı ve bir read/write anahtarı oluşturun. Bunları ortam değişkenleri olarak kaydedeceğiz. read anahtarı bizim public olarak adlandırdığımız anahtardır ve read/write anahtarı secret olarak adlandırdığımız anahtardır. Örneğin, bunları projenizin kök dizinindeki .env dosyasına ekleyebilirsiniz.
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010Gizli read/write API anahtarını istemci tarafı üretim ortamlarına asla sızdırmayın.
Ayrıca iki ortam değişkeni daha ekleyeceğiz: TACOTRANSLATE_DEFAULT_LOCALE ve TACOTRANSLATE_ORIGIN.
TACOTRANSLATE_DEFAULT_LOCALE: Varsayılan yedek yerel ayar kodu. Bu örnekte bunu İngilizce içinenolarak ayarlayacağız.TACOTRANSLATE_ORIGIN: Dizelerinizin saklanacağı “klasör”, örneğin web sitenizin URL’si gibi. Orijinler hakkında daha fazla bilgi için buraya bakın.
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.comAdım 3: TacoTranslate'i Kurma
TacoTranslate'i uygulamanızla entegre etmek için, önceki API anahtarlarını kullanarak bir istemci oluşturmanız gerekecek. Örneğin, /tacotranslate-client.js adlı bir dosya oluşturun.
const {default: createTacoTranslateClient} = require('tacotranslate');
const tacoTranslate = createTacoTranslateClient({
apiKey:
process.env.TACOTRANSLATE_SECRET_API_KEY ??
process.env.TACOTRANSLATE_PUBLIC_API_KEY ??
process.env.TACOTRANSLATE_API_KEY ??
'',
projectLocale: process.env.TACOTRANSLATE_DEFAULT_LOCALE ?? '',
});
module.exports = tacoTranslate;Yakında TACOTRANSLATE_API_KEY otomatik olarak tanımlanacak.
İstemciyi ayrı bir dosyada oluşturmak, daha sonra tekrar kullanmayı kolaylaştırır. Şimdi, özel /pages/_app.tsx kullanarak TacoTranslate sağlayıcısını ekleyeceğiz.
import React from 'react';
import {type AppProps} from 'next/app';
import {type Origin, type Locale, type Localizations} from 'tacotranslate';
import TacoTranslate from 'tacotranslate/react';
import TacoTranslateHead from 'tacotranslate/next/head';
import tacoTranslate from '../tacotranslate-client';
type PageProperties = {
origin: Origin;
locale: Locale;
locales: Locale[];
localizations: Localizations;
};
export default function App({Component, pageProps}: AppProps<PageProperties>) {
const {origin, locale, locales, localizations} = pageProps;
return (
<TacoTranslate
client={tacoTranslate}
origin={origin}
locale={locale}
localizations={localizations}
>
<TacoTranslateHead rootUrl="https://your-website.com" locales={locales} />
<Component {...pageProps} />
</TacoTranslate>
);
}Zaten özel pageProps ve _app.tsx varsa, lütfen tanımı yukarıdaki özellikler ve kod ile genişletin.
Adım 4: Sunucu tarafı render'ı uygulama
TacoTranslate, çevirilerinizin sunucu tarafında oluşturulmasına olanak tanır. Bu, çevrilmemiş içeriğin önce kısa süre gösterilmesi yerine çevrilmiş içeriği anında göstererek kullanıcı deneyimini büyük ölçüde iyileştirir. Ayrıca, ihtiyaç duyduğumuz tüm çevirilere zaten sahip olduğumuz için istemci tarafında ağ isteklerini atlayabiliriz.
İşe /next.config.js dosyasını oluşturarak veya değiştirerek başlayacağız.
const withTacoTranslate = require('tacotranslate/next/config').default;
const tacoTranslateClient = require('./tacotranslate-client');
module.exports = async () => {
const config = {};
return withTacoTranslate(config, {
client: tacoTranslateClient,
isProduction:
process.env.TACOTRANSLATE_ENV === 'production' ||
process.env.VERCEL_ENV === 'production' ||
(!(process.env.TACOTRANSLATE_ENV || process.env.VERCEL_ENV) &&
process.env.NODE_ENV === 'production'),
});
};Kurulumunuza uygun olacak şekilde isProduction kontrolünü düzenleyin. Eğer true ise, TacoTranslate genel API anahtarını görünür kılacaktır. Yerel, test veya staging ortamındaysak (isProduction is false), yeni dizelerin çeviri için gönderildiğinden emin olmak amacıyla gizli read/write API anahtarını kullanacağız.
Şimdiye kadar Next.js uygulamasını yalnızca desteklenen dillerin bir listesiyle yapılandırdık. Bir sonraki adım, tüm sayfalarınız için çevirileri almak olacak. Bunu yapmak için gereksinimlerinize göre getTacoTranslateStaticProps veya getTacoTranslateServerSideProps kullanacaksınız.
Bu fonksiyonlar üç argüman alır: Bir Next.js Static Props Context nesnesi, TacoTranslate yapılandırması ve isteğe bağlı Next.js özellikleri. Şunu unutmayın ki, getTacoTranslateStaticProps içindeki revalidate varsayılan olarak 60 olarak ayarlanmıştır; böylece çevirileriniz güncel kalır.
Herhangi birini bir sayfada kullanmak için, örneğin /pages/hello-world.tsx adlı bir sayfa dosyanız olduğunu varsayalım.
import {Translate} from 'tacotranslate/react';
import getTacoTranslateStaticProps from 'tacotranslate/next/get-static-props';
import tacoTranslateClient from '../tacotranslate-client';
export async function getStaticProps(context) {
return getTacoTranslateStaticProps(context, {client: tacoTranslateClient});
}
export default function Page() {
return <Translate string="Hello, world!"/>;
}Artık tüm React bileşenlerinizdeki metinleri çevirmek için Translate bileşenini kullanabilmelisiniz.
import {Translate} from 'tacotranslate/react';
function Component() {
return <Translate string="Hello, world!"/>
}Adım 5: Yayınlayın ve test edin!
Tamamladık! Next.js uygulamanız artık herhangi bir dizeyi Translate bileşenine eklediğinizde otomatik olarak çevrilecek. API anahtarında read/write izinlerine sahip ortamların yeni çevrilecek dizeler oluşturabileceğini unutmayın. Böyle bir API anahtarıyla üretim uygulamanızı test edebileceğiniz, kapalı ve güvenli bir hazırlık/staging ortamına sahip olmanızı ve yeni dizeleri canlıya almadan önce burada eklemenizi öneririz. Bu, gizli API anahtarınızın çalınmasını ve çeviri projenizin alakasız yeni dizeler eklenerek potansiyel olarak şişirilmesini önleyecektir.
Be sure to check out the complete example over at our GitHub profile. There, you’ll also find an example of how to do this using the App Router! If you encounter any problems, feel free to reach out, and we’ll be more than happy to help.
TacoTranslate lets you automatically localize your React applications quickly to and from over 75 languages. Get started today!