WordPress / Learn

WordPress.org Learn - The canonical source for the code and content behind https://learn.WordPress.org
276 stars 101 forks source link

Testing translation plugins for learn.wordpress.org #2231

Open jonathanbossenger opened 9 months ago

jonathanbossenger commented 9 months ago

As our work progresses on the Learning Pathways on Learn WordPress project, the training team would like to determine a method to manage localized content translation, which is one of our 2024 team goals.

@Piyopiyo-Kitsune kicked off this effort with a discussion post on the training team site, asking the team for their suggestions for translation plugin solutions.

Out of that discussion, the following plugins have been identified as possible solutions:

We also identified a backup option:

This issue serves to track the testing of these plugins using the learn.wordpress.org local development environment, both to determine requirements for testing, and to provide feedback on the testing process.

Individual testing issues (to be created and assigned)

jonathanbossenger commented 9 months ago

@Piyopiyo-Kitsune @bsanevans @lada7042 I will raise this in the next dev-squad session on Thursday. In the meantime, it would be good if we could gather a list of requirements that we should test for. Any requirements you, or the rest of the team can share would be greatly appreciated.

kaitohm commented 8 months ago

Front-end requirements I can think of:

Back-end requirements I can think of:

cynthianorman commented 8 months ago

I use Polylang in my website builds for clients so I can help with testing

jonathanbossenger commented 8 months ago

Thank you @cynthianorman I will assign you to the ticket and make a note in the description.

If no one else is available, I will also try and test one of these options.

jonathanbossenger commented 8 months ago

Updating to note that I will be testing TranslatePress next week.

jennydupuy commented 8 months ago

I can help to test Polylang.

cynthianorman commented 8 months ago

Hi @jonathanbossenger or anyone who can assist. Do you have a suggestion on setting up a testing environment for the Polylang plugin? I was expecting the new learn redesign site to be on a testing site with the ability to install the plugin. Also, they have a Pro version. Do we have access to this license or plans to purchase? https://polylang.pro/downloads/polylang-pro/

I think I should add, I'm just now getting myself up to speed with the build of the new Learn site. I assumed it was going to be built using a block theme. Is there an issue on GitHub tracking the build? If we are using the current classic theme then I already have that set up on my local machine so I can test Polylang that way.

unprintedch commented 8 months ago

Back-end requirements I can think of:

  • Translators do not have permission to create or publish new content.
  • Translators have permission to both translate any content, and review content translated by others.

If all this is mandatory, there is no other solution than WPML. Polylang does not have any translator management system. It is still possible to achieve, but with other solutions like custom code or another user role plugin.

cynthianorman commented 8 months ago

Back-end requirements I can think of:

  • Translators do not have permission to create or publish new content.
  • Translators have permission to both translate any content, and review content translated by others.

If all this is mandatory, there is no other solution than WPML. Polylang does not have any translator management system.

Since I'm looking to test Polylang. I just want to be clear here. I automatically think of managing translators with the use of WordPress roles in which may need to be further evaluated.

unprintedch commented 8 months ago

I can take care of the testing of wpml. (even if i would recommend polylang.)

Here are some of the wpml capabilites

I guess the big thing is the sensei compatibility

unprintedch commented 8 months ago

Another thought, I heard that multilingual will be in the core. Why don't just keep a custom taxonomy and duplicate posts? I know it sounds strange, but we could make a filter with this taxonomy and other adjustment, and it could fill the gap until we have an official solution? And it is the way it seems to be in the testing local env?

kaitohm commented 8 months ago

Thanks for testing WPML for the team, @unprintedch 🙌

It is still possible to achieve, but with other solutions like custom code or another user role plugin.

https://learn.wordpress.org/ already has a number of custom user roles active on the site. While a solution that doesn't need custom work would be ideal, adding the needed functionality is also an option we can consider.

Another thought, I heard that multilingual will be in the core. Why don't just keep a custom taxonomy and duplicate posts?

That's exactly what we have right now 😄 The team is experiencing a number of challenges with this method right now, one of those being the complexity of tracking and managing many locales in GitHub and Google docs. As the core multilingual implementation seems to be still a few years away, we're hoping to move to a more robust translation system to fill that period.

unprintedch commented 8 months ago

Hey

https://learn.wordpress.org/ already has a number of custom user roles active on the site. While a solution that doesn't need custom work would be ideal, adding the needed functionality is also an option we can consider.

I'll keep that in mind

The team is experiencing a number of challenges with this method right now, one of those being the complexity of tracking and managing many locales in GitHub and Google docs.

Could we have examples where are the pain points, Maybe a live chat?

As the core multilingual implementation seems to be still a few years away, we're hoping to move to a more robust translation system to fill that period.

That hurts, it is so important to me! My life could be so much better with a nice solution in core.

In short, the fact is that WPML is rather complete in terms of functionality. BUT! It adds much complexity and is sometime capricious, prompt to bugs and leads to frustration. I would really take this decision after testing deeply.

About that, could you point me to a very complete lesson that i could use to test?

jonathanbossenger commented 8 months ago

@cynthianorman

Do you have a suggestion on setting up a testing environment for the Polylang plugin? I was expecting the new learn redesign site to be on a testing site with the ability to install the plugin.

How I planned to do this was to install Polylang as a plugin on our Learn WordPress local development environment, copy one of the current live courses (maybe one of the theme developer courses) from Learn WordPress to the local environment, and test that way.

Also, they have a Pro version. Do we have access to this license or plans to purchase? https://polylang.pro/downloads/polylang-pro/

Installing Pro versions of plugins might not be possible, but it might be worthwhile mentioning the features that the pro version has as part of your feedback.

I think I should add, I'm just now getting myself up to speed with the build of the new Learn site. I assumed it was going to be built using a block theme. Is there an issue on GitHub tracking the build? If we are using the current classic theme then I already have that set up on my local machine so I can test Polylang that way.

That process hasn't started yet, and will likely only start once the designs are completed.

jonathanbossenger commented 8 months ago

@unprintedch

About that, could you point me to a very complete lesson that i could use to test?

At the moment, could I confirm, do you have the local development environment for learn set up?

If you do, then you are able to create courses and lessons locally, to test with those.

Currently lessons are mostly just an embedded youtube video, and content. Some lessons might have quizzes at the end of them which you can also create locally.

unprintedch commented 8 months ago

@unprintedch

At the moment, could I confirm, do you have the local development environment for learn set up?

Yes, thanks to you, it was painful but I finally got the all thing working

If you do, then you are able to create courses and lessons locally, to test with those. Currently lessons are mostly just an embedded youtube video, and content. Some lessons might have quizzes at the end of them which you can also create locally.

Ok i guess the quiz are the thing to test?

unprintedch commented 8 months ago

@jonathanbossenger when you say: Installing Pro versions of plugins might not be possible, but it might be worthwhile mentioning the features that the pro version has as part of your feedback.

Is a deal breaker for WPML. There is no free version.

jonathanbossenger commented 8 months ago
Is a deal breaker for WPML. There is no free version.

I will add this to this week's meeting agenda, I'm not sure what the next step would be there.

jonathanbossenger commented 8 months ago

@unprintedch could I also ask that you copy your WPML specific feedback to the Test WPML GitHub issue. Thanks

unprintedch commented 8 months ago

I did i little summary there, tell me if you need some specific answers. Confirm to me if the "nothing is free" is an issue. If not I'll will gladly test it deeply.

jonathanbossenger commented 7 months ago

Thank you @unprintedch, much appreciated.

kaitohm commented 7 months ago

(I'm moving Jonathan's comment here so we can keep discussing next steps on this issue.)

The following plugins were tested by the following contributors

Here is a breakdown of the requirements tested

Requirement Polylang WPML TranslatePress
Language selector does not show as country flags. x x x
Languages can be changed without needing to log in to one's WordPress.org account. x x x
Once a language is selected, it is applied globally. x x x
Content of the selected language is shown above non-translated content. x
English content is still shown where translations don't exist. x x x
Translators do not have permission to create or publish new content. x x x
Translators have permission to both translate any content, and review content translated by others. x x x
A flow can be implemented where translations must be approved (reviewed) before published. x x
Sensei content types can be translated in the same way as native post types. x x
Taxonomies can be translated. x x x
Translated content is indexed and searchable by Jetpack Search. x needs deeper testing needs deeper testing

General note on Jetpack Search: If it's a external index like the Google search that's found on other parts of wordpress.org, it might work. If it relies on WordPress internally for querying content and sending it to Jetpack servers, it might not. We can only really test this on the live site.

Additional notes from testers (see linked tickets for testing notes):

Polylang:

WPML:

TranslatePress

kaitohm commented 7 months ago

The team would like to prioritize using GPL compliant plugins. So, let’s focus on the research reports for Polylang and TranslatePress. What are folks' thoughts?

Please leave thoughts below. Let's wrap up this discussion by April 5th so we can then work with the Meta Team to get this installed on Learn.

digitalchild commented 7 months ago

I've been using TranslatePress on my sites for years. Yes you do need a pro version for multiple language support, but it's extremely lightweight, and the translations move no matter the design. Meaning when we update the site design, as long as the strings are the same, translations do not need to be updated.

kaitohm commented 7 months ago

I'm liking the looks of TranslatePress (Pro with add-ons) for two reasons:

jonathanbossenger commented 7 months ago

@bsanevans I wonder if now would be a good time to connect with the Meta team and find out what the possibility is of installing TranslatePress and it's Pro add-on? I'd hate to do further testing, only to find out it's not possible to use.

kaitohm commented 7 months ago

I have a call with Meta folks about the site redesign next week. I'll bring it up then 📝

kaitohm commented 6 months ago

We've started the process of testing TranslatePress in https://github.com/WordPress/Learn/issues/2445

sebastienserre commented 2 months ago

Hello,

I'm from the Polylang team and just discover this multilingual project and https://github.com/WordPress/Learn/issues/2284. As per https://github.com/WordPress/Learn/issues/2231#issuecomment-2024196003, Polylang is checking all your requirements...

Note the DeepL integration is available in Polylang Pro. We also have a "duplicate content" feature which can help to bulk duplicate English content to one or more target languages. This can be helpful to keep the original layout and allow translators, to only translate the content. Finally Content of the selected language is shown above non-translated content. can be done thanks to our content synchronization available in Polylang Pro.

If I'm not too late, let me know how I can help you to better test Polylang. I can also share a Polylang Pro license if Pro feature are needed.

sebastienserre commented 2 months ago

Hello, I've sent this to Slack but, maybe better here. A coupon code to give a try to Polylang pro for free has just been sent to learn@wordpress.org. The main difference between Polylang Pro and TranslatePress is Polylang will allow translators to have different translation for a same content. It can help to better match languages particularities I'm still available on any question.

sebastienserre commented 2 months ago

As per @jonathanbossenger advise, here is the first feedback on @bsanevans test I've read on this thread: https://github.com/WordPress/Learn/issues/2231#issuecomment-2024196003 Polylang:

It's important to know that we essentially build a separate set of pages/posts/taxonomies and corresponding menu for each language.

This is resulting in front end to better performance. Each content has its own ID... this is native for WordPress to query the content. As a side note, Polylang is filtering parse_query to add the language in the main Query. The Language is a term of a custom taxonomy. All is managed in the native WordPress database tables. It means each improvement of the Performance team on taxonomies, queries... will improve Polylang performance.

For this reason, we would need to create the copied English page/post and designate it as French (for example) otherwise I don't believe this will work out for us. In other words, the copied English page/post would act as a placeholder until a translator would contribute the translation.

By using the Polylang Pro license offered, you will benefit of the Synchronization tool which will replicate the change on a language https://polylang.pro/doc/synchronized-posts/. We also have a bulk duplicate tool to quickly create a content in a new language.

Out of the box, Polylang (Pro) doesn't have any role or capabilities management. It means if you have the edit_posts capabilities, you can create content (posts/pages/terms....) in all languages.

Automatic translation is recently possible. It came with the latest Polylang Pro version.

jonathanbossenger commented 2 months ago

@kathrynwp, update on testing. Currently both plugin options have blockers:

Based on this, we will either have to adapt our process for translation to follow the "string by string" method of TranslatePress or wait to see if PolyLang can figure out the Sensei issue.

jonathanbossenger commented 1 month ago

@kathrynwp Sébastien from Polylang as provided a possible workaround I need to test out.

I am AFK next week, but I will continue testing when I get back.

kathrynwp commented 1 month ago

Thanks so much for your testing so far, @jonathanbossenger

During some recent discussions with @cynthianorman and @jennydupuy, it seems that having to translate string-by-string would not be an efficient process for the purposes of Learn WP, so that would seem to rule out TranslatePress.

Out of the box, Polylang (Pro) doesn't have any role or capabilities management. It means if you have the edit_posts capabilities, you can create content (posts/pages/terms....) in all languages.

In terms of limiting access for translators, perhaps we could explore using a role-management plugin alongside Polylang? @sebastienserre Do you have any thoughts around this? Is there a specific role-management plugin you could recommend that you know to be compatible with Polylang?

sebastienserre commented 1 month ago

Hello @kathrynwp Adding capabilities which could be adding in one or several roles is in our roadmap since a long time... unfortunately, this is not yet in our developers hands. The only plugin I know is https://wpexpertshub.com/plugins/polylang-user-manager/ but as per their website, it has not been tested for a long time...

donnapep commented 1 month ago

In case it's helpful, the Sensei team recently undertook a project to improve compatibility with WPML. There are still a few known issues. Please take a look to see if you would consider any of those to be a dealbreaker.

Besides those there is another issue where, if a student were to switch to a different language midway through a course, their progress would not be synced between those languages. This isn't something we are actively looking to address, as it seems unlikely that the average student will switch between languages while taking a course.

jonathanbossenger commented 1 month ago

Thanks everyone. I will be testing the PolyLang fix this week, and I will report back once tested.

jonathanbossenger commented 1 week ago

Final PolyLang testing: https://github.com/WordPress/Learn/issues/2284#issuecomment-2459070351