TacoTranslate
/
ሰነዶችዋጋ አውጪ
 
ጽሑፍ
ሜይ 04

በNext.js መተግበሪያዎች ውስጥ ለአለም አቀፍ ቋንቋ አቀራረብ (i18n) ምርጥ መፍትሄ

እርስዎ እንደሚፈልጉት የNext.js መተግበሪያዎን ወደ አዳዲስ ገበያዎች ለማስፋፋት ትፈልጋላችሁ? TacoTranslate እጅግ ቀላል እንዲሆን የNext.js ፕሮጀክትዎን ለአካባቢ መለዋወጥ ይሠራል፣ ስለዚህ ዓለም አቀፍ ተደራሽ ሕይወት ያገኙበታል በማይጣል መንገድ።

Next.js ለምን መጠቀም እንደሚመረጥ በTacoTranslate?

  • ቀላል አቀማመጥ፡ በተለይ ለNext.js መተግበሪያዎች የተከናወነ፣ TacoTranslate በቀላሉ ወደ አሁን ያለዎት የስራ ፈርጅ ያክላል።
  • በራስህ የማያስተዳድር የቁምፊ ስብስብ፡ እንኳን ዲኤስ ፋይሎችን ማስተዳደር አይደለም። TacoTranslate በራሱ ከኮድ ቤዝዎ ቁምፊዎችን ያሰብስባል።
  • በAI የተነሳ ትርጉሞች፡ የAI ኃይልን በመጠቀም ለመተግበሪያዎ ቀላልና ትክክለኛ ትርጉሞች ያቀርባል።
  • አቅርቦት ያለው የቋንቋ ድጋፍ፡ በአንድ ጠቅ መስጠት አዲስ ቋንቋዎች ድጋፍ በቀላሉ ጨምር፣ መተግበሪያዎን በዓለም አቀፍ ያደርሰዋል።

እንዴት እንደሚሰራ

ዓለም እየተከፋፈለ መሆኑ ከፍተኛ እንደሆነ የድህረ መረብ አሰራሮች ከተለያዩ ሀገራትና ባህላት የሚመጡ ተጠቃሚዎችን የሚሠሩ መተግበሪያዎችን መሰራት አስፈላጊ ነው። ከነዚህ አንዱ ቁልፍ መንገዶች በአለም አቀፍ ቋንቋ አስተዳደር (i18n) ነው፣ ይህም መተግበሪያዎትን እንዲለዋወጡ ለበለይ ቋንቋዎች፣ ምንዛሪያዎችና የቀን ቅርጸቶች እንዲሰተኑ ይፈቅዳል።

በዚህ መምሪያ ውስጥ ደግሞ ለReact Next.js መተግበሪያዎ በሰርቨር ክፍል እንዴት አለም አቀፍ ቋንቋ እንደሚያካትቱ እንመለከታለን። TL;DR: እዚህ ሙሉ እትም ይመልከቱ።

ይህ መመሪያ ለNext.js ማብራሪያዎች ነው እና እነሱ Pages Router እንደሚጠቀሙበት።
የእርስዎ ከ App Router በመጠቀም ከሆነ፣ እባክዎን ይህን መመሪያ ተመልከቱ።

ደረጃ 1: አንድ i18n ቤተ-መፃህፍት አስገባ

የእርስዎን Next.js መተግበሪያ በዓለም አቀፍ ማስተካከያ ለማካሄድ፣ መጀመሪያ አንድ የi18n thưረብሪ እንምረጥ። ብዙ የተለመዱ thưረብሪዎች አሉ፣ ከነዚህም next-intl አንዱ ነው። ነገር ግን፣ በዚህ ምሳሌ ደግሞ TacoTranslate እንጠቀማለን።

TacoTranslate በልዩ ዘመናዊ AI መንገድ በማስተላለፊያዎች ላይ በማንኛውም ቋንቋ ራስሰር ትርጉም ያደርጋል እና የJSON ፋይሎችን አጥብቆ ማስተዳደር ከእርስዎ ይልቁት ይሰረዝልዎታል።

በተርኔልዎ ውስጥ በ npm ለማግኘት እንጀምር።

npm install tacotranslate

ደረጃ 2፥ ነጻ ያለው የTacoTranslate መለያ ይፍጠሩ

አሁን ሞጁሉን ከደረሰህ በኋላ፣ የታኮትራንስሌት መለያህን፣ የትርጉም ፕሮጀክት እና የተያያዙ የAPI ቁልፎችን መፍጠር ጊዜው መሆነ ነው። እዚህ መለያ መፍጠር። ከፍያ ነው፣ እና ክሬዲት ካርድ መጨመር አያስፈልግህም።

በTacoTranslate መተግበሪያ UI ውስጥ፣ አንድ ፕሮጀክት ይፍጠሩ እና ወደ ኤፒአይ ቁልፎቹ ትልቅ መሰረዝ ይሂዱ። አንድ 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

.env
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.com

ደረጃ 3፡ TacoTranslate እንዴት እንደሚዘጋጅ ማቀናበር

ታኮTranslate ከመተግበሪያዎ ጋር ለማዋሃድ, ቀደም ሲል የ ኤፒአይ ቁልፎችን በመጠቀም ደንበኛ መፍጠር ያስፈልግዎታል. ለምሳሌ, /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 ባለባት ንጥሎች። በ getTacoTranslateStaticProps ላይ ያለው revalidate በ 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!"/>;
}

አሁን በሁሉም የReact ኮምፖነንቶችዎ ውስጥ ስትሪንግዎችን ለመተርጎም ለ Translate ኮምፖነንት መጠቀም ይችላሉ።

import {Translate} from 'tacotranslate/react';

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

መሠረተ እርምጃ 5፦ አስተዋጽኦ እና ሙከራ ያድርጉ!

እንኳን ተጠናቀቅን! ከአሁን ጀምሮ በእርስዎ ላይ ማንኛውም ሐረግ በTranslate ኮምፓውነንት ሲያክሉ በራስ-ነጻ እንዲተረጉም ይሆናል። እባክዎትን ማስታወሻ ስለሆነ፣ በread/write ፈቃድ ያላቸው አካባቢዎች ብቻ አዲስ ሐረጎችን እንዲፈጥሩ ይችላሉ። እኛ የምንመከርላችሁ ደረጃ ያለውና የተደረገ ተዘጋጅቷ ያለ ማስፈንጠሪያ አካባቢ ማስተናገድ ነው፣ ስለዚህ ከስራ አስኪያጅ መተግበሪያዎ ጋር እንደዚህ ያለ የAPI ቁልፍ በመጠቀም መፈተን እና አዲስ ሐረጎችን በማክለብ በፊት ለመኖር ይችላሉ። ይህ እርስዎ የሚያሰር የAPI ቁልፍዎን ማንኛውንም ሰው ከማጥፋት እና በተጨማሪም በመተርጎም ፕሮጀክትዎ አያያዝ ላይ አዲስ እንዳያስገቡ እንደሚታወቀው ጥንካሬ ይሰጣል።

እባክህ በGitHub መለያችን ላይ ሙሉውን እባብ ምሳሌ ተመልከት። እዚህ ደግሞ በApp Router መጠቀም እንዴት እንደሚቻል ምሳሌ ትገኛለህ! ማንኛውንም ችግር ቢኖርህ፣ እባክህ እንደገና ያግኙን፣ እኛም በሙሉ እንደምንረዳ ደስ ይለናል።

TacoTranslate ራስሰር በማድረግ የReact ማብቂያዎችን በፍጥነት ወደ ማንኛውም ቋንቋ እና ከእሱ ያቀርባል። ዛሬ መጀመር ይችላሉ!

Nattskiftet የተሰራ ምርት