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.
@jhilden thanks for sharing this and hello from 9flats! I'm not using any patches like that, but instead
require_self
is enough: