mathjazz / pontoon

In-place localization tool
https://pontoon.mozilla.org/
BSD 3-Clause "New" or "Revised" License
3 stars 1 forks source link

Add ability to write custom plugins for the custom formats of resource files. #1051

Open mathjazz opened 8 years ago

mathjazz commented 8 years ago

This issue was created automatically by a script.

Bug 1310735

Bug Reporter: @jotes CC: @mathjazz

Hi,

I want to prepare a demo site for The Piwik project (http://piwik.org). Unfortunately, piwik uses custom format (.json) for keeping source strings and translation.

And because of that I think that we should add a possiblity to write plugins for the new formats of files

I think we can achieve this via the setuptools mechanism for plugins: http://docs.pylonsproject.org/projects/pylons-webframework/en/latest/advanced_pylons/entry_points_and_plugins.html

mathjazz commented 5 years ago

Comment Author: @mathjazz

Given that adding support for new file formats is pretty straightforward, maybe we should instead write docs for how to do that?

mathjazz commented 5 years ago

Comment Author: @Pike

I just started a patch to add parser entry points to compare-locales, and I would think we should use that to hook custom formats to Pontoon, too.

I don't think we should try to support "them all" inside Pontoon. Some might not be public, and others might just as well conflict. In particular when trying to pick up niche json or xml dialects.

The alternative is that folks maintain their forks of Pontoon, and that's naughty.

mathjazz commented 5 years ago

Comment Author: @jotes

Initially I was thinking about custom entry points, because of their maintainability and flexibility. They would give the users non-mozilla Pontoon the ability to install extensions via Pypi without any interactions with the upstream repository (and forks too). However, that's definitely harder than an update of documentation - I'm fully aware of that. The interface of synchronization for all formats was stable over the years and there shouldn't be a lot of surprises during the implementation of entry points. I don't know about the number of developers/companies with customized Pontoon instances. Nonetheless, future-wise, the interface of sync plugins should be versioned to notify people if their instance of Pontoon will break after an update. That's just my observation, I don't know if it's a critical thing that should land on the top of roadmap.