TacoTranslate
/
HujjatlarNarxlash
 
Maqola
04-may

Next.js ilovalari uchun eng yaxshi xalqarolashtirish (i18n) yechimi

Next.js ilovangizni yangi bozorlarga kengaytirishni xohlaysizmi? TacoTranslate sizning Next.js loyihangizni mahalliylashtirishni juda osonlashtiradi, bu orqali siz global auditoriyaga hech qanday qiyinchiliksiz chiqishingiz mumkin.

Nima uchun Next.js uchun TacoTranslate ni tanlash kerak?

  • Muammosiz integratsiya: Maxsus Next.js ilovalari uchun yaratilgan TacoTranslate mavjud ish jarayoningizga osongina integratsiya qilinadi.
  • Avtomatik satrlarni yig‘ish: JSON fayllarni qo‘lda boshqarishga hojat yo‘q. TacoTranslate kod bazangizdan satrlarni avtomatik yig‘adi.
  • AI yordamida tarjimalar: Ilovangiz uslubiga mos, kontekstga mos aniq tarjimalarni taqdim etish uchun AI kuchidan foydalaning.
  • Darhol tilni qo‘llab-quvvatlash: Yangi tillarni faqat bitta bosish bilan qo‘shing, ilovangizni global darajada kirishimli qiling.

Qanday ishlaydi

Dunyo tobora globalizatsiyalanib borayotgan sari, veb ishlab chiquvchilar uchun turli mamlakatlar va madaniyatlar foydalanuvchilariga mos keladigan ilovalarni yaratish tobora muhimroq bo‘lmoqda. Buni amalga oshirishning eng muhim yo‘llaridan biri xalqarolashtirish (i18n) bo‘lib, u ilovangizni turli tillar, valyutalar va sana formatlariga moslashtirish imkonini beradi.

Ushbu qo‘llanmada biz React Next.js ilovangizga server tomonida render qilish bilan birga xalqarolashtirishni qanday qo‘shish mumkinligini o‘rganamiz. TL;DR: To‘liq misolga shu yerda qarang.

Ushbu qo‘llanma Pages Router dan foydalanuvchi Next.js ilovalari uchun mo‘ljallangan.
Agar siz App Router dan foydalanayotgan bo‘lsangiz, iltimos, uning o‘rniga ushbu qo‘llanmani ko‘ring.

1-qadam: i18n kutubxonasini o'rnating

Next.js ilovangizda xalqaro moslashuvni amalga oshirish uchun avvalo i18n kutubxonasini tanlaymiz. Mashhur kutubxonalar orasida next-intl mavjud. Ammo, ushbu misolda biz TacoTranslate dan foydalanamiz.

TacoTranslate ilg‘or sun’iy intellekt yordamida yozuvlaringizni avtomatik ravishda istalgan tilga tarjima qiladi va JSON fayllarini charchatuvchi boshqaruvdan sizni ozod qiladi.

Keling, uni terminalingizda npm yordamida o‘rnatamiz:

npm install tacotranslate

2-qadam: Bepul TacoTranslate hisobini yarating

Endi modulni o’rnatib bo’lgach, TacoTranslate hisobingizni, tarjima loyihasini va tegishli API kalitlarini yaratish vaqti keldi. Bu yerda hisob yaratishingiz mumkin. Bu bepul va kredit karta qo’shishingiz shart emas.

TacoTranslate ilovasi UI ichida loyiha yarating va uning API kalitlari bo‘limiga o‘ting. Bitta read kalit va bitta read/write kalit yarating. Ularni atrof-muhit o‘zgaruvchilari sifatida saqlaymiz. read kalitni biz public deb ataymiz, read/write kalit esa secret. Masalan, ularni loyihangiz ildizidagi .env fayliga qo‘shishingiz mumkin.

.env
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010

Hech qachon sirli read/write API kalitini mijoz tomonidagi ishlab chiqarish muhitlariga oshkor qilmaslikka ishonch hosil qiling.

Bundan tashqari, yana ikkita muhit o'zgaruvchis ​​qo'shamiz: TACOTRANSLATE_DEFAULT_LOCALE va TACOTRANSLATE_ORIGIN.

  • TACOTRANSLATE_DEFAULT_LOCALE: Default qaytish tili kodi. Ushbu misolda, biz uni ingliz tili uchun en ga o'rnatamiz.
  • TACOTRANSLATE_ORIGIN: Sizning matnlaringiz saqlanadigan "papka", masalan, sayt manzilingiz (URL). Originlar haqida ko'proq o‘qing.
.env
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.com

3-qadam: TacoTranslate ni sozlash

TacoTranslate’ni ilovangizga birlashtirish uchun oldingi API kalitlari yordamida klient yaratishingiz kerak bo‘ladi. Masalan, /tacotranslate-client.js nomli fayl yarating.

/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 tez orada avtomatik tarzda TACOTRANSLATE_API_KEY ni belgilaymiz.

Mijozni alohida faylda yaratish uni keyinchalik yana ishlatishni osonlashtiradi. Endi, maxsus /pages/_app.tsx faylidan foydalangan holda, TacoTranslate provayderini qo‘shamiz.

/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>
	);
}

Agar sizda allaqachon maxsus pageProps va _app.tsx bo'lsa, iltimos, yuqoridagi xususiyatlar va kod bilan ta'rifni kengaytiring.

4-qadam: Server tomonlama renderingni amalga oshirish

TacoTranslate tarjimalaringizni server tomonida render qilishga imkon beradi. Bu foydalanuvchi tajribasini sezilarli darajada yaxshilaydi, chunki u avval tarjima qilinmagan kontentning qisman ko‘rinishidan ko‘ra, tarjima qilingan kontentni darhol ko‘rsatadi. Bundan tashqari, mijozdagi tarmoq so‘rovlarini o'tkazib yuborishimiz mumkin, chunki bizda kerakli barcha tarjimalar allaqachon mavjud.

Biz /next.config.js faylini yaratish yoki o'zgartirish bilan boshlaymiz.

/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'),
	});
};

isProduction tekshiruvini oʻz sozlamalaringizga moslang. Agar true boʻlsa, TacoTranslate jamoat API kalitini koʻrsatadi. Agar biz mahalliy, test yoki staging muhitida boʻlsak (isProduction is false), yangi satrlar tarjimaga yuborilganligiga ishonch hosil qilish uchun maxfiy read/write API kalitidan foydalanamiz.

Hozirgacha, biz faqat Next.js ilovasini qo‘llab-quvvatlanadigan tillar ro‘yxati bilan sozlaganmiz. Keyingi qilinadigan ishimiz barcha sahifalaringiz uchun tarjimalarni olishdir. Buning uchun, talablaringizga qarab, getTacoTranslateStaticProps yoki getTacoTranslateServerSideProps funksiyalaridan birini ishlatasiz.

Ushbu funksiyalar uchta argument qabul qiladi: biri Next.js Static Props Context obyekti, TacoTranslate sozlamalari va ixtiyoriy Next.js xususiyatlari. E'tibor bering, getTacoTranslateStaticProps da revalidate sukut bo'yicha 60 ga o'rnatilgan, shuning uchun tarjimalaringiz doimo yangilanib turadi.

Sahifada ushbu funksiyalardan birini ishlatish uchun, keling, sizda /pages/hello-world.tsx kabi sahifa fayli bor deb faraz qilamiz.

/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!"/>;
}

Endi siz barcha React komponentlaringizdagi qatorlarni tarjima qilish uchun Translate komponentidan foydalanishingiz mumkin.

import {Translate} from 'tacotranslate/react';

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

5-qadam: Joylashtiring va sinab ko‘ring!

Ishimiz tugadi! Endi sizning Next.js ilovangizda har qanday matnni Translate komponentiga qo‘shganingizda avtomatik tarzda tarjima qilinadi. E'tibor bering, faqat read/write huquqlarga ega API kalitiga ega muhitlarda yangi tarjima qilinadigan matnlar yaratish mumkin bo‘ladi. Biz sizga yopiq va xavfsiz staging muhitini yaratishni tavsiya qilamiz, u yerda siz ishlab chiqarish ilovangizni shunday API kaliti bilan sinovdan o‘tkazishingiz va jonli ishlashdan oldin yangi matnlarni qo‘shishingiz mumkin. Bu sirli API kalitingizni o‘g‘irlashdan va tarjima loyihangizga hech qanday aloqasi bo‘lmagan yangi matnlarni qo‘shib, uni ortiqcha yuklamaslikdan himoya qiladi.

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 tomonidan ishlab chiqilgan mahsulot NattskiftetNorvegiyada ishlab chiqarilgan