The last couple two and a half months…

The last couple two and a half months a lot of things got changed. As you guys have seen in the last two posts is that we have this year our first GSoC project and the focus of the project will be a huge improvement for GlotPress. I can’t wait to see how GlotPress will look like in September.

We also did some nice improvements and some groundwork for upcoming features. This is a list of almost all changes that are made.

  • Branching
    • Preserve hierarchy when duplicating projects that contain multiple sub projects.
    • Allow editing of the project description.
    • Keep the original project status.
    • Fix an issue where translations original id was set to the original project originals.
    • Performance improvements. About 20% faster on a project with 15k originals.
  • Add CLI script to perform branching.
  • Save username when importing new translations.
  • Add “projects” filters to GP_Project to be able to sort the array.
  • Show fuzzy count of translated sets in the project view.
  • Add bulk setting for priority.
  • Introduce the fuzzy_count method for translation sets.
  • Add support for comments in Android import.
  • Add abstract class GP_Format to use for all our import/export formats.
  • Add indices on the original tables.
  • Add hook to discard_warning_edit_function.
  • Import “fuzzy” flag.
  • Make the $where array in for_translation filterable.
  • Improved unit tests
  • Added support for Ido and German (Switzerland).
  • And other minor fixes and cleanups.


Progress made so far in 2014

It has been almost five months since the last update post. Since then we added two major features to GlotPress.

The first one is that we have glossaries now. It gives validators the opportunity to have a list of most used words and how they should be translated. It makes it easier to manage translators since you can point them to the glossary. There are still some things to do but you can already use it. For progress see ticket #97. Props for Yoav on this one.

And as second we finally have project branching. It allows admins to duplicate a project with all the originals, translation sets and translations. Milan Dinić worked on this a long time ago and we finally committed this. See ticket #65.

Other features added are:

  • Allow setting originals’ priority on import. See #275.
  • Skip strings that are marked as untranslatable when using the Android format. See #279.
  • Stop needed ?action=upgrade when upgrading the database. See #281.
  • Improved guess_uri() to also work when there is an url passed in a GET parameter. See #282.
  • Updated jQuery and stop using $ sign. See #284.
  • Added phpunit.xml file and moved tests in their own folder. See #285.
  • Fixed UTF16 and escaping issue when importing new strings with the .strings format. See #295.
  • Generate .htaccess file automatically when posibble. See #280.
  • Added more unit tests.
  • Added support for Fulah, Tigrinya and Rohingya.
  • Added wp_locale for Irish, Marathi, Mongolian and Amharic.
  • Fixed the Rohingya locale information.

We recommend everyone who is using GlotPress to update to the latest code base.


Since we gain a bit more activity lately…

Since we gain a bit more activity lately due the fact that Yoav Farhi started to contribute back to GlotPress. One of the great things he did was building the glossary features which still needs some fine tuning but already looks really great. Because of this I would love to have a weekly or biweekly meeting and I would love to hear if you would like to see this and when it would fit best.

#meeting, #regular-meeting

Unit tests improvements

The last 24 hours I made a few changes to the unit tests. I little bit cleaned out some of the code and move all the tests inside its own folder. I also added a phpunit.xml.dist file that by default also logs the coverage. The progress can be followed on

This log file is used for code coverage and you can see it on Currently the coverage is 34% and that isn’t high enough. In the next weeks I’m going to try to get the coverage above 50%.

If you want to use git on a production site I would recommend git:// My repo is more an experimental one that adds additional files for testing.

The last week I ported the default theme…

The last week I ported the default theme to a bootstrap theme. The translation view still needs some attention and hopefully that will be fixed this week. I’m really curious what you guys think about it. You can check it out on and you can find the code on

Redesign of GlotPress

It came to my mind that to get things further we might first need to make a redesign. So the plan is to work on that in January. The focus then is to make GlotPress a better collaborative place since that is the thing what it lacks now.

The most important thing is that we need to use user data to build the UI. So knowing which language the user translates for and which projects he likes. Having localization pages is one of the tasks that need to be done. I already blogged about it and Hugo Baeta already expressed his thoughts in 2011. He had some really good points there and after two years I guess we finally can work on those.

The idea is to make an plan on what pages are needed and what functionality should be provided. It should end up being a roadmap for the next year. When that is done and I got feedback on it, I will start working on the UI. I’m not a designer and I do need your help on this.

From there I can create tickets and build on the features. It’s not something that will be done in a few months but doing things step by step makes it really good to get feedback from the community and in the end to have a great product we all love and use.

Related posts:

#progress, #redesign

Since the last update nothing special happend outside…

Since the last update nothing special happend outside our first IRL meetup. Changes since the last time are:

  • Setting the correct last PO-Revision-Data instead of the current time
  • Unit tests are fixed
  • Changed Uzbek to LTR
  • Added word-break & word-wrap to the translation table
  • Added wp_locale to Tibetan and Khmer
  • Added locales: Australian English and Spanish (Argentina)
  • Synced POMO library and made it GlotPress independent
  • Only load PHP files in the plugin folder
  • Always return JSON data when using the API

From next week I will start working more heavily on GlotPress and trying to tackle the WordCamp Europe results. This also means that running GlotPress in trunk will not be recommended for a while due some changes that need to be made. Nothing should break but it’s something you never know.


WordCamp Europe results

At WordCamp Europe we had our meetup on sunday and I talked about my plans for this year and we talked about the current issues for validators and translators and builded a list from that. The following list is the issues that were mentioned and hopefully we can fix most of it this year. Some of the issues is harder to fix because I think we need a complete new UI to be able to fix it.

  • Better installation process
  • Delete project
  • Suggestion list
  • Find strings only in the translations
  • Notifications on translations
  • User related view of your worked on projects
  • Create a user dashboard
  • Comments about the translations
  • Dictionary
  • List of translators/validators
  • Group translated strings by original
  • Multiple levels of warnings
  • On upload file only change the name of all changed strings

WordCamp Europe meeting

In a few weeks WordCamp Europe will have it first edition and I would love to have a short meeting over there with people who are interested to join. To bad I couldn’t speak about it but within this meeting I would love to express my vision on the project and see what your opinion is. Maybe we can work together on your idea and make it happen.

I’m not sure yet when it will be planned. It depends on the schedule but it will most likely be lunch on saturday or sunday. But would love to have this as a start point to see what you guys think and if you are interested.


The last 2 months not a lot of…

The last 2 months not a lot of stuff happened. All the changes are now on The focus is still more and less the same.


  • Google translator does work again as a plugin. So by default you don’t
  • Better Android support. Now all strings should be translatable
  • Added actions when finished with importing originals and translations
  • Fix some other minor issues and reverted some changes