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.
My gist: https://gist.github.com/giedriusr/650ec9d6dbe57faf53c5cd470e0ff1ee
The problem is that react component is not aware of the other locale when I try to change it. Even if I change default locale to something else rather than "en", it still defaults to EN. No idea how to work around this. Anyone?