שיטות מומלצות
הכניסו כתובות 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
של לקוח 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
.