By the way, I'm looking for contributors as there is still lots to do. If you are just learning Go or Angular 2, you are more than welcome to get involved in the project.
As a side note: It has been a pleasure working with Go for the backend. Even though there weren't that many real world projects to check out for patterns/inspiration, Go's interface/composition driven approach made things simple. It seems to me that the community really wants to stick to a few well-thought-out interfaces for common things (HTTP, databases, etc...) and this helps to keep libraries consistent and easily replaceable.
Out of curiosity, have you looked at Mozilla's Pontoon and if yes, can you compare/contrast the goals of Parrot w/ those of Pontoon? https://github.com/mozilla/pontoon
To be honest I didn't know about pontoon before, which is surprising given that, like Parrot, it's a localization tool and by Mozilla. I guess I should do more research before starting a new project :)
But after checking it out quickly, it seems to me that its main focus is in-place translation for web projects (I could be wrong).
Parrot is mainly a tool to help you manage your translations for various projects, no specific platform is targeted. It comes with a REST API (useful for loading translation updates for mobile apps/games for example) and role based contributions. It's meant for small/medium multidisciplinary teams, so no features for crowd-sourced translations are provided.
Basically it was built out of the need for such a tool at my current company (gaming industry, multi-platform projects). We wanted it on premises, open-source and a web-UI for editing so that people from different disciplines can use it.
Is (or: in what way is) Parrot comparable to Smartling, https://www.smartling.com/, a commercial SaaS offering for localizations/translations of all kinds of content?
At my current project, we're integrating with Smartling for both content in a CMS as for web application internationalization (including translation, localization). Smartling provides a nice (and well-documented) API as well to submit, retrieve and manage translation projects... and a number of 'connectors' for some big CMS applications for synchronizing content and translations hence and forth. Your project looks like a worthy competitor (while being self-hosted)... nice job!
Parrot is more of a tool for managing your translations and distributing them (via REST API), while being self-hosted and open-source. I haven't looked at Smartling in depth, but seems cool! After reading a bit about it, one feature that differentiates it would be the "Marketplace of professional translators", Parrot does not intend to go in that direction :)
It's on-premises, open source, has a web UI, supports many formats and comes with a REST API. I'm sure you must have seen it - any reason you didn't go that route?
Aside: I see you're shipping with nginx and have a whole ssl setup. Take a look at Caddy, your life may get simpler :) https://caddyserver.com/
I'd recommend also looking into the XLIFF format. I've been using it together with Multilingual App Toolkit v4.0 for .NET projects in Visual Studio and it seems to be quite well-designed and widespread format.
To be a little picky but it might help drive some further thinking - localization and translation are two different things and it looks like parrot does translation only? Translation is a subset of localization.
The two are conflated a lot, especially in gamedev. Translation is nice, but localization is a superpower.
Are there any tools or sites where crowd-sourced dictionaries is a key feature? As a developer of an app, I would like to have basic actions (eg open, save, login, cancel, ok) translated to all the locales.
18 comments
[ 2.8 ms ] story [ 43.6 ms ] threadAs a side note: It has been a pleasure working with Go for the backend. Even though there weren't that many real world projects to check out for patterns/inspiration, Go's interface/composition driven approach made things simple. It seems to me that the community really wants to stick to a few well-thought-out interfaces for common things (HTTP, databases, etc...) and this helps to keep libraries consistent and easily replaceable.
It looks great, though.
And I love the name and logo.
But after checking it out quickly, it seems to me that its main focus is in-place translation for web projects (I could be wrong).
Parrot is mainly a tool to help you manage your translations for various projects, no specific platform is targeted. It comes with a REST API (useful for loading translation updates for mobile apps/games for example) and role based contributions. It's meant for small/medium multidisciplinary teams, so no features for crowd-sourced translations are provided.
Basically it was built out of the need for such a tool at my current company (gaming industry, multi-platform projects). We wanted it on premises, open-source and a web-UI for editing so that people from different disciplines can use it.
At my current project, we're integrating with Smartling for both content in a CMS as for web application internationalization (including translation, localization). Smartling provides a nice (and well-documented) API as well to submit, retrieve and manage translation projects... and a number of 'connectors' for some big CMS applications for synchronizing content and translations hence and forth. Your project looks like a worthy competitor (while being self-hosted)... nice job!
https://github.com/translate/pootle/
It's on-premises, open source, has a web UI, supports many formats and comes with a REST API. I'm sure you must have seen it - any reason you didn't go that route?
Aside: I see you're shipping with nginx and have a whole ssl setup. Take a look at Caddy, your life may get simpler :) https://caddyserver.com/
https://en.wikipedia.org/wiki/XLIFF
The two are conflated a lot, especially in gamedev. Translation is nice, but localization is a superpower.
http://parrot.org/
Looks like an interesting project, especially if you don't mind managing the install yourself (vs. paying a company like PhraseApp).