I am creating mobile app using magento2 APIs. The problem is that I want to translate messages according to the store on frontend for example i want to translate the error messages and success messages of create account API by using i18 how can i do that without overriding APIs
You can achieve this by leveraging Magento 2's built-in localization functionality without having to override the API. You can use translation CSV files to manage translations for different languages in your mobile app.
Here's a step-by-step guide to accomplish that:
Identify the store view code: You need to get the store view code associated with the language you want to translate your messages to. You can fetch this information using the Magento 2 StoreConfig API:
Create translation CSV files: For each language you want to support, create a separate translation CSV file in the following format:
i18n/<language_code>_<country_code>.csv. For example, for French, the file name would be
Add translations: Add the translations for your messages in the respective translation CSV files. The CSV file should contain two columns, with the first column being the original text (in English) and the second column being the translated text. Example of
"Email already exists.","L'email existe déjà." "Account created successfully.","Compte créé avec succès."
Import translations in your mobile app: You can fetch the appropriate translation CSV file based on the store view code you retrieved in step 1. Then, parse the CSV file and create a dictionary or key-value store for the translations in your mobile app.
Replace messages with translations: Whenever you receive an error or success message from the Magento 2 API, use the dictionary or key-value store to look up the translated message based on the original message. Display the translated message in your mobile app.
This approach allows you to manage translations without having to modify the Magento 2 API. Just make sure to keep your translation files up-to-date and in sync with the messages returned by the API.