Internationalization Enhancement#2074
Internationalization Enhancement#2074ksusha-beep wants to merge 3 commits intostacks-archive:masterfrom
Conversation
|
|
|
Thanks for this contribution. However, the Blockstack Browser is no longer supported by Hiro PBC as it's a deprecated product, replaced by the Hiro Wallet browser extension as found here: https://github.com/blockstack/stacks-wallet-web The corresponding issue in that repository can be found at leather-io/extension#1674 You're encouraged to open a similar PR for that product, which we would review! |
Absolutely, I will. Thank you! |
Description
This is at attempt to create internationalization / translation for the browser by adding a localization i18n library and browser language detector, based on this improvement issue: Add internationalization #1935.
User story
As a Blockstack user, I would like to change the to my preferred language either in Settings or in a navigation bar quick access menu. Automatic language switch is done (if available) based on i18next-browser-languageDetector or on querystring
${ROOT_URL}?lng=LANG. The fallback language is English.The following packages have been installed:
i18next is an improvement of i18n (which has been there for 11 years). It has more versions, fewer dependencies, more daily downloads, more weekly downloads, more monthly downloads, fewer open issues and fewer open pull requests. react-i18next has more frequent updates.
Affected code paths
The following two directories with the appropriate files were created, English, fallback and French as an example.
The
i18n.jsis the config file in theapp/jsdirectory. It specifies the configuration options of localizations, such as:Two ways to create a localization of the component in react:
i18n.jsconfig file and by wrapping the string ini18n.t('translatable_string'). Thetranslatable_stringmust be a string and have a reference to in on the translation json files.withTranslation()and then (checking PropTypes) import functiontusing propsRecommendation
One recommendation is to get
allAppslabelkey as a keyword, such as social_impact, or document_storage and not as a full string. It could then be referenced in the translation file and translated. Currently these labels come back in English, see img attached below.For details refer to issue #1935
Type of Change
Are documentation updates required?