TacoTranslate
/
ДокументацијаЦеновник
 
Статија
04 мај

Најдобро решение за интернационализација (i18n) во Next.js апликации

Дали сакате да ја проширите вашата Next.js апликација на нови пазари? TacoTranslate го прави неверојатно лесно локализирањето на вашиот Next.js проект, овозможувајќи ви да допрете до глобална публика без мака.

Зошто да изберете TacoTranslate за Next.js?

  • Беспрекорна Интеграција: Дизајниран специјално за Next.js апликации, TacoTranslate се интегрира без напор во вашиот тековен работен процес.
  • Автоматско Собирање на Текстови: Веќе не е потребно рачно управување со JSON фајлови. TacoTranslate автоматски собира текстови од вашиот код.
  • Преводи Поттикнати од Вештачка Интелигенција: Искористете ја моќта на АИ за да обезбедите прецизни преводи што одговараат на контекстот и тоналитетот на вашата апликација.
  • Моментална Поддршка за Јазици: Додајте поддршка за нови јазици со само еден клик, овозможувајќи вашата апликација да биде достапна глобално.

Како функционира

Како што светот станува се по-глобализиран, се поголемо значење има за веб-развивачите да создаваат апликации кои можат да им одговорат на корисници од различни земји и култури. Еден од клучните начини да се постигне тоа е преку интернационализација (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, креирајте проект и одете на табот за 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 компонента. Имајте на ум дека само средини со read/write дозволи на API клучот ќе можат да создаваат нови стрингови за превод. Препорачуваме да имате затворена и заштитена стејџинг средина каде што можете да ја тестирате вашата продукциска апликација со таков API клуч, додавајќи нови стрингови пред да оди на живо. Ова ќе спречи било кој да го украде вашиот таен API клуч и потенцијално да го оптовари вашиот преводен проект со додавање нови, несоодветни стрингови.

Обавезно погледнете го целиот пример на нашиот GitHub профил. Таму, исто така, ќе најдете пример како да го направите тоа користејќи App Router! Ако наидете на какви било проблеми, слободно контактирајте не, и ќе ни биде големо задоволство да ви помогнеме.

TacoTranslate ви овозможува автоматско локализирање на вашите React апликации брзо од и кон било кој јазик. Започнете денес!

Продукт од Nattskiftet