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
file
_config.yml
The _config.yml
of your blog should contain the language attributes, like
language: |
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 languages
directory.
. |
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 _posts/en/Kotlin-lambdas.md
and thenhexo new 'Kotlin lambdas' --lang ar
that creates the Arabic version in _posts/ar/Kotlin lambdas.md
,
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.
hexo-tag-rtl
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:
{% rtl %} |
hexo-tag-ltr
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