TacoTranslate
/
תיעודתמחור
 
מדריך
04 במאי

כיצד ליישם בין-לאומיות באפליקציית Next.js שמשתמשת ב-Pages Router

הפכו את אפליקציית React שלכם לנגישה יותר והגיעו לשווקים חדשים עם אפליסטורציה בינלאומית (i18n).

בעוד שהעולם נעשה יותר גלובלי, זה נעשה חשוב יותר ויותר למפתחי אתרים לבנות אפליקציות שיכולות להתאים למשתמשים ממדינות ותרבויות שונות. אחת הדרכים המרכזיות להשיג זאת היא באמצעות אִינְטֶרְנַציונָלִיזַצְיָה (i18n), שמאפשרת לך להתאים את האפליקציה שלך לשפות שונות, למטבעות ולפורמטים של תאריכים.

המדריך הזה יבחן כיצד להוסיף אינטרנציונליזציה לאפליקציית React Next.js שלך, עם רינדור בצד השרת. TL;DR: ראה את הדוגמה המלאה כאן.

המדריך הזה מיועד ליישומי Next.js שמשתמשים בPages Router.
אם אתם משתמשים בApp Router, אנא עיינו במדריך זה במקום.

שלב 1: התקן ספריית i18n

כדי ליישם אִינְטֶרנַציונָליזַצִיָה (i18n) באפליקציית Next.js שלך, נתחיל בבחירת ספריית i18n. ישנן כמה ספריות פופולריות, כולל next-intl. עם זאת, בדוגמה זו, נשתמש ב-TacoTranslate.

TacoTranslate מתרגמת אוטומטית את המחרוזות שלך לכל שפה באמצעות בינה מלאכותית מתקדמת, ומשחררת אותך מהניהול המייגע של קבצי 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

ודא לעולם שלא לדלוף את מפתח ה-API הסודי read/write לסביבת הפקה בצד הלקוח.

נוסיף גם שני משתני סביבה נוספים: TACOTRANSLATE_DEFAULT_LOCALE ו-TACOTRANSLATE_ORIGIN.

  • TACOTRANSLATE_DEFAULT_LOCALE: קוד ברירת המחדל לשפת מיזעור (fallback). בדוגמה זו, נקבע אותו ל־en עבור אנגלית.
  • TACOTRANSLATE_ORIGIN: ה"תקייה" שבה יאוחסנו המחרוזות שלך, כמו לדוגמה כתובת האתר שלך. קרא עוד על origins כאן.
.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), נשתמש במפתח ה-API הסודי read/write כדי לוודא שמחרוזות חדשות נשלחות לתרגום.

עד כה הגדרנו את אפליקציית 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: פרסם ובדוק!

סיימנו! כעת אפליקציית ה-React שלך תתורגם אוטומטית כאשר תוסיף מחרוזות כלשהן לרכיב Translate. שים לב שרק סביבות עם הרשאות read/write על מפתח ה-API יוכלו ליצור מחרוזות חדשות לתרגום. אנו ממליצים על סביבה סגורה ומאובטחת של staging שבה תוכל לבדוק את אפליקציית הייצור שלך עם מפתח API כזה, ולהוסיף מחרוזות חדשות לפני העלאה לייצור. זה ימנע מאחרים לגנוב את מפתח ה-API הסודי שלך, ועלול למנוע מהרחבת פרויקט התרגום שלך על ידי הוספת מחרוזות חדשות שלא קשורות.

ודאו כי אתם בוחנים את הדוגמה המלאה בפרופיל GitHub שלנו. שם, תמצאו גם דוגמה כיצד לעשות זאת באמצעות ה-App Router ! אם תיתקלו בבעיות כלשהן, אל תהססו לפנות אלינו, ונשמח לעזור.

TacoTranslate מאפשרת לכם לתרגם את אפליקציות React שלכם אוטומטית במהירות ליותר מ-75 שפות ולהפך. התחילו היום!

מוצר מ־Nattskiftetעשוי בנורווגיה