שיטות עבודה מומלצות
הכנס כתובות URL במשתנים
כאשר מתרגמים מחרוזות המכילות כתובות URL או נתונים דומים, נחשב לפרקטיקה טובה לשים את כתובות ה-URL האלה בתוך משתנים ואז להפנות אליהם בתוך התבניות שלך.
<Translate
string={`Click <a href="{{url}}">here</a>`}
variables={{url: 'https://tacotranslate.com'}}
/>
השתמש בתוויות ARIA
כאשר מתרגמים טקסט של אלמנטים אינטראקטיביים כמו כפתורים, חשוב לכלול תוויות ARIA כדי להבטיח נגישות. תוויות ARIA מסייעות לקוראי מסך לספק מידע תיאורי לגבי פונקציית האלמנט.
לדוגמה, אם יש לכם כפתור שמאפשר למשתמשים להעתיק טקסט מבלוק קוד, תוכלו להשתמש בתכונה aria-label
כדי לספק תיאור ברור:
<Translate
aria-label={useTranslation('Copy to clipboard')}
string="Copy"
/>
משהו בזה מרגיש מאוד מטא.
מערך המקורות הגלובלי ומספר מקורות רכיבים
תבנית זו עובדת רק כאשר משתמשים ב-Next.js Pages Router.
בעת עבודה עם יישומים גדולים יותר, מומלץ לפצל מיתרים ותרגומים למספר origins קטנים יותר. גישה זו מסייעת בהפחתת גודל החבילות וזמני ההעברה, ומבטיחה לוקליזציה יעילה וקלה להרחבה.
בעוד שזה פשוט בעת רינדור רק בצד הלקוח, ניהול origins הופך במהרה למורכב כשמבצעים שליפת תרגומים עבור רינדור בצד השרת. עם זאת, ניתן לאוטומט את ניהול origins באמצעות השימוש במערך הלקוח origins
של TacoTranslate.
שקלו את הדוגמה הזו, שבה הפרדנו את הרכיבים והדפים שלנו לקבצים נפרדים.
import TacoTranslate, {Translate} from 'tacotranslate/react';
import tacoTranslate from '../tacotranslate-client';
// Set an origin name for this component
const origin = 'components/pricing-table';
// Push the origin into the origins array as this file is imported
tacoTranslate.origins.push(origin);
export default function PricingTable() {
return (
<TacoTranslate origin={origin}>
<Translate string="Pricing table" />
// ...
</TacoTranslate>
);
}
import TacoTranslate, {Translate} from 'tacotranslate/react';
import getTacoTranslateStaticProps from 'tacotranslate/next/get-static-props';
import tacoTranslateClient from '../tacotranslate-client';
import PricingTable from '../components/pricing-table';
const origin = 'pages/pricing';
tacoTranslateClient.origins.push(origin);
export default function PricingPage() {
return (
<TacoTranslate origin={origin}>
<Translate string="Pricing page" />
<PricingTable />
</TacoTranslate>
);
}
// We will now fetch translations for all imported components and their origins automatically
export async function getStaticProps(context) {
return getTacoTranslateStaticProps(context, {client: tacoTranslateClient});
}
ראה את דוגמאות לעיבוד צד שרת למידע נוסף על getTacoTranslateStaticProps
.