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