L10n:Pontoon/Feature Brainstorming: Difference between revisions

No edit summary
(Old planning doc that'd just be confusing people)
 
(32 intermediate revisions by 2 users not shown)
Line 1: Line 1:
We are currently in the early development stage for [[L10n:Pontoon|Pontoon]] and would like to collect all the ideas for feature enhancements in a single place.
{{delete| Plans for different people, not working on pontoon, and old |date=2017-07-13}}
 
'''How to use this page'''
* If you have ideas for features not listed here, please add them below. Include any references to more detailed implementation ideas.
* If you would like to comment on features listed here, please do so on the [[L10n_Talk:Pontoon/Feature_Brainstorming|discussion]] page rather than in the list itself.
* Please include a summary comment that describes your change so that it shows up in the page history view.
* Please make a User page for yourself with contact information so that if we need clarification of your idea, we can get in touch with you.
 
== BLOCKERS ==
* Admin: SVN update all.
* Admin: SVN & Transifex username and password form.
* Admin: Add more and delete subpages.
* PO generator should not change the order of entities.
* Error handling (what if SVN/TX repo not specified in admin interface).
* Project name instead of URL?
 
== IN PROGRESS ==
 
=== QA mode ===
* Many locales have more than one localizer working on the same project, so we have to find a way for more experienced ones to review, approve and reject translations from others. It’s always good to have someone proofread your work.
 
== TODO ==
 
=== <pontoon> tag ===
* Identifying strings is still not perfect: https://github.com/mathjazz/pontoon/commit/7fefc6e2baab8bb174736d996015972bc823cd5f
* Investigate the use of <pontoon> tag?
* Resources: http://horv.at/blog/implementing-hooks/
 
=== Send e-mails to admins ===
* http://david.feinzeig.com/blog/2012/02/18/tips-for-creating-404-page-not-found-and-500-server-error-templates-in-django-plus-configuring-email-alerts/
* http://stackoverflow.com/questions/6914687/django-sending-email
* https://docs.djangoproject.com/en/1.4/topics/email/
 
=== Apply Pontoon to the Open Web Apps development template generator ===
* This should probably be implemented as a hook.
* https://wiki.mozilla.org/Apps/Mortar
* https://github.com/mozilla/mortar
 
=== Verbatim integration ===
* Similar to Transifex. But no API...
 
=== Save vanilla sites translations to Transifex ===
* Transifex API allows creating new projects: http://help.transifex.com/features/api/index.html#projects
* Save non-hooks-powered sites as Transifex projects.
 
=== Glossary & spellchecker ===
* http://www.frenchmozilla.fr/transvision/
* Checking for multiple blanks in the translation.
* Checking for extra blanks at the end and at the beginning.
* Checking for missing or wrong (ending) interpunction – we keep forgetting terminal periods for instance.
 
=== Filters and batch operations ===
The prospect here is to streamline the triage of incoming contributions. This may need to scale up pretty badly, say 1000s of contributions with a signal to noise ratio in the % scale.
* Maintaining control over who localized what and when will be useful together with batch operations.
* We should make it easy to show all suggestions made by one guy or remove everything that the other guy did, because it’s spam.
* Checking for target = source.
 
=== Local storage ===
* If server side support not available, we should store the local version of translation.
* That way the localizer will be able to continue his work where he left.
* Wait for the connection and sync back to the server.
* WARNING: http://hacks.mozilla.org/2012/03/there-is-no-simple-solution-for-local-storage/
 
=== Crowdsourcing ===
* When you open a website and Pontoon has it's translation to your language, we could just load it and retranslate the page.
* That could end up as a separate extension allowing people to get pages translated by others.
* Something like universal subtitles for websites.
 
=== Feedback collector ===
([[User:StasM|StasM]] 12:07, 12 July 2011 (PDT))
* similar to those small vertical tabs that ask for feedback on certain websites, I can imagine an interface that users can use to submit feedback about copy and translations on the page they're currently viewing
* example flow:  click the "feedback" tab, select the DOM element that you want to give feedback on, type the description of the issue ("a typo") or a suggestion for a new translation, hit submit.  Behind the scenes, a request to Pontoon API is made and a new suggestion is recorded.
 
=== Responsive design ===
* Use media queries to properly display Pontoon interface on smaller screens.
 
=== Integrate Mozilla header ===
* https://github.com/debloper/tabzilla
* https://github.com/mozilla/kitsune/tree/master/templates
 
== DONE ==
 
=== Admin ===
* Create a dedicated Admin site instead of a JSON meta file.
* It should be only available to a privileged group of users, through profile menu.
* A simple project selector should appear with add new project link.
* Features for every project:
** Name + url + locales (multiple select) -> already in the model
** Subpages: urls + name tuples -> add to the model
** Campaign info: brief + locales + audience + metrics -> add to the model
** SVN repo: url + update/merge (for all locales)  -> add to the model
** Transifex: project + resource + update/merge (for all locales)  -> add to the model
 
=== SVN integration ===
* SVN is used at Mozilla as translation repository for different website localization tools.
* Similar UX as Transifex:
** Localizers: menu entry.
** Developers: JSON meta file.
* Generate PO file (see PO export).
* Commit as authenticated user, similar to Transifex.
** http://pysvn.tigris.org/docs/pysvn_prog_ref.html
 
=== Django hooks ===
* Similar to PHP hooks:
** Prepend strings with <!--l10n--> comment node.
** Inject meta tag with url to JSON meta file and pontoon.js script.
* Integrate with Playdoh.
* Should gettext do the job of replacing original strings with translations instead of Pontoon?
 
=== Delete translations ===
* Add the ability to delete translations.
* This functionality is missing from the Transifex API.
 
=== Project list ===
* Turn project URL input field into inputfield/dropbox hybrid.
 
=== Save translations to Pontoon server ===
* Temporary disable saving to Transifex in vanilla mode.
* Rename transifex.net to transifex.com.
* Create project-entity-translation-locale model.
* Load entities from Pontoon DB instead of Transifex.
* Populate model before first use from Transifex.
* Remove pontoon/mozilla credentials from JS.
* Add Locale to the model and populate it using fixtures.
* Autosave l10n data to DB on every change.
* No need to warn before page leave anymore (because of autosave).
 
=== Subpages with Transifex translations ===
* Subpages support has been implemented in prototype using the metafile.
* Upgrade prototype implementations to work with Transifex translations.
* Refactor Pontoon.project.page, Pontoon.project.pages, Pontoon.project.subpages.
* New Pontoon hooks test site (only change #intro block on every subpage).
* In Advanced mode, make a destinction between strings found on the current page and the rest.
 
=== Toolbar position ===
* Toolbar (edit, save, cancel) is sometimes not visible, e.g. when editing nodes on top of the page.
* Calculate the best position on the fly.
 
=== Disable links ===
* 'nuff said. Just like Hallo & Create.js.
* [http://bergie.github.com/hallo/ http://bergie.github.com/hallo/]
* [http://createjs.org/ http://createjs.org/]
* [https://github.com/bergie/create https://github.com/bergie/create]
 
=== HTML translations ===
* Source view icon next to the save and cancel icon should provide a way for a localizer to make changes to content that is not visible on a website, like href attributes in anchors.
* This can be done in the Advanced mode.
 
=== Saving translations ===
* Remove save to server option in plain mode.
* Enable download of translations as HTML, JSON (also XML, PO and other formats if needed).
 
=== Error handling ===
* JSONP in language detection call: if it fails on localhost due to bad url or no url conection, it doesn't go to success/error.
* Do not break if metafile malformed, doesn't cover every string, covers too many strings etc.
* getEntities() fallback if JSON not loaded; use guessEntities w/o comments instead?
 
=== Authentication (3 levels) ===
* BrowserID login only for now; we need a way to contact localizer and that's enough; it's simple enough for users
* Anonymous: user picks a nickname before saving changes (like Etherpad).
* Registered: login using BrowserID (deprecated for privacy: also consider Google, Twitter, Facebook, OpenID).
* Privileged: enable login using Mozilla LDAP account (consider OpenID & OAuth).
* Also check: https://wiki.mozilla.org/Verbatim/PRD
 
=== Transifex integration ===
* Enable saving changes to Transifex.
* Enable retrieving partial translations from Transifex.
* Provide API specification for the server side (talk to Transifex guys).
* Resources: http://msdn.microsoft.com/en-us/library/ff512404.aspx
 
=== Machine translation ===
* Google Translate API.
* Possible alternative: http://msdn.microsoft.com/en-us/library/ff512406.aspx
 
=== Header icons ===
* Use a drag icon to make drag handle more obvious, logo is not good enough.
* Better On/off switch than current arrows, which are barely visible.
 
=== Keyboard shortcuts ===
* Enter to confirm in-line translation.
* Tab to confirm + jump to next untranslated string.
 
=== Noscript ===
* Use noscript tag to warn users that Pontoon web client only works if JavaScript support enabled.
 
=== Translation memory ===
* http://www.frenchmozilla.fr/transvision/
 
=== General page info ===
* Hooks-powered websites only: general information about the page should be available in the interface.
* We have technical solution for this - in the metafile.
* https://wiki.mozilla.org/L10n:WorldReady/Early_Feedback

Latest revision as of 14:45, 13 July 2017

Do not edit this page THIS PAGE IS PROPOSED FOR DELETION 2017-07-13
Plans for different people, not working on pontoon, and old