I am trying to translate a wordpress theme to Arabic and I am totally new to the translation field.

I followed the steps in this question and I added a new domain to my theme instead of hard coding everything .

  1. I loaded my text domain in the functions file :

    add_action('after_setup_theme', 'lanugage_domain');
    function lanugage_domain(){
        load_theme_textdomain('users', get_template_directory() . '/languages');
  2. I added every text in the theme with __() or _e() function for example

text --> __('text','users')

  1. I created a new PO file in my language directory with the name of users.pot with Poedit with the UTF-8 Charset

    3.1 - When I started scanning the files and error appeared to me

      01/11/2015 08:50:54: C:\Program Files (x86)\Poedit\GettextTools\bin\xgettext.exe: Non-ASCII comment at or before js/jquery.dialogBox.js:14.
      01/11/2015 08:50:54:                                                              Please specify the source encoding through --from-code
      01/11/2015    08:50:54:                                                              
      01/11/2015 08:50:54: Entries in the catalogue are probably incorrect.
      01/11/2015 08:50:54: Updating the catalogue failed. Click on 'Details >>' for details.

I didn't knew from where this error came from because I am using the UTF-8 charset, did I miss something ?

  • In the concern of translation, you need to put only English characters in the theme within any gettext function. And using a tool like POEdit or EasyPO you can then convert them to any language. I think the problem is occurring because you've already put any Arabic text somewhere in the theme, and it seems it's in a .js file. Try the Theme Check plugin to find any Non-ASCII character in your theme, and fix it first. – Mayeenul Islam Nov 1 '15 at 9:28
  • @MayeenulIslam For the response, I didn't add any Arabic letter to my project yet I tried Installing the plugin (polylang) it may added the Arabic letter somewhere (maybe) but now it is deactivated . And when I add an English text to my code I add it like this <?php echo __("text text","users"); ?> – Marox Tn Nov 1 '15 at 11:25
  • Please use Theme Check with "Suppress Info" unchecked. – Mayeenul Islam Nov 1 '15 at 12:12
  • What does said file at line specified contains precisely? – Rarst Nov 1 '15 at 15:00
  • Oh, I checked the line the error was pointing to, it was on Chinese letter in a javascript comment, I didn't see it in the first place :) – Marox Tn Nov 2 '15 at 10:39

in poeditor go to file->preferences->extractors->javascript->edit and change language JavaScript to php

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.