Table of Contents

নেটিভ অ্যাপস-এ মাল্টি-ভ সমর্থন সিস্টেম তৈরি করা হচ্ছে

একাধিক ভাষাকে সমর্থন করা মোবাইল অ্যাপ্লিকেশন এখন আর ঐচ্ছিক নয়- এটা বিশ্বের দত্তকের জন্য যে কোন ধরনের আবেদনের লক্ষ্য।

স্থানীয়করণ

স্থানীয় ভাবে অনুবাদ করা সহজ। এতে বিভিন্ন লেখা, তারিখ, তারিখ, রিগ্রেশনাল (ম্যাসেড volation), টেক্সট নির্দেশনা, এবং এমনকি অনুবাদ করার জন্য UIS বিন্যাসকে সমন্বয় করা, এবং এমনকি আপনার অবস্থানের ক্ষেত্রে যথাসম্ভব মানের ক্ষেত্রে সমন্বয় করা। একটি নকশা 18n সিস্টেম আপনার কোড থেকে আলাদা করা, মূল কোড ব্যবহার করা, এবং পুনরায় তা পুন:শব্দের প্রয়োজন।

নেটিভতে কি কি চ্যালেঞ্জ

  • ডিভাইস self-এর জন্য নেটিভ মডিউল (অ্যান্ড্রেল ও অ্যান্ড্রয়েডের মধ্যে উপস্থিত)।
  • দ্দোপূর্ণভাবে অনুবাদ ফাইল লোড এবং সংরক্ষণের উদ্দেশ্যে ফাইল লোড করা।
  • পুরো অ্যাপ্লিকেশন জুড়ে সক্রিয় ভাষার জন্য (যেমন ন্যাভিগেশন ও পছন্দসহ) ব্যবস্থাপনার অবস্থা সংরক্ষিত রয়েছে।
  • বিপরীত বিন্যাস নির্ধারণের প্রণালী নির্ধারণ করুন -RetPL [FLT] [FLT] কিন্তু সতর্ক থাকা আবশ্যক।
  • কনটেক্সটের মধ্যে উপস্থিত সকল পংক্তি পরীক্ষা ও পরীক্ষা করা হবে।

ডানদিকে E18n লাইব্রেরি বাছাই করা

বিভিন্ন লাইব্রেরিতে বিদ্যমান, [FLT] [F] [FPR][FOP]] হল স্থানীয় আদিবাসীদের জন্য সবচেয়ে জনপ্রিয় ও বৈশিষ্ট্যসূচক পছন্দ । [FOPL] এর উপরে dep:L [FO:] [F]] SIL [FOPL], [FOPROD [F]:::L] [F]] [F]]] এর পরে, একটি অভ্যন্তরীণ বস্তু উপলব্ধ করা হয় । বর্তমানেও নয়, শুধুমাত্র স্থানীয় SILON [FPRUT]:L [FPRIP::::L [FODODON [FCPL]] এর পরে, পংক্তিকে [FW [F] এর পরে, তবে এর জন্য একটি বিকল্প নির্বাচন করুন [FIL [FIL [FILUS-L] এর জন্য উপলব্ধ]::::::::LODODODOD.LUT

মূল লাইব্রেরি ইনস্টল করা হচ্ছে

আবশ্যক প্যাকেজ ইনস্টল করার প্রণালী:

npm install react-i18next i18next i18next-http-backend react-native-localize

ঐচ্ছিকভাবে [[[F][F]] 1 (FOCTRECT] বলা হয় :] ডিভাইস পছন্দের ভিত্তিতে স্বয়ংক্রিয় ভাষা সনাক্তকরণের জন্য [FLT] স্থানীয় মডিউলের সাথে প্রতিক্রিয়া জানানোর জন্য (N60) চিহ্নিত করা প্রয়োজন। উল্লেখ্য, প্রতিক্রিয়াস্বরূপ, R60-jobi-nigni- sobertwetRit-র মধ্যে উপস্থিত স্থানীয় অবস্থানের জন্য সুনির্দিষ্টভাবে চিহ্নিত করা আবশ্যক।

I18n ইনস্ট্যান্স নির্মিত হচ্ছে

একটি কনফিগারেশন ফাইল তৈরি করুন, যেমন:, উদাহরণ, [FLTR]:

import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';
import * as RNLocalize from 'react-native-localize';
import en from './translations/en.json';
import es from './translations/es.json';
import fr from './translations/fr.json';

const resources = { en: { translation: en }, es: { translation: es }, fr: { translation: fr } };

const detectionOptions = {
 order: ['localStorage', 'navigator'],
 caches: ['localStorage'],
};

i18n
 .use(initReactI18next)
 .use(require('i18next-browser-languagedetector').default) // for RN, you may replace with custom detector
 .init({
 resources,
 fallbackLng: 'en',
 interpolation: { escapeValue: false },
 detection: {
 // For RN, we'll override detection manually (see below)
 },
 });

// Detect device language at startup
const detectLanguage = () => {
 const locales = RNLocalize.getLocales();
 if (locales && locales.length > 0) {
 const langCode = locales[0].languageCode;
 const supportedLanguages = Object.keys(resources);
 const lang = supportedLanguages.includes(langCode) ? langCode : i18n.options.fallbackLng[0];
 i18n.changeLanguage(lang);
 }
};
detectLanguage();

// Listen to app focus for locale changes
export default i18n;

[[F][FLT] ব্যবহার করে [F] IRER[[F][FF] - স্থানীয়] দ্বারা আপনার অ্যাপ্লিকেশনকে চিহ্নিত করে । স্থানীয় বৈশিষ্ট্যকে সম্মান করে । প্রথম ফাংশনটি চালানো হবে ও প্রথম ভাষা পরিবর্তন করতে আরম্ভ করা হবে । (যদি আপনার ভাষা পরিবর্তন হয়)

অনুবাদকৃত ফাইল কাঠামো

চিহ্নিত ভাষার এবং নেমার মাধ্যমে আপনার অনুবাদ সংগঠিত করুন । উদাহরণ: [FLTR]

{
 "common": {
 "welcome": "Welcome",
 "greeting": "Hello, {{name}}!"
 },
 "home": {
 "title": "Home Screen",
 "description": "This is a multi-language React Native app."
 },
 "errors": {
 "network": "Network error. Please try again."
 }
}

টি মূল্য ব্যবহার করে (e. g. com, [FLT], [FLT], [FLT[F], বিশাল একটা অ্যাপকে সাহায্য করে এবং অনুবাদ করার অলসকে কার্যকর করে ।

অংশভুক্তকারী

ব্যবহারের উদ্দেশ্যে চিহ্নিত তাপমাত্রা

যে কোনো কাজের তালিকায়

import { useTranslation } from 'react-i18next';

const MyComponent = () => {
 const { t, i18n } = useTranslation('common');
 return (
 
 {t('welcome')}
 {t('greeting', { name: 'John' })}
  i18n.changeLanguage('es')}>
 Switch to Spanish
 
 
 );
};

[[[F][FLT][FLT][FLT]] ফাংশনগুলো উল্লেখ করে lIG ভেরিয়েবল এবং lits বহুবিবর্তন এবং পরিচালনার কাজ, পরিবর্তন, [FOFODO::: [FLTL] -set provid করুন

ট্রান্স কম্পোনেন্ট ব্যবহার করা হচ্ছে

এই বৈশিষ্ট্য সহ gettext অথবা প্রতিক্রিয়াসূচক পংক্তি ধারণকারী পংক্তি:

import { Trans } from 'react-i18next';
// In translations: "welcome_html": "Welcome, {user}!"

 Welcome, {user}!

প্লুরাল, লিঙ্গ এবং প্রসঙ্গকে প্রতিরোধ করা

* ১৮১৭ সালে বক্স থেকে উন্নত বহুভাষী নিয়মাবলীকে সমর্থন করা হয় । [[FLT] [FLT] [FLT] এর সাথে [FLT] ব্যবহার করে একটি সংক্ষিপ্ত বিবরণ]: উদাহরণ

{
 "item": "{{count}} item",
 "item_plural": "{{count}} items",
 "item_other": "{{count}} items"
}

ব্যবহারপ্রণালী:[[FLT] স্বয়ংক্রিয়ভাবে নির্দিষ্ট বিন্যাসগুলি স্বয়ংক্রিয়ভাবে নির্বাচন করা হয় । স্বয়ংক্রিয়ভাবে স্বয়ংক্রিয়ভাবে লোকেইলের পরে নির্দিষ্ট করা হবে । স্ত্রী ও অন্যান্য প্রসঙ্গ [FLTL] থেকে প্রাপ্ত ফলাফল পরিচালনা করা যাবে । [FLT]

পরিবর্তনশীল ভাষা পরিবর্তক ও Pelt; পরিবর্তন

ব্যবহারকারীর পছন্দে স্থির করতে, নির্বাচিত ভাষা [[F][FOPL][FOPL] [FOPL] [FOPL] [FREL] [FL]:::] [FL]]] এবং এর পরে চালু করে শুরু করুন কনফিগারেশন পরিবর্তন

import AsyncStorage from '@react-native-async-storage/async-storage';

const languageDetector = {
 type: 'languageDetector',
 async: true,
 detect: async (callback) => {
 const storedLang = await AsyncStorage.getItem('user-language');
 callback(storedLang || 'en');
 },
 init: () => {},
 cacheUserLanguage: async (lng) => {
 await AsyncStorage.setItem('user-language', lng);
 },
};

i18n.use(initReactI18next).use(languageDetector).init({
 fallbackLng: 'en',
 resources,
 interpolation: { escapeValue: false },
});

ব্যবহারকারী দ্বারা নির্ধারিত মান ধার্য হলে, পরবর্তী শুরু করা হলে পছন্দসই মান স্বয়ংক্রিয়ভাবে পরিবর্তিত হবে ও পরবর্তী ধাপে প্রত্যাবর্তন করা হবে ।

ডান-থেকে-বাম (আর.এল.) সমর্থন

যখন ভাষা আরবী, ইব্রীয় বা ফার্সি ভাষা, জোর করে জোর করে গঠিত হয়:

import { I18nManager } from 'react-native';

const changeLanguage = async (lng) => {
 await i18n.changeLanguage(lng);
 const isRTL = i18n.dir(lng) === 'rtl';
 I18nManager.forceRTL(isRTL);
 // On Android, you may need to restart the app for full RTL effect
};

সম্পূর্ণ জ্যাহুর অভিজ্ঞতার জন্য, [FLT] ব্যবহার করুন [FLT] এবং[FLT] মনোযোগ দিয়ে একটি লাইব্রেরি ব্যবহার করুন । [FOPL] এর মত একটি লাইব্রেরি ব্যবহার করুন [FOPL]:[FOPL][FL][FR][/FLT] এর জন্য থিমের ভিত্তি: [F]

সার্ভার থেকে অনুবাদসমূহ লোড করা হচ্ছে (--the-Id-r)

বিভিন্ন সামগ্রী ছাড়া যে সব টুল-গুলির সাহায্যে বাগ সংরক্ষণ করা হবে সেগুলির জন্য ভাষা যোগ করতে হবে, বিভিন্ন সামগ্রী থেকে অনুবাদ JSON বার্তা প্রাপ্ত করতে হবে । [F0:] [F8][FOP] ব্যবহার করুন:LODOT [FOP]:L]

import HttpBackend from 'i18next-http-backend';

i18n.use(HttpBackend).init({
 backend: {
 loadPath: 'https://your-api.com/locales/{{lng}}/{{ns}}.json',
 },
 fallbackLng: 'en',
 ns: ['common', 'home'],
 defaultNS: 'common',
});

AsyncStetetep থেকে প্রাপ্ত অনুবাদগুলো বার অনুরোধ এড়ানোর জন্য এক্তিয়ার মধ্যে সংরক্ষণ করা হয়েছিল । শুধু আপডেটকৃত ফাইল ডাউনলোড করার পদ্ধতি সঙ্গে সঙ্গে এর একটি সংস্করণ সঙ্গে উপলব্ধ করা.

কর্মক্ষমতার বিশ্লেষণ

  • [[F]] ব্যবহার করো: CROD[FLT][FLT]: বর্তমান স্ক্রিনের জন্য লোড করো । শুধু অলস লোড করো প্রাথমিক সংখ্যার পরিমাণ কমিয়ে দাও ।
  • [[[F] regr][F][F][F2]]]:[F22:]] ইতিমধ্যে পরিবর্তিত পরিবর্তন করার জন্য সাবস্ক্রাইব করা বাগগুলি শুধুমাত্র ভাষার সাথে যুক্ত বাগগুলোর সীমা অতিক্রান্ত হয়। : [FOD]
  • [[F]PROPL [FP]] ফাইল [FLT]:] নির্মাণ, বিন্যাসের সময় JSONকে পরিবর্তিত করা হবে, বিন্যাসের বিন্যাসে রূপান্তর করা হবে ।
  • [[F] [F] [FLT] - এর জন্য [FLT], [FOPL][F][FONECT][FIN]][F3]][ ৩] আপনার কোড থেকে স্বয়ংক্রিয়ভাবে অনুবাদ সংগ্রহ করা হবে

বহু-ভাষী ফাংশান পরীক্ষা করা হচ্ছে

আপনার অনুবাদ ফাইলের জন্য ইউনিট লিখুন: কোনো কী- টি, সকল অনুরুপ, এবং বহুলোতা সঠিকভাবে কাজ করা হয় । উদাহরণ: //[F22:] একটি IRC92: পরীক্ষা, ভাষা পরিবর্তন, এবং যে উপাদানটি উভয় প্ল্যাটফর্মে প্রদর্শন করা হয় । এছাড়া পরীক্ষা করুন ।

সর্বোত্তম অভ্যাসের বৈশিষ্ট্য

  • [[F]] সাধারণত অনুবাদ কী- সমূহ ব্যবহৃত হয় [FLT] - কখনো হার্ড-কোডকৃত ব্যবহারকারীর পংক্তি ব্যবহার করা হয় না ।
  • [[F][FLT] অনুবাদগুলো অপরিবর্তিত থাকবে [F] বৈশিষ্ট্য অথবা পর্দার বৈশিষ্ট্যের সাথে [FLT] ।
  • [[F] অ- টেক্সটের ধ্বনি হিসাবে ব্যবহৃত মান [FLT[FLT], UI- এর সম্পূর্ণ অনুবাদকে বন্ধ করার জন্য ব্যবহার করুন ।
  • [[[F] প্রকৃত ডিভাইসের সাথে পরীক্ষা করুন[F] বিভিন্ন লোকেইলের বৈশিষ্ট্য সহ [FLT]
  • [[F] [FLT] সাংস্কৃতিক পার্থক্যের সাথে [FLT][FLT] ভাষা: তারিখ ফরম্যাট, রঙ, ছবি]
  • [[[F] আপনার I18n কাজের ডিরেক্টরীর সীমা উল্লেখ করুন। XFLT] অনুবাদক এবং ডেভেলপারদের জন্য [FLT]

বিপরীতমুখী নেটিভ ভাষার সমর্থন একটি ফল্ট বিনিয়োগ। lib[FOP] এর মত লাইব্রেরী [FOPRECT] [FON:L] [FRECT [FR] [FO:] [FR] [FL]] এবং [FREL] [FO[L]]]] এর জন্য একটি সাধারণ মান নির্ধারণ করুন। উল্লেখ্য::L [F] [F]] [FODL [FIL]] [FT]:L [F[L]]]]::: লগ ফাইল [F[L]]] এর দ্বারা একটি সাধারণ মান নির্ধারণ করুন