GSOC 2014 – 06/14 Update

Hello everyone! I’m Arian, a Computer Science student, one of the students accepted in the Google Summer of Code Program. This is my 2nd update, and you can view my introductory post here.

Previously, validators had no way of knowing if there are new strings waiting for approval; one had to check individual translation sets. The newest feature addition for this week fixes exactly that problem – an Email Notification Script for Glotpress Validators. When run, validators are emailed when there are waiting strings they can validate on translation sets they approve.

Related Ticket/s: https://glotpress.trac.wordpress.org/ticket/334https://glotpress.trac.wordpress.org/ticket/100

The email is simple enough, outlining number of waiting strings (number in parenthesis) and a link to the corresponding translation set.

For those hosting their own glotpress copies, the script is located at the scripts directory, along with other scripts. The script is simply passed to the php interpreter without any arguments (php scripts/notify-validators.php). You can then of course use a CRON job to automatically send out validation emails. Be sure to define your SMTP settings properly!

I also managed to add Unit Tests and Code Improvements to the previously added feature (Profile Project Shortcuts), properly separating template and logic code.

Related Ticket/s: https://glotpress.trac.wordpress.org/ticket/299

Schedule-wise, development has been pretty good! I was supposed to prettify the dashboard this week, but with that done, I’ll be working on a new exciting feature this week – Badges! We already have a list of badge ideas, awarding them based on approved translations, but definitely comment below if you have ideas for badges!

Thanks, and Ciao~!

#google-summer-of-code-program, #gsoc, #translation, #validators

GSOC 2014 Introduction

Hello everyone! I’m Arian, a Computer Science student. I’m one of the students accepted in the Google Summer of Code program, and my project will be Glotpress! I’ll be working on the UI improvements and Profiles, and I’m very excited on building something awesome this summer!

As it is right now, there’s not a lot much in Glotpress for user recognition, and this project aims to fix that. Here’s a short list of features to be implemented:

  • A powerful dashboard, giving you quick shortcuts to projects you’re contributing to.
  • Profile to facilitate stat viewing, such as word count, translation contributions, etc.
  • Badging system, earn badges and show them off your profile by translating a set amount of strings!
  • JSON API for user stats.
  • UI improvements, such as progress bar based ui, and links to translation set validators.

For those interested, you can view the complete, revised scope here: http://learninglabber.wordpress.com/glotpress-scope-revisions/


This week, I’ve managed to fully implement the user dashboard.

Related Tickets: https://glotpress.trac.wordpress.org/ticket/299, https://glotpress.trac.wordpress.org/ticket/329

As you can see we now have the basic stats present, such as the total strings translated and projects contributed to. The graph on the left shows translation statistics from the past week, which will hopefully encourage translators to keep up their translation streak!

The recent projects follow the traditional table Glotpress view, while using a more compact way of showing progress, a progress bar!

The user dashboard’s ui is starkly different from the initial proposal, but it’s current form works very well alongside the actual Glotpress ui; much more efficient than the previous designs that had a lot of unneeded whitespace.

Different reiterations of the ui

Development has been on schedule, and for next week, apart from improving the week’s code by adding Unit Tests and the like, I’ll be working on the notification system, which will hopefully be a big help to validators in knowing when they have new strings to accept/reject.

That’s all for now. Feel free to comment below if you have any questions or think of an idea for improvement, the scope implementation is very much dynamic!

#gsoc

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.

#progress

So Marko said https twitter com markoheijnen status…

So Marko said:

I’m a developer working at Automattic, with a big interest in everything i18n and l10n. I started diving into GlotPress a few months ago with hope that we can get some traction into the project, fix bugs and introduce some much needed features.

#intro

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

how can I translate a wordpress into Tajik…

how can I translate a wordpress into Tajik Language. I don’t know how could anyone help me ? Not like giving a link just say how to do pls?

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 https://glotpress.trac.wordpress.org/ticket/285.

This log file is used for code coverage and you can see it on http://github.com/markoheijnen/glotpress. 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://glotpress.git.wordpress.org. My repo is more an experimental one that adds additional files for testing.

Hello I have an enhancement request and hopefully…

Hello, I have an enhancement request and hopefully I’m in the right place to suggest it, but let me know if I need to create an actual ticket or move the request elsewhere.

In order to improve as a translator and mostly to not repeat the same translation mistakes, I often go back to check on my translations and have a look at the validator’s correction, this requires some shorts steps:
1. Enter my username (User:)
2. Select “Rejected” or “Approved, but obsoleted by another string” (Status:)
3. Click on the Filter button
4. Click on Details for the string I want to inquire about
5. Click on “All translations of this original” (open in new tab)
6. Close tab
7. Repeat 4-6 until I get through my list

Repeating steps 4-6 quickly becomes painful when there’s a long list to go through, but that’s the only method I have found so far to get feedbacks on my translations, and this the reason I’d like to suggest for a way to have a quick glance at all my inaccurate translations and the final correction by the validator.

For example, when I filter by “Rejected” or “Approved, but obsoleted by another string”, the filtered page could display an additional column, so that we’d have: Original string, Translation (could be renamed to Suggested Translation) and Final Translation. Else, what’s the point of having a list of my rejected or obsoleted strings without knowing what was wrong or what needed to be modified?

Comments or advice are welcomed.

#enhancement-request

Glossary feature there’s some progress over on https…

Glossary feature: there’s some progress over on https://glotpress.trac.wordpress.org/ticket/97, and an actual patch that can be tested. Comments/reviews appreciated.

#glossary, #new-feature

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 http://wp-translate.org/projects and you can find the code on https://github.com/markoheijnen/WP-Translate-Theme.