Support

Admin Tools for WordPress

#33264 – Languages for Admintool for WordPress

Posted in ‘Akeeba Admin Tools for WordPress’
This is a public ticket. Everybody will be able to see its contents. Do not include usernames, passwords or any other sensitive information.
Thursday, 18 June 2020 08:49 CDT
Webcraft Solutions

Hello,

in WordPress it is in the meantime very easy to create language files for each language and it is much more easier to implement them as in Joomla for example.

So my question is: When will you have a possibility (maybe POT-file) for Admintools for WordPress?

 

Best regards

Sascha

 
Thursday, 18 June 2020 09:48 CDT
nicholas

The short answer is that we tried that, it was causing major grief and we ditched it.

We decided to not use GNU GetText (that's what the .po/.mo files are) because it's very difficult to create a correct translation.

For example, in English the string "process" may refer to process (noun) or process (verb). GNU GetText uses the string as the key. It allows differentiation by using a context and lets you provide a comment for disambiguation to translators. I've found that the way WordPress implements that makes it impossible to differentiate single word nouns and verbs on the same page. You need to adapt your language to satisfy the tool you are using for the translation. This is wrong. It must be the other way around. We write code for humans.

Moreover, the inclusion of the entire text to be translated breaks the cadence of code which makes it difficult to navigate and makes every change far more error prone. This led to a lot of bugs in the original Admin Tools for WordPress 1.0 release that was using GNU GetText. The Joomla translation method uses far shorter keys such as SOFTWARENAME_VIEWNAME_LBL_OPTION_HELP instead of a 60 word help tip.

Similar to that, the inclusion of the entire full text makes it problematic when you are reusing text in different places and you need to change it. Ironically, the shorter the text is the more difficult it becomes to find all of its uses. Things like "Confirm", "Publish" and "Unpublish" are impossible to locate in the code which leads to bugs every time you change a language string.

Also related to the above, since the original translation key disappears, every time you change a small typo in the English original all translations for that piece of text disappear and need to be re-translated. This is extremely annoying to translators, especially if it's a 50-60 word help tip.

Finally, regarding what is easier to do, the WordPress way or the Joomla way. Here's a comparison for Greek as an example.

Joomla way. Copy the translation INI file from en_GB.something.ini to el_GR.something.ini. Put in the appropriate directory. Edit the INI file with a plain text editor. Done.

WordPress way. Run spealized tooling to get the .pot file. Find the .pot file and download it. Use a text editor or special software to translate it into a .po file. Compile the .po file into .mo using specialized software and platform-specific instructions. Place the .mo file in your language directory. Done.

I'm sorry, but I find using specialised tools to create the .pot and compile the .po to .mo to be infinitely more difficult than NOT having to do these steps at all. If it weren't for these steps both methods would be identical from the perspective of managing a translation.

In any case, this point is moot. Two years ago I explained why we're not going to be including translations in our software.



Nicholas K. Dionysopoulos

Lead Developer and Director



🇬🇷Greek: native

🇬🇧English: excellent

🇫🇷French: basic



Please keep in mind my timezone and cultural differences when reading my replies. Thank you!



Saturday, 18 July 2020 17:17 CDT
system
This ticket has been automatically closed. All tickets which have been inactive for a long time are automatically closed. If you believe that this ticket was closed in error, please contact us.
This ticket is closed, therefore read-only. You can no longer reply to it. If you need to provide more information, please open a new ticket and mention this ticket's number.