L10n:Pontoon/Feature Brainstorming: Difference between revisions
Jump to navigation
Jump to search
Line 8: | Line 8: | ||
== BLOCKERS == | == BLOCKERS == | ||
* Update Playdoh. | |||
* Admin: separate Django app. | |||
* Admin: bullet-poof project creation (project should be available in the menu only after entities get created, validate SVN & TX urls before saving). | * Admin: bullet-poof project creation (project should be available in the menu only after entities get created, validate SVN & TX urls before saving). | ||
* Push to production. | * Push to production. | ||
* PO generator should not change the order of entities. | * PO generator should not change the order of entities. |
Revision as of 22:40, 29 August 2012
We are currently in the early development stage for Pontoon and would like to collect all the ideas for feature enhancements in a single place.
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 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
- Update Playdoh.
- Admin: separate Django app.
- Admin: bullet-poof project creation (project should be available in the menu only after entities get created, validate SVN & TX urls before saving).
- Push to production.
- PO generator should not change the order of entities.
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
Project name instead of URL
- Consider using project names instead of project URLs in Pontoon URLs.
<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
(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
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.
Django hooks
- Similar to PHP hooks:
- Prepend strings with 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://createjs.org/
- 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
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