Languages and RTL Support
Everything WC Account Portal shows your customers (menu names, buttons, the welcome text, the login page, empty states) comes translated into 20 languages besides English, and the whole portal mirrors itself for right-to-left languages such as Arabic, Hebrew and Persian. You do not have to set anything up: the portal follows your site’s language.
Built-in languages#
The translation files are in the plugin’s languages/ folder, one per locale:
| Language | Locale |
|---|---|
| Arabic | ar |
| Chinese (Simplified) | zh_CN |
| Danish | da_DK |
| Dutch | nl_NL |
| Finnish | fi |
| French | fr_FR |
| German | de_DE |
| Hebrew | he_IL |
| Indonesian | id_ID |
| Italian | it_IT |
| Japanese | ja |
| Korean | ko_KR |
| Norwegian (Bokmål) | nb_NO |
| Persian | fa_IR |
| Polish | pl_PL |
| Portuguese (Brazil) | pt_BR |
| Russian | ru_RU |
| Spanish (Spain) | es_ES |
| Swedish | sv_SE |
| Turkish | tr_TR |
English is the plugin’s own language. The folder also has the template file wc-account-portal.pot for making a new translation.
If you use Nahnu Login Shield, the plugin also ships translations of Login Shield’s visitor-facing text (its login screens and messages) in the same 20 languages. They are only used when WordPress has no translation file of its own for Login Shield in that language.
Choose the language#
Single-language site: go to Settings > General > Site Language in WordPress and pick the language. The portal uses the matching file.
Multilingual site (WPML or Polylang): the portal uses the language of the page the customer is viewing. The plugin loads its translation after WPML has switched the language, so the account pages, the login page and the sign-out link all follow the current language.

WordPress loads the file whose locale matches the site exactly. A site set to a locale that is not in the list (for example Spanish (Mexico), es_MX) shows the plugin’s text in English unless you add a translation for that locale. See “Your own translation file” below.
What the translations cover, and what they do not#
The built-in files translate the plugin’s own text. Text you type in the settings is shown as you typed it, with one exception: the default texts (such as the welcome title “Welcome back, {{first_name}}!”, the tagline “Your account, your way.” and the default menu names) are shown in the site’s language as long as you have not changed them.
To show your own texts in several languages, use the language panels on Content & Text and Translations (see Translating Your Custom Text), or WPML String Translation (see Using the Portal with WPML).
Your own translation file#
To change a built-in wording or add a language that is not shipped:
- Make a translation from
wc-account-portal.pot(or copy the.pofile of a close language) with a translation editor. - Save it as
wc-account-portal-{locale}.poand.mo, for examplewc-account-portal-es_MX.mo. - Upload both files to
wp-content/languages/plugins/.
Files in wp-content/languages/plugins/ are kept when the plugin updates. Do not put your own files in the plugin’s languages/ folder: an update replaces that folder.
Right-to-left (RTL) support#
When the language is written right to left, the portal sets dir="rtl" on the page and the layout mirrors:
- The account menu sits on the right on computers, and the phone drawer slides in from the right.
- On the login and register page, the brand panel (logo and tagline) moves to the right side.
- Back arrows point the other way.
- Spacing, borders and alignment use logical CSS properties, so they flip with the text direction.
- Letter spacing is turned off, so Arabic letters join properly.

How the portal decides the page is RTL#
- With WPML or Polylang, the current language code is checked first. These codes are RTL:
ar(Arabic),he(Hebrew),fa(Persian),ur(Urdu),yi(Yiddish),ps(Pashto),sd(Sindhi),ku(Kurdish),ckb(Central Kurdish),dv(Dhivehi). - Otherwise, WordPress decides: the page is RTL when the site language is an RTL language.
The navigation widget that shows the account icon on your theme’s pages follows the same rule.
Fonts for RTL languages#
The portal loads no web fonts. It uses the device’s system font, which includes Arabic, Hebrew and Persian letters. To use your own font, load it in your theme and set the --wap-font variable in WooCommerce > Account Portal > Appearance > Advanced CSS, for example:
:root { --wap-font: "Vazirmatn", sans-serif; } In the settings page#
On Content & Text, Translations and Pages, RTL languages get an RTL badge on their language button, and their translation fields are typed right to left.
Related#
Was this helpful?
Thanks for your feedback!
✓ Feedback received. Thank you!