Monite’s React SDK supports a localization mechanism. The React SDK defaults to the browser’s locale for handling localization within SDK components. However, you can explicitly define localization using the code prop on the MoniteProvider wrapper.
Use Monite’s custom localization mechanism for any of purposes:
code property.code property.currencyNumberFormat property.The following snippet shows how to use the locale prop on the MoniteProvider wrapper:
The code prop is an optional property that handles the usage of delimiters and decimal separators for different countries, regions, or locales. It also handles the date formatting across various UI components. The accepted format for the code property must adhere to the BCP-47 language tag standard.
The currencyNumberFormat format on the locale prop allows entities to define the configuration that handles the display of currencies on the SDK. This includes using either currency code or symbol and using delimiters on numbers.
The currencyNumberFormat object contains two properties—display, and localeCode.
display property handles using currency codes or symbols on currency displays in the SDK. This property has two values: code and symbol. If this property is not provided, the SDK will use currency symbols on all currency displays within the SDK.localeCode property handles the number formatting and use of delimiters for currencies on the SDK. This property accepts the BCP-language standard for currencies, regions, and locales. This property extends the code prop on the MoniteProvider wrapper, allowing entities to provide a differrent number and currency display formatting for currencies in the SDK. If not provided, currencies will inherit the format defined in the code prop.Monite allows entities to customize texts on the React SDK. This includes changing certain SDK text labels to other English texts. This feature also allows entities to translate text to other languages according to their user-specific or locale requirements.
There are two implementation approaches you can use to handle text customization. The approach chosen depends on your requirements.
MoniteProvider componentIf you need to change just a few text labels, you can specify them in the locale property of MoniteProvider component as shown below. In this example, we replace the “Counterpart Name” and “Counterpart” labels with “Supplier Name”:
The messages prop is an object used to define text translations and customizations. In the messages object:
msgid strings. The keys match the exact text labels that you see in the UI.Any other labels not specified in the messages object will keep their original text.
Portable Object (PO) is the standard file format for localization. A PO file is a text file that includes the original texts and the translations.
Monite SDK includes a template PO file here that you can use or pass to your translators. This can be useful if you want to add multiple translations to your project.
The typical procedure is:
Copy the template file somewhere and open it in a translators’ tool (such as СrowdIn or similar).
Create a new locale and translate the messages.
Save the translations to a new messages.po file. Put this file into the src/locales/{locale} directory of your project, where {locale} is your locale name. For example, if you use the en locale, the file path would be src/locales/en/messages.po.
Create the lingui.config.js file in the root directory of your project (next to the package.json file), with the following contents:
Run npx @lingui/cli compile.
Use the generated messages.mjs file to pass the translated messages to the <MoniteProvider>: