Io non sono un madre lingua inglese.
I am not a native english speaker.
If you fit in this user case (also for your websites) you will be happy to know that ClassicPress like WordPress is localized in a lot of locales.
Legend:
- PTE: project translation editor, review permission of strings for plugins/themes *
- GTE: global translation editor, review permission of strings in all the projects and also in the core *
* In the WP.org Polyglots team of course
The story
When I joined the ClassicPress community I took the leading of i18n team. Basically for my experience as PTE in WordPress, developer of tools for Polyglots like GlotDict that soon will support our instance of GlotPress, part of the GlotPress team (the tool that enable the WP community to localize WP and plugins/themes) I was happy to cover that role.
Usually the other locales (except english) doesn’t receive a lot of love in new projects or forks because there are other stuff to do, like start the forks and replicate the infrastructure.
In the first meeting the founding committee had we chosen to support initially the first set of locales that has more that 2% of usage of WordPress (Stats – WordPress.org check in the bottom). In that way we can test our infrastrucutre and start to build our community.
This taken a bit to replicate GlotPress, create the endpoint for CP and remove all the references from strings to WordPress.
What happened
- Install and configure GlotPress
- Define the structure of the projects
- Create the 11 first locales
- Create the endpoint that enable CP to download the latest version of the locales
- Use CP endpoint to download only the core language packs
Everything required a bit because the project was starting so for beta-1 we had no time to do everything but as today we made everything of that list!
Our GP instance is avalaible at https://translate.classicpress.net/ that use the default GP theme (right now we don’t have time to do a new one like WP.org has).
On https://translate.classicpress.net/projects/core/ you can find the list of the first 11 locales that we will support. The next step was cleanup all the strings inside the core that reference wordpress to switch to classicpress.
To simplify that work I chosen to use my language as test so right now only italian is avalaible for that reason. There is the last pull request that remove the last references in that way we can work at localize.
Wait a moment, we don’t need to localize everything from start because right now core is 6000~ strings and for that reason I amde a tiny bash script that download the translation of a locale and replace all the references automatically to simplify that task.
Taking as example the italian this enable us to have to localize only 50~ because are new strings and check only the one with warning that are less of 10.
Before to import also for the other locales availalbe I am waiting the last pull request approved and that our GP instance screen that (we have a cron that run every 8 hours).
Next step was creating the endpoint that is the same of the WP.org to be more compatibile.
So we started studying how to do it Endpoints for translation · Issue #8 · ClassicPress/ClassicPress-APIs · GitHub. We chosen after analyze the code of WP to do a static version instead of use the DB because we need to release and we can improve the infrastructure later.
So starting from class-language-pack.php in sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-gp-customizations/inc/cli – Making WordPress.org we made a new WP CLI script for GP that works for our needs https://github.com/ClassicPress/ClassicPress-Network/blob/master/wp-content/plugins/cp-gp-cli/inc/class-language-pack.php
This generate a zip file for every locale and the endpoint.
The last step done yesterday was a patch to use our endpoint only for core https://github.com/ClassicPress/ClassicPress/pull/295
So our beta-2 will include that!
What we learned
- WP.org code is very complicate and without docs, but is a problem of meta but we handle it with testing
- Work on the infrastructure of a project require skills and a lot of time, also for testing
- With a team is possible to divide tasks and gather feedback, thanks @james, @pieter and Paolo Falomo
- A lot of people want this project localized
- WP CLI is awesome but also GlotPress too
What is yet missing
- Support per-locale GlotPress admins · Issue #23 · ClassicPress/ClassicPress-Network · GitHub
- Organization for GTE of various locales
- How to scale for new locales
We have already have few people for vairous locales that want to help us, we are working for you. When everything will be working for beta-2, we will study a plan for the meta side.
The biggest problem is that GP by default doesn’t have PTE/GTE so we have to handle that like WP.org is doing and this will require time but probably with the GP capabilities we will find a way.
How to help
Glad to hear that! As project we need localizers but right now with this very low amount of strings is not so urgent. Instead we need developers that want help us in the Network infrastructure of the project to move on for the polyglots needs but also for the core of course.
For any other questions don’t hesitate to reply!