PPX rewriter
The ocsigen-i18n-rewriter PPX extension transforms [%i18n ...] expressions into calls to the generated translation functions.
Setup
Add the PPX to your dune file:
(preprocess (pps ocsigen-i18n -- --default-module MyI18n))
where MyI18n is the name of the module generated by ocsigen-i18n-generator (the basename of the output file, capitalized).
Without dune, use:
-ppx 'ocsigen-i18n-rewriter --default-module MyI18n'
Expressions
The PPX supports the following forms:
| [%i18n foo] | Calls MyI18n.Tr.foo () (HTML) |
| [%i18n S.foo] | Calls MyI18n.S.foo () (string) |
| [%i18n bar ~x:expr] | Passes a labelled argument |
| [%i18n OtherMod.foo] | Calls OtherMod.Tr.foo () |
| [%i18n OtherMod.S.foo] | Calls OtherMod.S.foo () |
Module affixing
To avoid redundancy when using multiple i18n modules, you can auto-prefix and auto-suffix module names:
(preprocess (pps ocsigen-i18n -- --default-module MyI18n --prefix Pr_ --suffix _i18n))
With this configuration, [%i18n Feature.foo] becomes Pr_Feature_i18n.Tr.foo ().
Important: Do not name your i18n file s.tsv, as S is reserved for the string module.