TacoTranslate
/
დოკუმენტაციაფასები
 
სტატია
04 მაი

საუკეთესო გადაწყვეტილება საერთაშორისო სახეობის (i18n) მხარდაჭერისთვის Next.js აპლიკაციებში

გსურთ გაფართოვოთ თქვენი Next.js აპლიკაცია ახალ ბაზრებზე? TacoTranslate ქმნის თქვენს Next.js პროექტის ლოკალიზაციას უმაღლესად მარტივს, რაც საშუალებას გაძლევთ დაინახოთ გლობალური აუდიტორია without the hassle.

რატომ უნდა აირჩიოთ TacoTranslate Next.js-ისთვის?

  • უსადენო ინტეგრაცია: სპეციალურად Next.js აპლიკაციებისათვის დიზაინმერი, TacoTranslate ღია ინტეგრირებას უზრუნველყოფს თქვენს არსებულ სამუშაო პროცესში.
  • ავტონომიური სტრინგების შეგროვება: აღარ არის საჭირო JSON ფაილების მენეჯმენტით დაკავება. TacoTranslate ავტომატურად იღებს სტრინგებს თქვენს კოდში.
  • ხელოვნური ინტელექტის სათავო თარგმნები: გამოიყენეთ AI-ს ძალა, რათა უზრუნველყოთ კონტექსტურად ზუსტი თარგმანები, რომლებიც შეესაბამება თქვენს აპლიკაციის ტონს.
  • მყისიერი ენის მხარდაჭერა: ახალი ენების მხარდაჭერის დამატება მხოლოდ ერთი დაჭერით, რაც ხელს უწყობს თქვენი აპლიკაციის გლობალურ ხელმისაწვდომობას.

როგორ მუშაობს

მსოფლიოს გლობალიზაციის დრომდე პროგრესირებს, დღეისათვის განსაკუთრებული მნიშვნელობა ენიჭება ვებდეველოპერებს, რომლებიც არიან მომხმარებლებისთვის სხვადასხვა ქვეყნებისა და კულტურების მოთხოვნების დასაკმაყოფილებლად. ერთ-ერთი ძირითადი გზა ამის მისაღწევად არის ინტერნაციონალიზაცია (i18n), რომელიც საშუალებას გაძლევთ თქვენი აპლიკაცია გაადაპტიროთ სხვადასხვა ენების, ვალუტებისა და თარიღის ფორმატების მიხედვით.

ამ გაკვეთილში, ჩვენ განვიხილავთ როგორ გავაფართოვოთ ინტერნაციონალიზაცია თქვენს React Next.js აპლიკაციაში, სერვერის მხარის რენდერით. TL;DR: სრული მაგალითი იხილეთ აქ.

ეს სახელმძღვანელო განკუთვნილია Next.js აპლიკაციებისათვის, რომლებიც იყენებენ Pages Router-ს.
თუ იყენებთ App Router-ს, გთხოვთ დაათვალიეროთ ეს სახელმძღვანელო.

გადი 1: დააყენეთ i18n ბიბლიოთეკა

თქვენი Next.js აპლიკაციაში საერთაშორისო მხარდაჭერის იმპლემენტაციისთვის, ჩვენ პირველ რიგში გავარჩევთ i18n ბიბლიოთეკას. არსებობს რამდენიმე პოპულარული ბიბლიოთეკა, მათ შორის next-intl. თუმცა, ამ მაგალითში, ჩვენ გამოვიყენებთ TacoTranslate.

TacoTranslate ავტომატურად თარგმნიდა თქვენს სტრიქონებს ნებისმიერ ენაზე უახლესი AI-ის დახმარებით, და ათავისუფლებს თქვენ JSON ფაილების დამღლელი მართვისგან.

გადავაყენოთ ეს npm გამოყენებით თქვენს ტერმინალში:

npm install tacotranslate

ნაბიჯი 2: შექმენით უფასო TacoTranslate ანგარიში

ახლა, როდესაც მოდული დაინსტალირდა, დროა შექმნათ თქვენი TacoTranslate ანგარიში, თარგმნის პროექტი და დაკავშირებული API გასაღებები. შექმენით ანგარიში აქ. ეს უფასოა და არ მოითხოვს საკრედიტო ბარათის დამატებას.

TacoTranslate აპლიკაციის UI-ში შექმენით პროექტი და გადაიტანეთ API კლავიშების ჩანართზე. შექმენით ერთი read კლავიში და ერთი read/write კლავიში. ჩვენ მათ გარემოს ცვლადებად შევინახავთ. read კლავიში ეწოდება public და read/write კლავიში არის secret. მაგალითად, შეგიძლიათ დაამატოთ ისინი თქვენს პროექტის რეპოზიტორიის ფაილში, სახელად .env.

.env
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010

გამოიყენეთ სიფრთხილე და არასოდეს გამოაცხადოთ საიდუმლო read/write API კლავიატი კლაიენტის მხარის რეალურ გარემოში.

ასევე დავუმატებთ კიდევ ორ გარემოს ცვლადს: TACOTRANSLATE_DEFAULT_LOCALE და TACOTRANSLATE_ORIGIN.

  • TACOTRANSLATE_DEFAULT_LOCALE: ნაგულისხმევი რეზერვული ლოკალ კოდი. ამ მაგალითში, ჩვენ მას დავაყენებთ en ინგლისურისთვის.
  • TACOTRANSLATE_ORIGIN: "ფოლდერი", სადაც შენახული იქნება შენი სტრიქონები, როგორიცაა შენი საიტის URL. კითხვა ამ თემაზე აქ.
.env
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.com

საორი ნაბიჯი 3: TacoTranslate-ის დაყენება

TacoTranslate-ის ინტეგრაციისთვის თქვენს აპლიკაციაში, თქვენ გჭირდებათ კლიენტის შექმნა API გასაღებების გამოყენებით, რომლებიც ადრე მოგაწოდეთ. მაგალითად, შექმენით ფაილი სახელად /tacotranslate-client.js.

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

მოკლე დროში ავტომატურად დავაწესებთ TACOTRANSLATE_API_KEY.

კლაიენტის შექმნა ცალკე ფაილში გახდის მას ადვილად ხელმისაწვდომს ხელახლა გამოყენებისთვის. ახლა, მორგებული /pages/_app.tsx გამოყენებით, დავამატებთ TacoTranslate პროვაიდერს.

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

თუ უკვე გაქვთ მორგებული pageProps და _app.tsx, გთხოვთ გაფართოვოთ განსაზღვრება ზემოთ მოყვანილი თვისებებითა და კოდით.

ნაბიჯი 4: სერვერული მხარის გადმოტანის იმპლემენტაცია

TacoTranslate საშუალებას აძლევს თქვენს თარგმანებს სერვერული მხარის განხილვა. ეს მნიშვნელოვნად აუმჯობესებს მომხმარებლის გამოცდილებას, რადგან თარგმნული შინაარსი სინათლეზე გამოვა მაშინვე, ქვეყნის შინაარსის პირველი გამოჩენის ნაცვლად. გარდა ამისა, ჩვენ შეგვიძლია გამოვტოვოთ ქსელური მოთხოვნები მომხმარებლის მხარეს, რადგან უკვე გვაქვს ყველა საჭირო თარგმანი.

ჩვენ დავიწყებთ /next.config.js ფაილის შექმნით ან მოდიფიცირებით.

/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 შემოწმება, რომ მოერგოს თქვენს დაყენებას. თუ true, TacoTranslate გააფართოებს საჯარო API კლავიშს. თუ ჩვენ ვართ ადგილობრივ, ტესტში ან დადგმის გარემოში (isProduction is false), ჩვენ გამოვიყენებთ საიდუმლო read/write API კლავიშს, რათა დავრწმუნდეთ, რომ ახალი სტრიქონები იგზავნება თარგმანისთვის.

ახლა გვაქვს მხოლოდ Next.js აპლიკაციის კონფიგურირებული მხარდაჭერილი ენების სია. შემდეგი ნაბიჯი არის თქვენი ყველა გვერდის თარგმანების გაწერა. ამისთვის გამოიყენებთ ან getTacoTranslateStaticProps ან getTacoTranslateServerSideProps თქვენს მოთხოვნებზე დაყრდნობით.

ეს ფუნქციები იღებენ სამ არგუმენტს: ერთს Next.js Static Props Context ობიექტს, TacoTranslate-ის კონფიგურაციას და არჩევით Next.js თვისებებს. გაითვალისწინეთ, რომ revalidate ღირებულება getTacoTranslateStaticProps ფუნქციაში შეყვანილია 60-ზე ნაგულისხმევად, რათა თქვენი თარგმანები მუდმივად განახლებული იყოს.

იმის მისაღებად, რომ ეს ფუნქცია გამოიყენოთ გვერდზე, ვთქვათ, თქვენ გაქვთ გვერდის ფაილი, როგორიცაა /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!"/>;
}

ახლა თქვენ შეძლებთ გამოიყენოთ Translate კომპონენტი თქვენი ყველა React კომპონენტში სტრიქონების თარგმნისთვის.

import {Translate} from 'tacotranslate/react';

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

ნაბიჯი 5: გამოშვება და ტესტირება!

მოვრჩით! თქვენი Next.js აპლიკაცია ახლა ავტომატურად შეერთვება, როდესაც შეამატებთ რაიმე სტრიქონებს Translate კომპონენტში. გაითვალისწინეთ, რომ მხოლოდ იმ გარემოებებში, სადაც API ელემენტისთვის აქვს read/write უფლებები, შეგეძლებათ ახალი სტრიქონების შექმნა თარგმნისთვის. გირჩევთ გქონდეთ დახურული და დაცული סטרაჟინგის გარემო, სადაც შეგიძლიათ გამოცადოთ თქვენი წარმოებული აპლიკაცია ასეთ API ელემენტთან ერთად, ახალი სტრიქონების დამატებით პირდაპირი გაშვების წინ. ეს შეუშლის საშუალებას ნებისმიერ მოპარვაზე თქვენი საიდუმლო API ელემენტის და შესაძლებელს გახდის თქვენს თარგმნის პროექტში არასაკავშირო, ახალი სტრიქონების დამატების პრევენციას.

გახსოვდეთ იხილოთ სრული მაგალითი ჩვენს GitHub პროფილზე. იგი ასევე შეიცავს მაგალითს, თუ როგორ უნდა გააკეთოთ ეს App Router -ის გამოყენებით! თუ პრობლემა შეგხვდებათ, თავისუფლად დაგვიკავშირდით, და ჩვენ დიდი სიამოვნებით დაგეხმარებით.

TacoTranslate საშუალებას გაძლევთ ავტომატურად ლოკალიზებდეთ თქვენი React აპლიკაციები სწრაფად ნებისმიერი ენიდან და ენაზე. დაიწყეთ დღესვე!

პროდუქტი Nattskiftet-დანნორვეგიაში தயாரილი