How to contribute to the community by translating WordPress

I’ve been general translations editors for the Bulgarian language in the local WordPress community for years, yet I decided to write this article in English, as I believe the approach here could be followed for just any other language.

Prerequisites:

In order to contribute to WordPress through translating the project in another language, you should:

  • have solid knowledge in English and the language you are translating to. Needless to say, otherwise you could be dealing more harm than actually helping the community.
  • have an active account in wordpress.org, as you’ll need it for working in translate.wordpress.org and wordpress.slack.com. Local communities might have other slack addresses using that account too.
  • bring a laptop with yourself at the event you are attending or have one at home if you are contributing remotely.
  • know that you don’t need to be a programmer or be extremely experienced in WordPress in order to be helpful. Having that knowledge could be of use to you, but is definitelly not required.

Before you actually start translating:

There are a few resources you should get aquainted with, before you dive into the work you are preparing for:

  1. Local language translation guidelines – each language with an active translating community should have such a source of documentation. For Bulgarian it’s located here: https://bg.wordpress.org/превод-на-български. If you can’t find such for your language of choice, contact folks in the #polyglots channel in wordpress.slack.com and ask them about it directly. Or even better, contact the local community, if listed in this page: https://make.wordpress.org/polyglots/handbook/about/teams/local-slacks/
    Translating without getting to know these guidelines could lead to bad translations and lack of consistency between your translations and those already done by other translators.
  2. Locale glossary – usually it’s located in GlotPress under the main local page. Here’s the one for Bulgarian: https://translate.wordpress.org/locale/bg/default/glossary/ . It’s the place where most common terms are listed with their translation for sake of consistency. Always check the glossary if you are unsure of what could be the best translation for a technical term.
    If you haven’t translated WordPress before, it’s a must-read.
  3. Polyglots handbook – this is the general handbook for translations in WordPress: https://make.wordpress.org/polyglots/handbook/
    It’s a pretty extensive material, so feel free to skip it if you feel confident enough or if you are too eager to already start translating.
  4. Project-specific glossaries – if you are translating a specific plugin or theme, it’s good idea to check whether there is a glossary for the terms used in that project. Here’s an example with a glossary specifically for WooCommerce in Bulgarian: https://translate.wordpress.org/projects/wp-plugins/woocommerce/stable/bg/default/glossary/
  5. GlotPress – it’s the software that is hosted on translate.wordpress.org, the main translations portal for the WordPress community. You can start your contribution here.

How it actually works?

Strings of all WordPress projects are available for translation in translate.wordpress.org, where anyone with an active account can contribute by suggesting translations to a specific language. The suggestions by all translators are then being reviewed by translation editors who could be global for the given language (GTE), or responsible for that specific project (PTE).

Start from picking a project that you’d like to contribute to:

Core always comes first!

Usually WordPress Core (button WordPress) from the list is the highest priority. From that list always focus on the current and future versions of the project, unless you want to edit a specific old string which is not translated well. There are separate projects for each major WordPress version, but no projects for the minor ones, as they don’t bring too many new strings.

Themes & Plugins buttons are self-explanatory, Meta is meant for internal projects as wordpress.org, make.wordpress.org, support forums, plugins and themes directories and a few others. Apps is used for two mobile applications, used by the SaaS wordpress.com, owned by Automattic (which is odd), and an Android app for WordCamps.

If you have difficulty deciding on the plugins or themes that it’s worth working on, have a look a the Stats divide in plugins and themes groups, where you’ll see the list of the most popular ones with info on how much work is left there.

Once you’ve chosen a project to work on, you might have to decide on the subproject. WordPress Core has a few sub projects, related to the context:

WordPress Core sub projects

Plugins have different ones – development and stable, depending whether you’d be translating the latest string from “trunk” of the SVN repository (development) or the latest release of the plugin (stable). These two sub projects are divided further into strings from the project and strings from the readme.txt file, which is being displayed in the Plugin Directory.

A plugin translations sub projects

As translations from Development are directly being applied to the Stable release, whenever they match, you should always prefer the Development sub projects, when translating a project.

There are a number of fields one can use for filtering the strings for adding a translation or editing existing ones. See the image below:

Filters for translatable strings

Searching for strings, containing a specific word is done by using the “Term” field. The rest of the options there are self-explanatory.

Above the search and filter form there is a number of statuses for direct filtering of all strings for the project. When you are starting your contribution efforts best is to focus on the Untranslated list. “Fuzzy” are suggestions that were once valid, but after changes in the strings from the code are in a state of uncertainty and need to be checked in order to ensure no bad translations are entering the project. “Warning” translations are such that have mismatched punctuation, placeholders, HTML tags, spacing or other issues, that are automatically detected. Some of them could easily be fixed, so feel free to go through them, if you find any. “Waiting” are the strings that someone already have a proposed translation. This doesn’t mean that you can’t suggest a better one.

While translating, GlotPress provides you a number of tools you can use for doing a better job with your contribution. See the image below:

Goodies in GlotPress when translating a string
  1. Code references display the source of the string. If you have even the most basic understanding of PHP code, you will be able to gain additional context on the string that you are translating by checking the line in the code where this string is available.
  2. The button clones the original string in the text field for translation. Helpful when you are translating a string with special characters and HTML – typing them again could lead to typos.
  3. The help button provides some links to resources and explanation for the different statuses a translation might have.
  4. Suggestions, listed in this section, are taken from the consistency search (see it in the “useful tools” section). These come quite handy sometimes, but you should be careful to not apply blindly translations that are from a different context.
  5. In some rare occasions seeing the translation of the string in another language could help for making the right decision for your language.

Have in mind that if your translations get edited, even for just a typo or missing punctuation, they will no longer be accounted as your translations.

Useful tools during translation:

  • Google Translate – it’s the obvious one, but it’s important to remember, that it’s often far from perfect and the translation might totally miss the context of what you are translating. Still, it remains the best tool for getting a rough draft of a long paragraph that you could later edit and make more human-readable.
  • Glosbe Dictionary – extremely useful dictionary that searches terms in existing translations of documents, software and so on in order to provide the best options for the word or phrase you are looking for. I’ve had quite a few cases when this was more useful than Google Translate.
  • POEdit – it’s a desktop translation files editor that you can use in case you are offline or prefer not to work in the browser.
  • Consistency search – GlotPress provides a nice tool for searching a string in existing translations for the given locale within translate.wordpress.org. Bear in mind that not all translations are following the guidelines and and not all are relevant for your context.
  • Poopy Life – if you need a quick live test of a plugin or theme in order to see where a string is being displayed, this site will spin up a clean new WordPress instance in a minute and will remain for 24 hours. This is the perfect solution for anyone who doesn’t have a site of their own, nor a local testing environment. This could be used in combination with WP Reset and WP Rollback plugins in order to get a clean db after doing some tests or getting an older version of a plugin or theme.

This document was originally created for my team-mates from DevriX, who are organizing an internal contributor weekend (yay!). Hopefully it would help others get into translations as well!

Облак си търси мрежар

GetClouder е най-новата българска услуга за облачен хостинг. Няма да ги хваля, преди да съм ги ползвал, но знам какви хора стоят зад нея, заради което си заслужават споменаването.
Мариян Маринов ми сподели, че си търсят нов мрежар. И не става въпрос за стажантска позиция, а такава, в която човекът поназнайва в повечко.
Ще се изгражда облачна инфраструктура, multiple datacenters, redundacy… Всъщност цитирам и това:
Имаме infiniband и softswitches с openvswitch & openflow + ще правим един интересен DDoS mitigation device на 40-80Gbit/s
 Не разбирам, щото съм гном, но ми звучи като нещо предизвикателно. Ако ви е станала интересна цялата тази работа, пишете ми в коментарите, във формуляра на сайта (някъде наоколо беше) или каквито други мои контакти успеете да stalk-нете.

Програмист за OpenCart

Мой познат ми препраща от време на време инфо за разни хора, които си търсят разни други хора, та реших да върна услугата, като публикувам последното, което ми прати и е далеч от нещата, които ме интересуват. Цитирам подробностите:

Смятаме да работим с последната версия на OpenCart – v1.5.5.x. Ще имаме нужда от програмисти с опит за разработването на различни функционалности по сайта, като например модул за покупка на изплащане с TBI CREDIT, UNICREDIT, JETCREDIT, плащане по банка с карта и други. Много е важно да са сериозни и да спазват срока на изпълнение.

Пишете в коментар, за да ви препратя към човека и там да си питате за подробностите :)

Работа по Ruby on Rails проекти

Един австрийски другар, който работеше известно време с лабъри от init Lab сега търси за свой познат помощ по неговите Ruby on Rails проекти, понеже изведнъж са се оказали с повече работа, от колкото могат да поемат. Тук идва и въпросителната дали някой би се захванал с подобни забавления. Клиентът се намира във Виена, технологията е ясна, а какви точно проекти ще се развиват – ще ми кажете, че ви интересува и ще ви свържа, за да питате :)

CodeIgniter/PHP разработчик за довършване на CRM

Мой познат програмист си търси помощници за един проект, който е започнал преди няколко години. Става въпрос за CRM за български застрахователен брокер, който освен това е и коректен клиент (о, йе!).

Човеците или човекът, който се дири ще е хубаво да разбира от CodeIgniter или поне да има приличен опит с PHP и някоя друга платформа.

За да не посреднича, директно можете да си пишете с Мартин Мартинов, чиято поща е martin в mmartinov.com.

Продупчване на парола на индустриален контролер

Преди малко ми звънна един приятел, който в службата си има машинария, закупена втора употреба от Германия, комуникираща си по TCP/IP с PC. Проблемът им е, че нямат паролата за достъп до контролера, за да си го манипулират както точно на тях им трябва, заради което им се иска някой да го brute-force-не. Има малък шанс паролата да е на PC-то, което явно е дошло заедно с контролера. На самото PC пък има разни програмчета, на част от които вече са известни паролите, ама на други не, та би било мисия №2 да се продупчат и те, което вероятно ще стане по-лесно.

TCP/IP-то може да се подслушва, токувиж на някой му е от полза и това.

Другарчето е човек, на когото имам доверие, така че работата, за която съм писал е такава, за каквато съм я писал, а не black-hat поръчка.

Който има интерес, може да ми драсне пощата си и/или телефона, пък аз ще го свържа директно с човека. Ако има нужда от уточнения, можете да питате в коментарите отдолу и ще гледам да отговарям.

Разработчик на полу-соц мрежа на PHP или Ruby

Тия дни се запознах с едно другарче от Турция, което в един момент се оказа, че по някакъв проект, който движат с организация в югоизточната ни съседка, търсят програмист. В общи линии проектът и уменията са описани по-долу директно на английски:

Functions in the Public Beta:

It will be a semi-social network platform:

-Signup & Facebook Connect

-Login & Authentication

-Basic Profile Page

-Wutting ( to write comments under the topics )

-Reply ( without branching, reply function like facebook’s)

-Basic Sorting

-Basic Filtering ( age, gender, nationality, location)

-Hot Topics & Related Topics

-Rate Topic ( Rating topics like iPad2, Justin Bieber, Metallica, Barack Obama… )

-Like Wut ( Liking the comments )

-Basic Semi Social Features( Adding Friend/Following, Basic Push Notifications, Messaging )

-Basic Moderation & Reporting

Required experience:

-Experience on scalable systems

-Experience on clustering, etc.

-Experience on linux servers

-Experience on an indexing engine

-Experience on NoSQL databases

-Preferentially PHP or Ruby

We are in need of a programmer who is capable of the infrastructure above, and most importantly experienced on scalable systems.

Работи се от вкъщи, евентуално ще се правят някакви срещи веднъж месечно или нещо такова.

Имат си финансиране за проекта, до колкото разбрах, че и парите са далеч над средните за програмист в България, работещ за чужбина. Който има интерес, мога да го свържа директно с човека, стига да е сериозен. Не възнамерявам да посреднича :)

X-Cart разбирач за настройване и засилване на магазин

Мой клиент случайно откри, че всъщност е закупил лиценз за системата X-Cart. В същото време искаше да си засилва някакъв елементарен (полу-)магазин и за малко да го му го направя, ама откри тоя лиценз.

Не знам специфики за проекта, нито заплащането, знам само, че човекът е коректен, когато хората са коретни с него. Та реших да споделя, понеже вероятно X-Cart не е от най-популярните системи и ще му е трудно да си намери човек – барем някой от четающите се окаже подходящ за задачката.

Разработчик за Android & iOS приложение

Серж Ованесян, другарче от Лаба, ме свърза с Борис Биволарски, който има идея, за която му е нужда технически человек, който да му помогне в реализацията. Борис си има дизайнер, та му трябва разработчик, който да се захване с програмирането.

Самият проект е свързан с гео-таргетиране, изпращане на текстови и мултимедийни съобщения (SMS & MMS). Който има повечко интерес и смята, че бих се захванал с подобен проект, може да пише директно на Борис. Пощата му е името и фамилията слети на латиница – цялото нещо към gmail.

WordPress разработчик за StartUP Фондацията

Преди няколко месеца напуснах StartUP Фондацията, когато установих, че вече губя прекалено много фокус, разхвърляйки се между различните си ангажименти. Един от всичките беше и разработката на новия им сайт, който щеше да обединява информацията от организираните им събития, проекти и инициативи на едно място. За жалост се наложи да изоставя екипа на Фондацията, а с това и проекта да остане незавършен.

Благо Янакиев (един от тримата най-стари стартъпъри) ми писа, че търсят доброволец за довършването на сайта, което всъщност значи дооправянето на WordPress кожата.

Страшно готино е, да се включи човек в заниманията на StartUP, защото това няма да им е последния проект, и съответно ще имаш перспектива за развитие на портфолио, че и на доста технически умения. Благо е професионален дизайнер, и като такъв държи резултатът от работата ти да съвпада с дизайна, който е направил. Отделно самата среда на екипа ще ти бъде невероятно полезна като контакти и познанства, къде създавайки бизнес възможности, къде създавайки приятелства. За моите година-две във Фондацията животът ми се промени доста, и всичко това беше в положителна страна!

Контакт за повече информация: just.do.it към startup-bg.org & https://www.facebook.com/event.php?eid=134743693290316