When using react-rails for an internationalized app it makes a lot of sense to use i18n-js for translations, so that you can reuse the the strings from your rails app's .yml files (and all the tooling & services that exist around that).
When you use the prerender feature of react-rails you face 2 problems:
- The first is that
translation.js
&i18n.js
from i18n-js need to be loaded inside the server-side JS prerendering processes, which is achieved by loading them inside thecomponents.js
. - The second problem is the server processes need to be aware of the current
locale
of each HTTP request. This is done by adding a custom renderer and using thebefore_render
hook to configure i18n-js accordingly for each render call.
@dmitry I see. I guess we have a different setup with a number of mid-size react "widget components" on top of a classic rails app, but no full react "application" where it would make sense to change the locale on the client-side. But it's definitely very good to know about this other alternative.