{"id":1408,"date":"2019-09-30T16:35:39","date_gmt":"2019-09-30T16:35:39","guid":{"rendered":"http:\/\/blog.mozilla.org\/l10n\/?p=1408"},"modified":"2019-09-30T16:35:39","modified_gmt":"2019-09-30T16:35:39","slug":"here-comes-pontoons-new-translate-application","status":"publish","type":"post","link":"https:\/\/blog.mozilla.org\/l10n\/2019\/09\/30\/here-comes-pontoons-new-translate-application\/","title":{"rendered":"Here comes Pontoon&#8217;s new Translate application"},"content":{"rendered":"<p class=\"part\" data-startline=\"3\" data-endline=\"3\">If you have contributed to Mozilla\u2019s localization in the past few years, chances are high that you have interacted with Pontoon\u2019s translation page. That page is the most important one of the Pontoon web app, as it is where people can create, review and manage translations for most of the products Mozilla makes. Today we are happy to announce that we are soon going to release an entirely re-written version of that page, nicknamed \u201cTranslate.Next\u201d. This post shares all the details about this release, and should answer the questions you might have about it.<\/p>\n<h2 id=\"What-is-TranslateNext\" class=\"part\" data-startline=\"5\" data-endline=\"5\">What is Translate.Next?<\/h2>\n<p class=\"part\" data-startline=\"7\" data-endline=\"7\">Pontoon was started in 2011, and has grown quite a lot since then. Most of the back-end, using Python and Django, has been kept up-to-date and is still doing mostly fine, but the front-end, and specifically the Translate app, is in a terrible shape. Our code has accumulated a lot of technical debt, and is very difficult to maintain and evolve.<\/p>\n<p class=\"part\" data-startline=\"9\" data-endline=\"9\">After I joined the Pontoon team in the summer of 2017, I spent some time auditing the translate application code, and it quickly became clear to me that a full rewrite would bring a lot of value. Here are some of the benefits this brings:<\/p>\n<ol class=\"part\" data-startline=\"11\" data-endline=\"15\">\n<li class=\"\" data-startline=\"11\" data-endline=\"11\">removing technical debt and making our code saner;<\/li>\n<li class=\"\" data-startline=\"12\" data-endline=\"12\">adding better test coverage for our front-end;<\/li>\n<li class=\"\" data-startline=\"13\" data-endline=\"13\">enabling the localization of Pontoon, starting with the Translate page;<\/li>\n<li class=\"\" data-startline=\"14\" data-endline=\"15\">structurally enabling some of the many improvements our users have been asking for.<\/li>\n<\/ol>\n<p class=\"part\" data-startline=\"16\" data-endline=\"16\">Over the last year and a half, Matja\u017e and myself have been spending a lot of our time working on rewriting the Translate page from scratch, using more recent, better adapted technologies, making our code a lot more modular and maintainable. <em>(If you are interested in knowing more about the technologies we used, <a href=\"https:\/\/github.com\/mozilla\/pontoon\/tree\/master\/frontend#translatenext--a-better-translate-app-for-pontoon\">it is described in our github repository<\/a> \u2014 there&#8217;s some React, redux, Jest and Flow in there. )<\/em><\/p>\n<h2 id=\"How-is-it-different-from-the-current-page\" class=\"part\" data-startline=\"18\" data-endline=\"18\">How is it different from the current page?<\/h2>\n<p class=\"part\" data-startline=\"20\" data-endline=\"20\">Translate.Next is just the first part of our effort to improve Pontoon\u2019s translation page, while the second part will be the functional changes we\u2019ll start working on now. For the time being though, translation page should be as much as possible the same in terms of features, interface and usability as the current Translate page. We have done our best to reproduce the same layouts and behaviors so that the switch would be as transparent as possible to everyone.<\/p>\n<p class=\"part\" data-startline=\"22\" data-endline=\"22\">However, there are a few things that we decided to change already. The most visible of them is the navigation menu, which now requires less clicks to navigate localizable resources thanks to the removal of the infamous Go button.<\/p>\n<p class=\"part\" data-startline=\"24\" data-endline=\"24\">Here\u2019s what it looks like now:<\/p>\n<p class=\"part\" data-startline=\"26\" data-endline=\"26\"><a href=\"https:\/\/blog.mozilla.org\/l10n\/files\/2019\/09\/current.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-1414 size-full\" src=\"https:\/\/blog.mozilla.org\/l10n\/files\/2019\/09\/current.png\" alt=\"Pontoon's current Translate navigation bar\" width=\"1051\" height=\"120\" srcset=\"https:\/\/blog.mozilla.org\/l10n\/files\/2019\/09\/current.png 1051w, https:\/\/blog.mozilla.org\/l10n\/files\/2019\/09\/current-252x29.png 252w, https:\/\/blog.mozilla.org\/l10n\/files\/2019\/09\/current-768x88.png 768w, https:\/\/blog.mozilla.org\/l10n\/files\/2019\/09\/current-600x69.png 600w\" sizes=\"(max-width: 1051px) 100vw, 1051px\" \/><\/a><\/p>\n<p class=\"part\" data-startline=\"28\" data-endline=\"28\">And here is what it looks like with Translate.Next:<\/p>\n<p class=\"part\" data-startline=\"30\" data-endline=\"30\"><a href=\"https:\/\/blog.mozilla.org\/l10n\/files\/2019\/09\/new.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-1413 size-full\" src=\"https:\/\/blog.mozilla.org\/l10n\/files\/2019\/09\/new.png\" alt=\"Pontoon's new Translate navigation bar\" width=\"754\" height=\"118\" srcset=\"https:\/\/blog.mozilla.org\/l10n\/files\/2019\/09\/new.png 754w, https:\/\/blog.mozilla.org\/l10n\/files\/2019\/09\/new-252x39.png 252w, https:\/\/blog.mozilla.org\/l10n\/files\/2019\/09\/new-600x94.png 600w\" sizes=\"(max-width: 754px) 100vw, 754px\" \/><\/a><\/p>\n<p class=\"part\" data-startline=\"32\" data-endline=\"32\">The other changes should be fairly inoffensive. We have removed the Tab shortcut in the Editor, as well as support for in-context localization, as it seems both were hardly ever used. It\u2019s also not possible to resize the columns yet, as we have plans to evolve the page layout very soon and the behavior of this feature will change.<\/p>\n<p class=\"part\" data-startline=\"34\" data-endline=\"34\">If you notice something not mentioned here is different, then it\u2019s very probably a bug, and we would like to hear from you. More on that later in this post!<\/p>\n<h2 id=\"When-will-I-see-the-new-page\" class=\"part\" data-startline=\"36\" data-endline=\"36\">When will I see the new page?<\/h2>\n<p class=\"part\" data-startline=\"38\" data-endline=\"38\">We intend to do a \u201crollout\u201d release, meaning that we will turn the feature on for a small percentage of users, and then will increase that number over time until we reach 100%. The users who get to experience the new Translate.Next page will be chosen randomly by a tool we use.<\/p>\n<p class=\"part\" data-startline=\"40\" data-endline=\"40\">However, we can, and will, add exceptions. Namely, everyone who participated in our <a href=\"https:\/\/discourse.mozilla.org\/t\/testing-translate-next-phase-2\/41089\" target=\"_blank\" rel=\"noopener noreferrer\">last round of testing<\/a> and has Translate.Next turned on will keep it on. And we can add more exceptions, so if you don\u2019t want to wait for your turn, you can simply contact us (<a href=\"https:\/\/mozillians.org\/en-US\/u\/adrian\/\" target=\"_blank\" rel=\"noopener noreferrer\">Adrian<\/a> or <a href=\"https:\/\/mozillians.org\/en-US\/u\/mathjazz\/\" target=\"_blank\" rel=\"noopener noreferrer\">Matja\u017e<\/a>) with the email address you use to log in to Pontoon, and we\u2019ll give you access.<\/p>\n<p class=\"part\" data-startline=\"42\" data-endline=\"42\">Note that we will not allow users to opt out, unless there is a very good reason for that. We will take your feedback and categorize it into two buckets: regressions, and the rest. Regressions are big issues that prevent localizers from performing their tasks. They are blockers to advancing Mozilla\u2019s mission and thus we want to take quick action to unblock people if that happens. A regression will very likely mean that we will turn Translate.Next off for everyone until we have fixed it.<\/p>\n<p class=\"part\" data-startline=\"44\" data-endline=\"44\">Every other issue will be treated as a bug, and we will do our best to solve these in a timely manner, but we kindly ask that you bear with us in the meantime. We do not want to revert everyone back to the old Translate page for a problem that is not blocking you.<\/p>\n<p class=\"part\" data-startline=\"46\" data-endline=\"46\">The release schedule, baring we don\u2019t find any regressions, is as follow:<\/p>\n<p class=\"part\" data-startline=\"48\" data-endline=\"51\">Wednesday, October 2: release to a random <strong>10%<\/strong> of users.<br \/>\nMonday, October 7: release to a random <strong>30%<\/strong> of users.<br \/>\nWednesday, October 9: release to a random <strong>50%<\/strong> of users.<br \/>\nMonday, October 14: release to <strong>all<\/strong> users.<\/p>\n<p class=\"part\" data-startline=\"53\" data-endline=\"53\">Bugs and regressions found along the way will delay that schedule. We will keep you updated if any such thing happens.<\/p>\n<h2 id=\"How-do-I-report-issues\" class=\"part\" data-startline=\"55\" data-endline=\"55\">How do I report issues?<\/h2>\n<p class=\"part\" data-startline=\"57\" data-endline=\"57\">If you notice that something works differently than before, or if you find that something is broken, we strongly encourage you to tell us as soon as possible. There are several ways you can do that.<\/p>\n<p class=\"part\" data-startline=\"59\" data-endline=\"59\">The easiest is to simply add a comment here, below this blog post. Please write a description of your problem, and ideally steps to reproduce it. <span class=\"c-message_kit__text\" dir=\"auto\" data-qa=\"text-atom\">When commenting, make sure to put a valid email address in the &#8220;E-mail&#8221; field so that we can reach out to you if we need more details.<\/span><\/p>\n<p class=\"part\" data-startline=\"61\" data-endline=\"61\">If you enjoy using the Mozilla Community discourse forum, you can also describe your issue in the <a href=\"https:\/\/discourse.mozilla.org\/t\/translate-next-release\/45983\" target=\"_blank\" rel=\"noopener noreferrer\">dedicated Translate.Next topic<\/a>.<\/p>\n<p class=\"part\" data-startline=\"63\" data-endline=\"63\">And finally, if you are comfortable using Bugzilla, you can go <a href=\"https:\/\/bugzilla.mozilla.org\/enter_bug.cgi?product=Webtools&amp;component=Pontoon\" target=\"_blank\" rel=\"noopener noreferrer\">straight there and file a bug<\/a>.<\/p>\n<p class=\"part\" data-startline=\"65\" data-endline=\"65\">If you want to check our list of known issues, or follow the status of a reported bug, we keep an updated list on <a href=\"https:\/\/wiki.mozilla.org\/L10n:Pontoon#Translate.Next:_Run_2_staged_rollouts.2C_addressing_100.25_of_critical_regressions_in_each_rollout\" target=\"_blank\" rel=\"noopener noreferrer\">Pontoon\u2019s Wiki page<\/a>.<\/p>\n<h2 id=\"Other-questions\" class=\"part\" data-startline=\"67\" data-endline=\"67\">Other questions<\/h2>\n<h4 id=\"How-do-I-know-I\u2019m-using-TranslateNext\" class=\"part\" data-startline=\"69\" data-endline=\"69\">How do I know I\u2019m using Translate.Next?<\/h4>\n<p class=\"part\" data-startline=\"71\" data-endline=\"71\">There are 2 ways to know: first, the menu will look a bit different (see above). Second, and probably simpler: there will be a message in the top right corner saying you are using Translate.Next. \ud83d\ude42<\/p>\n<h4 id=\"Can-I-revert-back-to-the-old-Translate-page\" class=\"part\" data-startline=\"73\" data-endline=\"73\">Can I revert back to the old Translate page?<\/h4>\n<p class=\"part\" data-startline=\"75\" data-endline=\"75\">No, once you\u2019re on Translate.Next, the only way to get back to the old Translate page is if we find a critical regression and revert everyone. We cannot revert individuals to the old page.<\/p>\n<h4 id=\"Can-I-opt-in-to-TranslateNext\" class=\"part\" data-startline=\"77\" data-endline=\"77\">Can I opt-in to Translate.Next?<\/h4>\n<p class=\"part\" data-startline=\"79\" data-endline=\"79\">Yes, absolutely. Just contact us (<a href=\"https:\/\/mozillians.org\/en-US\/u\/adrian\/\" target=\"_blank\" rel=\"noopener noreferrer\">Adrian<\/a> or <a href=\"https:\/\/mozillians.org\/en-US\/u\/mathjazz\/\" target=\"_blank\" rel=\"noopener noreferrer\">Matja\u017e<\/a>) asking that you want in, and give us the email address that you use to login on Pontoon.<\/p>\n<h2 id=\"Let\u2019s-release\" class=\"part\" data-startline=\"81\" data-endline=\"81\">Let\u2019s release!<\/h2>\n<p class=\"part\" data-startline=\"83\" data-endline=\"83\">Thank you for helping with this release. We hope you will enjoy the new Translate page, and all the cool changes we will be able to make in the future thanks to that. And keep an eye out for the new page to show up on your Pontoon. \ud83d\ude09<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you have contributed to Mozilla\u2019s localization in the past few years, chances are high that you have interacted with Pontoon\u2019s translation page. That page is the most important one &hellip; <a class=\"go\" href=\"https:\/\/blog.mozilla.org\/l10n\/2019\/09\/30\/here-comes-pontoons-new-translate-application\/\">Read more<\/a><\/p>\n","protected":false},"author":396,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[286406],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.mozilla.org\/l10n\/wp-json\/wp\/v2\/posts\/1408"}],"collection":[{"href":"https:\/\/blog.mozilla.org\/l10n\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mozilla.org\/l10n\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/l10n\/wp-json\/wp\/v2\/users\/396"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/l10n\/wp-json\/wp\/v2\/comments?post=1408"}],"version-history":[{"count":0,"href":"https:\/\/blog.mozilla.org\/l10n\/wp-json\/wp\/v2\/posts\/1408\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.mozilla.org\/l10n\/wp-json\/wp\/v2\/media?parent=1408"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mozilla.org\/l10n\/wp-json\/wp\/v2\/categories?post=1408"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mozilla.org\/l10n\/wp-json\/wp\/v2\/tags?post=1408"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}