TacoTranslate
/
SənədləşməQiymətlər
 
Məqalə
04 may

Next.js tətbiqlərində beynəlxalqlaşdırma (i18n) üçün ən yaxşı həll

Next.js tətbiqinizi yeni bazarlara genişləndirmək istəyirsiniz? TacoTranslate Next.js layihənizi lokallaşdırmağı son dərəcə asanlaşdırır, beləliklə heç bir çətinlik olmadan qlobal auditoriyaya çata bilərsiniz.

Next.js üçün TacoTranslate-ni niyə seçməlisiniz?

  • Problemlərsiz inteqrasiya: Xüsusilə Next.js tətbiqləri üçün hazırlanmış TacoTranslate mövcud iş axınınıza asanlıqla inteqrasiya olunur.
  • Avtomatik mətnlərin toplanması: JSON fayllarını əl ilə idarə etməyə son verin. TacoTranslate mənbə kodunuzdan mətnləri avtomatik toplayır.
  • Süni intellektlə gücləndirilmiş tərcümələr: Tətbiqinizin tonuna uyğun, kontekstual olaraq dəqiq tərcümələr təmin etmək üçün süni intellektin gücündən istifadə edin.
  • Ani dil dəstəyi: Yeni dillər üçün dəstəyi yalnız bir kliklə əlavə edin və tətbiqinizi qlobal olaraq əlçatan edin.

Necə işləyir

Dünya qloballaşdıqca, veb inkişaf etdiricilər üçün müxtəlif ölkə və mədəniyyətlərdən olan istifadəçilərə xidmət göstərə bilən tətbiqlər hazırlamaq getdikcə daha vacib olur. Buna nail olmağın əsas yollarından biri beynəlxalqlaşdırma (i18n)-dır; bu, tətbiqinizi müxtəlif dillərə, valyutalara və tarix formatlarına uyğunlaşdırmağa imkan verir.

Bu dərslikdə React Next.js tətbiqinizə server tərəfdən renderləşdirmə (SSR) ilə beynəlxalqlaşdırma (i18n) əlavə etməyi öyrənəcəyik. TL;DR: Tam nümunəni burada görə bilərsiniz.

Bu bələdçi Pages Router istifadə edən Next.js tətbiqləri üçündür.
Əgər App Router istifadə edirsinizsə, onun əvəzinə bu bələdçiyə baxın.

Addım 1: i18n kitabxanasını quraşdırın

Next.js tətbiqinizdə beynəlxalqlaşdırmanı (i18n) həyata keçirmək üçün, əvvəlcə bir i18n kitabxanası seçəcəyik. Populyar bir neçə kitabxana var, o cümlədən next-intl. Lakin bu nümunədə biz TacoTranslate-dən istifadə edəcəyik.

TacoTranslate qabaqcıl süni intellektdən istifadə edərək mətnlərinizi hər hansı dilə avtomatik tərcümə edir və sizi JSON fayllarının yorucu idarə edilməsindən azad edir.

Gəlin terminalınızda npm vasitəsilə onu quraşdıraq:

npm install tacotranslate

Addım 2: Pulsuz TacoTranslate hesabı yaradın

Modulu quraşdırdığınıza görə, indi TacoTranslate hesabı, tərcümə layihəsi və müvafiq API açarlarını yaratmağın vaxtıdır. Buradan hesab yaradın. Ödənişsizdir və kredit kartı əlavə etməyinizi tələb etmir.

TacoTranslate tətbiqinin istifadəçi interfeysində bir layihə yaradın və onun API açarları nişanına keçin. Bir read açarı və bir read/write açarı yaradın. Onları mühit dəyişənləri kimi saxlayacağıq. read açarı bizim public adlandırdığımız, read/write açarı isə secretdir. Məsələn, onları layihənizin kökündəki .env faylına əlavə edə bilərsiniz.

.env
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010

Gizli read/write API açarını müştəri tərəfi istehsal mühitlərinə heç vaxt sızdırmayın.

Həmçinin iki əlavə mühit dəyişəni əlavə edəcəyik: TACOTRANSLATE_DEFAULT_LOCALETACOTRANSLATE_ORIGIN.

  • TACOTRANSLATE_DEFAULT_LOCALE: Varsayılan əvəzedici (fallback) lokal kodu. Bu nümunədə onu İngilis dili üçün en olaraq təyin edəcəyik.
  • TACOTRANSLATE_ORIGIN: Mətnlərinizin saxlanacağı “qovluq”, məsələn saytınızın URL-i. Originlər haqqında buradan daha çox oxuyun.
.env
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.com

Addım 3: TacoTranslate-i qurmaq

TacoTranslate-i tətbiqinizə inteqrasiya etmək üçün daha əvvəl əldə etdiyiniz API açarlarından istifadə edərək bir client yaratmalısınız. Məsələn, /tacotranslate-client.js adlı bir fayl yaradın.

/tacotranslate-client.js
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;

Biz tezliklə avtomatik olaraq TACOTRANSLATE_API_KEY təyin edəcəyik.

Clienti ayrı faylda yaratmaq onu sonradan yenidən istifadə etməyi asanlaşdırır. İndi xüsusi /pages/_app.tsx istifadə edərək, TacoTranslate provayderini əlavə edəcəyik.

/pages/_app.tsx
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>
	);
}

Əgər artıq xüsusi pageProps_app.tsx varsa, zəhmət olmasa yuxarıdakı xüsusiyyətlər və kodu əlavə edərək tərifi genişləndirin.

Addım 4: Server tərəfdən renderləşdirməni tətbiq etmək

TacoTranslate tərcümələrinizin server tərəfdə render olunmasına imkan verir. Bu, istifadəçi təcrübəsini xeyli yaxşılaşdırır — tərcümə edilmiş məzmunu dərhal göstərərək əvvəlcə tərcümə olunmamış məzmunun qısa müddətli görünməsinin qarşısını alır. Əlavə olaraq, artıq ehtiyac duyduğumuz bütün tərcümələrə malik olduğumuz üçün müştəri tərəfində şəbəkə sorğularını atlamaq mümkündür.

Başlayaq /next.config.js faylını yaradaraq və ya dəyişdirərək.

/next.config.js
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'),
	});
};

Quraşdırmanıza uyğunlaşdırmaq üçün isProduction yoxlamasını dəyişdirin. Əgər true, TacoTranslate ictimai API açarını göstərəcək. Əgər lokal, test və ya staging mühitindəsinizsə (isProduction is false), yeni sətirlərin tərcümə üçün göndərildiyini təmin etmək üçün gizli read/write API açarından istifadə edəcəyik.

İndiyədək Next.js tətbiqində yalnız dəstəklənən dillərin siyahısını təyin etmişik. Növbəti edəcəyimiz iş bütün səhifələriniz üçün tərcümələri əldə etməkdir. Bunun üçün tələblərinizə əsasən getTacoTranslateStaticProps və ya getTacoTranslateServerSideProps istifadə edəcəksiniz.

Bu funksiyalar üç arqument qəbul edir: biri Next.js Static Props Context obyekti, digəri TacoTranslate konfiqurasiyası və üçüncüsü istəyə bağlı Next.js xüsusiyyətləridir. Qeyd edin ki, getTacoTranslateStaticProps funksiyasında revalidate standart olaraq 60-a təyin olunub, beləliklə tərcümələriniz aktual qalır.

Hər iki funksiyadan birini səhifədə istifadə etmək üçün tutaq ki, belə bir səhifə faylınız var: /pages/hello-world.tsx.

/pages/hello-world.tsx
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!"/>;
}

İndi Translate komponentindən bütün React komponentlərinizdəki mətnləri tərcümə etmək üçün istifadə edə bilməlisiniz.

import {Translate} from 'tacotranslate/react';

function Component() {
	return <Translate string="Hello, world!"/>
}

5-ci addım: Yerləşdirin və sınaqdan keçirin!

Bitirdik! Next.js tətbiqiniz indi Translate komponentinə hər hansı sətri əlavə etdiyiniz zaman avtomatik olaraq tərcümə olunacaq. Qeyd edək ki, yalnız API açarında read/write icazəsi olan mühitlər tərcümə olunmaq üçün yeni sətirlər yarada biləcəklər. İstehsal tətbiqinizi belə bir API açarı ilə sınaya biləcəyiniz, canlı yayıma başlamazdan əvvəl yeni sətirləri əlavə edə biləcəyiniz bağlı və təhlükəsiz bir staging mühiti olmasını tövsiyə edirik. Bu, gizli API açarınızın oğurlanmasının və yeni, əlaqəsiz sətirlər əlavə etməklə tərcümə layihənizin şişməsinin qarşısını alacaq.

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!

Nattskiftet tərəfindən təqdim olunan məhsulNorveçdə hazırlanmış