Before your start, you should have a basic understanding of Hexo. Please see Hexo setup, usage and Internationalization (i18n).
We’ll assume you want to write in English (en) and Arabic (ar) posts.
First of all, we’ll modify your current
_config.yml of your blog should contain the language attributes, like
locale: en or
locale: ar for example, determines the langauge of your blog. Now we should have the theme language files defined.
i18n theme localizations
To do this, inside your current
themes directory, you should have the languages of your site in the
If you don’t find the target language you want, for example, the Arabic language is not found, you can duplicate the
en.yml file to
ar.yml and translate its words.
At the time of this writing, this blog uses Rexo theme, that has support for left-to-right (LTR) and right-to-left (RTL) writings.
Creating multilingual posts
Let’s suppose we want to write a new English article about Kotlin lambdas,
hexo new 'Kotlin lambdas' --lang en
this will creates a new post of the English version at
hexo new 'Kotlin lambdas' --lang ar
that creates the Arabic version in
and so the files structure will be like this
Mixed left-to-right (LTR) and right-to-left (RTL) wirtings
Unlike English, the Arabic language is written from right-to-left (RTL language). So, writing Arabic content inside English one will make the Arabic flows in the same as the English direction, which is wrong.
There are two tag plugins that foce RTL or LTR direction used when writing.
You can use it to force RTL layout direction when used in a mixed with LTR (i.e., English).
If you have an English text and you want to add Arabic inside of it:
Is the inverse to the above one.
Now, if you have an Arabic text and you want to write English inside:
And that is it!
You can see the blog source code in order to understand how writing mixed RTL and LTR languages is done.
If you found anything unclear or there are discrepancies, please let me know about it in the comments 😇
August 1, 2017