I was wondering what is the best way to translate some longer texts with html formatting. There was a couple of solutions I came across, but did not know what would be the best one.
-
Writing a couple of html files with language extension (e.g. maintext_en.html, maintext_de.html, …) and import this files.
Pro: It’s easy for me
Contra: Not so easy for translators
-
Writing only one html file with some markers and parse the file.
Pro: A bit easier for translators, they have to edit only one file.
Contra: I need a parser
-
Using l10n inside the code
Pro: The easiest way for translators
Contra: Uses a lot of memory when the plugin runs. And the risk of losing some formattings.
What is the best and most efficient way to make long texts within a plugin translateable?
Most translation tools are really hard to use when you try to handle a long text, so the translators have to use a HTML editor anyway. Use separate files, but use the language prefix as directory name:
Thatâs easier to handle for translators and for you too.
You could also set up a WordPress site for translations and use a custom post type, so translators can use the regular editor (outdated example), and you handle just the import and export.
Using gettext is the only proper way translations in WordPress, but it really depends on the context.
In my themes, for example, I always have a place in footer for some copyright text and whatnot. I can assume that this text will be changed by any user (even the English-speaking one), so using gettext in this context is a little bit pointless, as user would have to go through the entire process of translating the theme just for the footer text. For this purpose I use WordPress settings API and create an option page that lets users choose their own footer text.