TIP
यह दस्तावेज़ AI द्वारा अनुवादित किया गया है। किसी भी अशुद्धि के लिए, कृपया अंग्रेजी संस्करण देखें
अंतर्राष्ट्रीयकरण
अंतर्राष्ट्रीयकरण फ़ाइलें
प्लगइन में, फ्रंटएंड और बैकएंड दोनों के लिए बहुभाषी फ़ाइलें src/locale फ़ोल्डर में रखी जाती हैं।
|- /plugin-i18n
|- /src
|- /locale # बहुभाषी फ़ोल्डर
|- en-US.ts # अंग्रेजी भाषा
|- zh-CN.ts # चीनी भाषा
संबंधित बहुभाषी फ़ाइलों (/src/locale/${lang}.ts) में अनुवाद प्रविष्टियाँ जोड़ें। यदि आप पहली बार कोई बहुभाषी फ़ाइल जोड़ रहे हैं, तो इसे प्रभावी होने के लिए आपको एप्लिकेशन को रीस्टार्ट करना होगा। आप app:getLang API का उपयोग करके यह जाँच सकते हैं कि अनुवाद प्रविष्टियाँ सफलतापूर्वक जोड़ी गई हैं या नहीं।
डिफ़ॉल्ट URL: http://localhost:13000/api/app:getLang?locale=zh-CN
i18n से संबंधित API
- server
- app.i18n
- app.t(text, options)
- ctx.i18n
- ctx.t(text, options)
- plugin.t()
- client
- ctx.i18n
- ctx.t(text, options)
- plugin.t()
- useT()
- utils
- react-i18next
- useTranslation(ns)
- withTranslation(ns)
सर्वर
app.i18n server
app.i18n एक ग्लोबल i18n इंस्टेंस है, जिसका उपयोग आमतौर पर CLI में किया जाता है। उदाहरण के लिए, कमांड-लाइन इंटरैक्शन को लागू करने के लिए इसे inquirer के साथ जोड़ा जा सकता है।
import select from '@inquirer/select';
import input from '@inquirer/input';
export class PluginSampleI18nServer extends Plugin {
load() {
this.app.command('test-i18n').action(async () => {
const answer1 = await select({
message: 'एक भाषा चुनें',
choices: [
{
name: '中文',
value: 'zh-CN',
},
{
name: 'English',
value: 'en-US',
},
],
});
await this.app.changeLanguage(answer1);
const answer2 = await input({
message: app.i18n.t('अपना नाम दर्ज करें'),
});
console.log(app.i18n.t(`आपका नाम {{name}} है`, { name: answer2 }));
});
}
}
app.t(text, options) server
ctx.i18n server
ctx.i18n ग्लोबल app.i18n का एक क्लोन इंस्टेंस है। प्रत्येक रिक्वेस्ट का ctx पूरी तरह से स्वतंत्र होता है और क्लाइंट की भाषा के आधार पर बहुभाषी जानकारी देता है।
क्लाइंट रिक्वेस्ट पैरामीटर को क्वेरी स्ट्रिंग में रखा जा सकता है
GET /?locale=en-US HTTP/1.1
Host: localhost:13000
या रिक्वेस्ट हेडर्स में (अनुशंसित)
GET / HTTP/1.1
Host: localhost:13000
X-Locale: en-US
उदाहरण
export class PluginSampleI18nServer extends Plugin {
load() {
this.app.use(async (ctx, next) => {
if (ctx.path === '/api/test-i18n') {
ctx.body = `${ctx.i18n.t('नमस्ते')} ${ctx.i18n.t('दुनिया')}`;
}
await next();
});
}
}
http://localhost:13000/api/test-i18n?locale=zh-CN देखें
ctx.t(text, options) server
plugin.t() server
क्लाइंट
ctx.i18n client
ctx.t(text, options) client
plugin.t()
useT()
उपयोगी फ़ंक्शन
tExpr(text) server client
react-i18next
useTranslation(ns) client
withTranslation(ns) client