Recent Updates Toggle Comment Threads | Keyboard Shortcuts

  • secretmapper 11:15 am on July 28, 2014 Permalink | Reply
    Tags: ,   

    GSOC 2014 – 07/28 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 7th update, and you can view my other posts here.

    This week I’ve made changes to previous features implemented, specifically, the Public Profiles and the Installation Script.

    Related Tickets: https://glotpress.trac.wordpress.org/ticket/280https://glotpress.trac.wordpress.org/ticket/340

    Most of the changes has been internal, setting up proper functions/API, and reconstructing the code flow to fallback to sensible defaults.

    This week I also managed to add a small change: you can now view the validators of a translation set, with their names linking to their profiles!

    The next weeks will be interesting, where general polish, closing down standing tickets in the trac, and more comprehensive unit tests to features added will be the main focus for development.

    Thanks!

    • Those who have been tracking my updates may notice that I skipped a weekly update – this July the strongest typhoon to hit our country so far in the year yet, Typhoon Ramassun, has caused a wide area blackout. Our country was then consecutively hit again by Typhoon Matmo, rain and wind made stronger by the Southwest Monsoon. Because of the power interruption and general bad weather, I had been unable to properly update last July 21, and for this week too, but I will surely try to make up for it in the coming weeks! Thanks :)
     
    • Caspar Hübinger 2:30 pm on July 28, 2014 Permalink | Reply

      you can now view the validators of a translation set, with their names linking to their profiles!

      Yay, thanks so much!! :)

      • Naoko Takano 9:38 am on July 29, 2014 Permalink | Reply

        @secretmapper maybe I’m simply missing something, but where is the validator view located on http://translate.wordpress.org?

        P.S. I hope you stay safe during the typhoon season!

        • secretmapper 9:41 am on July 29, 2014 Permalink

          Sorry, but like most of the changes it may take some time until it is incorporated/committed into the Glotpress base :( Hopefully soon :)

          P.S. Thanks!

        • Naoko Takano 9:44 am on July 29, 2014 Permalink

          No problem, I’ll be patient :) Thanks for all your hard work!

        • Marko Heijnen 1:25 pm on July 30, 2014 Permalink

          They will be included soon. Most stuff I would love to get committed August and from there we can continue making improvements. Some stuff I test on http://wp-translate.org.

  • secretmapper 7:36 am on July 15, 2014 Permalink | Reply
    Tags:   

    GSOC 2014 – 07/15 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 6th update, and you can view my other posts here.

    This week I’ve reworked the install process for Glotpress.

    Related Tickets: https://glotpress.trac.wordpress.org/ticket/280

    Previously, installing Glotpress would insert a default admin, whilst having a WordPress table along with Glotpress required maintainers to use a php script to add admins.

    Now we have an actual installation form, which asks for user data upfront instead of creating a default one, making the process easier and more user friendly. Note how it mirrors the WordPress Installation Form:

    Install form

    The form is straightforward, asking for a username, email, and password.

    I’ve also begun on general polish for Glotpress, and started out with ticket 338.

    As reported by zodiac1978, it is currently unwieldy to check if an untranslated string has a history of translations, clicking a row and its corresponding history link.

    Related Tickets: https://glotpress.trac.wordpress.org/ticket/338

    Now instead of showing a link in every set,  we remove the link and simply inform the user that it has no history of translations, minimizing clicks and time spent!

    ss (2014-07-15 at 03.32.02)

    That’s all for now. Thanks again, and ciao~!

     
    • Torsten 7:44 am on July 15, 2014 Permalink | Reply

      Thank you very much! :) This is just awesome.

    • secretmapper 7:55 am on July 15, 2014 Permalink | Reply

      @Torsten No problem ;)

  • secretmapper 8:41 am on July 7, 2014 Permalink | Reply  

    GSOC 2014 – 07/07 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 5th update, and you can view my other posts here.

    This week I’ve added the API for Glotpress profiles. This basically allows the profile data to be used by other web applications.

    The profile data can be accessed at //glotpressurl.tld/api/profile/profile-nicename. Let’s break up an example response when querying my username:

    {
      "meta": {
        "user_display_name": "Secretmapper",
        "user_is_admin": true,
        "user_registered": "2014-05-05 03:00:29"
      },
      "total_strings": 123,
      "project_contrib_count": 14,
      "locale_data": {
        "Bulgarian": 116,
        "Afar": 4,
        "Akan": 3
      },
      "permissions": [
        
      ],
      "recent_actions": [
        {
          "set_name": "Rosetta | Bulgarian",
          "project_url": "\/projects\/rosetta\/bg\/default",
          "project_id": "7",
          "set_id": "13",
          "human_time": "3 days",
          "date_added": "2014-07-04 07:28:53",
          "count": 55
        },
        {
          "set_name": "Sample | Akan",
          "project_url": "\/projects\/sample\/ak\/default",
          "project_id": "1",
          "set_id": "25",
          "human_time": "1 week",
          "date_added": "2014-06-26 03:50:14",
          "count": 3
        },
        {
          "set_name": "Rosetta | Forums | Bulgarian\u00a0\u2192\u00a0ForumBulg",
          "project_url": "\/projects\/rosetta\/forums\/bg\/forumbulg",
          "project_id": "8",
          "set_id": "15",
          "human_time": "1 week",
          "date_added": "2014-06-26 03:49:55",
          "count": 2
        },
        {
          "set_name": "Sample | Sample 1 | Bulgarian",
          "project_url": "\/projects\/sample\/sample-1\/bg\/default",
          "project_id": "2",
          "set_id": "3",
          "human_time": "1 week",
          "date_added": "2014-06-26 03:08:15",
          "count": "3"
        },
        {
          "set_name": "Sample | Bulgarian\u00a0\u2192\u00a0My Translation",
          "project_url": "\/projects\/sample\/bg\/my",
          "project_id": "1",
          "set_id": "1",
          "human_time": "1 week",
          "date_added": "2014-06-25 15:29:24",
          "count": "33"
        }
      ]
    }
    

    Let’s break this data up quickly:

      "meta": {
        "user_display_name": "Secretmapper",
        "user_is_admin": true,
        "user_registered": "2014-05-05 03:00:29"
      },

    A Meta subobject contains basic user properties.

      "total_strings": 123,
      "project_contrib_count": 14,
      "locale_data": {
        "Bulgarian": 116,
        "Afar": 4,
        "Akan": 3
      },
    

    Then we have some aggregate properties like total strings and contributed project count.

    locale_data on the other hand, is an object that maps locale names to the number of corresponding contributions of the user. So for example, we see here that I’ve contributed 116 strings to Bulgarian projects, 4 to Afar, and 3 to Akan.

    "permissions": [
      
    ],
    

    An array containing of translation sets the user approves. In this particular case there are no translation sets the user explicitly approves (note though that this user can, being an admin – admin users have blank permissions array in the API)

     "recent_actions": [
        {
          "set_name": "Rosetta | Bulgarian",
          "project_url": "\/projects\/rosetta\/bg\/default",
          "project_id": "7",
          "set_id": "13",
          "human_time": "3 days",
          "date_added": "2014-07-04 07:28:53",
          "count": 55
        },
        {
          "set_name": "Sample | Akan",
          "project_url": "\/projects\/sample\/ak\/default",
          "project_id": "1",
          "set_id": "25",
          "human_time": "1 week",
          "date_added": "2014-06-26 03:50:14",
          "count": 3
        },
        ...
      ]
    

    A Recent Actions Array contains sets the user has recently contributed to, accompanied by corresponding metadata.

    The API allows selective querying (i.e., ?filter=meta), enabling users to get only the data they need.

    The creation of a public profile API allows for fancy stuff such as WordPress Widgets that queries recent actions of a user. Here it is in action on the default WordPress theme:

    ss (2014-07-04 at 03.44.58)

    Thanks and Ciao~!

     
  • secretmapper 2:41 pm on June 30, 2014 Permalink | Reply
    Tags:   

    GSOC 2014 – 06/30 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 4th update, and you can view my other posts here.

    ss (2014-06-25 at 09.15.32)

    This week I’ve added Public Profiles. Now users can view user’s basic info like username and locale preference, recent projects, projects they validate (if any), etc.

    Now that users have actual public pages, user names are now being linked when appropriate (such as Translated by:{{User}} in translation sets).

    Next week’s addition would be the creation of an API of the profiles so that the data can be used by other applications.

    Thanks and Ciao~!

     
    • Vinícius Santana 2:09 am on July 5, 2014 Permalink | Reply

      When this changes is going to be available? We need a new GlotPress ASAP.

      • Marko Heijnen 10:51 pm on July 20, 2014 Permalink | Reply

        It all depends how you ask the question. I would say soon if you ask for GlotPress but probably say never if you talk about wordpress.org. In that case I guess it will be displayed on your WordPress profile in a certain way. That said the API will be there which is also really cool :).

  • secretmapper 12:13 pm on June 21, 2014 Permalink | Reply
    Tags:   

    GSOC 2014 – 06/21 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 3rd update, and you can view my introductory and 2nd post here, and here, respectively.

    This week’s new feature provides modicum, but albeit nice awards for all great translators out there – badges!

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

    As you can see, we award translators based on:

    • Number of Translations (10, 50, 100 Approved Translations)
    • Being a Validator
    • Suggesting a Better Translation to an Accepted String
    • Suggesting the First Accepted String
    • Suggesting the Last Accepted String

    Badge art are for the most part, placeholders, but I personally find them good enough for production! All of the art used for the badges are public domain (Kenney and Glitch), so for glotpress hosts out there, that means completely free and no need for credit!

    Again, development has been on schedule, even a bit ahead! For the next week and a half, I’ll be adding the main avenue for user recognition in this project – Public profiles. Some of the things to be featured in one’s profile are:

    • Recent Translations
    • Projects user is contributing to
    • Projects validated by user
    • A powerful API for other applications

    And a few more things in between. Public profiles open a new way for user interaction, where you can keep up with fellow translator’s actions around the site!

    Again, thanks and Ciao~! Been a very exciting journey so far knowing you’re developing something that’s going to be used by a lot of people!

     
  • Marko Heijnen 7:36 pm on June 16, 2014 Permalink | Reply
    Tags:   

    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.
     
  • secretmapper 10:39 am on June 14, 2014 Permalink | Reply
    Tags: Google Summer of Code Program, , , validators   

    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~!

     
    • Naoko Takano 2:47 am on June 16, 2014 Permalink | Reply

      I’m really excited to see this happening, @secretmapper !
      Looking forward to both validation notification & badges. Feel free to send out any test notification email to me (WordPress.org username: Nao, Japanese validator) if you need to.

      • secretmapper 1:31 pm on June 17, 2014 Permalink | Reply

        @Naoko Takano Thanks for the interest! Will definitely keep it in mind when the need arrives.

  • secretmapper 4:52 am on June 6, 2014 Permalink | Reply
    Tags:   

    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!

     
    • cfoellmann 8:49 am on June 6, 2014 Permalink | Reply

      Great stuff.
      Everyone involved with translations in the WP realm is going to thank you for your work. Or at least they should ;-)

    • Torsten 9:17 am on June 6, 2014 Permalink | Reply

      This looks awesome! Can’t wait to see this live.

    • Petya 10:42 am on June 6, 2014 Permalink | Reply

      Hey Arian, welcome! Good luck and thanks for all the great stuff you’ve got planned. Looking forward to it. Cheers!

    • Martin (IQ) 11:58 am on June 6, 2014 Permalink | Reply

      Welcome Arian! I have to agree with everybody else. Looks really fantastic.

    • secretmapper 10:28 am on June 14, 2014 Permalink | Reply

      Thank you for the kind words everyone! @cfoellman No need to thank me! Guys and trac developers who’ve made glotpress so far such as @markoheijnen and @yoavf, they’re the heroes :)

  • Marko Heijnen 12:52 pm on April 12, 2014 Permalink | Reply
    Tags:   

    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.

     
    • Mattias Tengblad 1:40 pm on April 12, 2014 Permalink | Reply

      Good job guys! Keep it up.

      • Khalil Delavaran 10:17 am on April 28, 2014 Permalink | Reply

        Hi
        I have some suggestion for better glottpress, including some defects too. I hope you can use it in later versions.
        1-Create Dictionary for any language, which does not need repeated words in different projects.
        2-Suggestion of adding language by user for admin
        3-changeing code of fa to fa_IR
        4-set manual for external file name
        and also please see the transifex project. It has good ideas.
        Thanks in advance

    • Nemo 8:28 am on April 30, 2014 Permalink | Reply

      Did Unicode support also fix/supersede https://glotpress.trac.wordpress.org/ticket/252 ? That seems rather ugly.

      • Marko Heijnen 9:53 pm on May 17, 2014 Permalink | Reply

        That one isn’t fixed yet. Unsure how and I never received any complains about it.

  • Yoav 8:37 am on March 4, 2014 Permalink | Reply
    Tags: intro   

    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.

     
c
Compose new post
j
Next post/Next comment
k
Previous post/Previous comment
r
Reply
e
Edit
o
Show/Hide comments
t
Go to top
l
Go to login
h
Show/Hide help
shift + esc
Cancel
Follow

Get every new post delivered to your Inbox.

Join 317 other followers