Translating apps is technically challenging, time-consuming, and costly. Despite the high demand for localized apps internationally, only a small fraction of apps offered in the Shopify App Store are translated.
None of Shopify's app templates are localized, meaning that the full burden of responsibility is on the developer to research and implement an i18n framework for their app. It’s also more likely to be an afterthought until the developer decides to expand internationally, at which point the effort to externalize all the app's strings is much higher.
By localizing the default Node app template, we reduce the toil for developers, and give them a head start in localizing their apps from the start.
WHAT is this pull request doing?
This is a draft pull request for the purposes of discussion - it will not be merged until:
It has buy-in with the client libraries & app templates team
WHY are these changes introduced?
Part of the project App Localization - Tools and Guidance (tech design).
Translating apps is technically challenging, time-consuming, and costly. Despite the high demand for localized apps internationally, only a small fraction of apps offered in the Shopify App Store are translated.
None of Shopify's app templates are localized, meaning that the full burden of responsibility is on the developer to research and implement an i18n framework for their app. It’s also more likely to be an afterthought until the developer decides to expand internationally, at which point the effort to externalize all the app's strings is much higher.
By localizing the default Node app template, we reduce the toil for developers, and give them a head start in localizing their apps from the start.
WHAT is this pull request doing?
This is a draft pull request for the purposes of discussion - it will not be merged until:
This PR:
i18next
andreact-i18next
librarieslocales/en.json
locales/fr.json
file for demonstration purposesi18nUtil
utility to initializei18next
I18nProvider
component to encapsulate locale selectionNavigation
component so that the page title can be externalizedWhy react-i18next?
To Do
Checklist
Note: once this PR is merged, it becomes a new release for this template.
README.md
file and other related documentation, if applicable