
Ask HN: Managing Translated Texts - glun
We have come to the conclusion that we need a separate program to manage the lifecycle of the translated texts that appear in our software. We&#x27;re looking for features such as the following:<p>* The ability to query for all texts that lack translation in a given language.
* The ability to bulk export&#x2F;import texts&#x2F;translations so that an external translation specialist can work with them.
* For each text we would like to track its source. Was it written by a programmer, a business specialist or an external translation specialist?
* The ability to query for translations that are outdated (i.e. the default English text has changed since the translation was made).
* Both a gui (so that non-programmers can work with it) and an api (so that the build pipeline can interact with it).<p>We&#x27;re considering building it ourselves as it&#x27;s a fairly simple program. However, we already have so many other things we would like to work on so we would prefer to purchase existing software if we find any that works well. We&#x27;re also open to the possibility that we might be approaching the problem in the wrong way.<p>Do you have any experience with software like this? How do you manage your translations?
======
sujato
We've been working on a translation system that handles some of these things.
It's a CAT front-end for translators, with tests stored as plain JSON on
Github. The idea is to leverage git's version control and other features as
much as possible. Our use case is translating texts (Buddhist scriptures), but
we also use it for UI. The software is just coming together, so check it out,
[https://github.com/suttacentral/bilara](https://github.com/suttacentral/bilara)

\- _The ability to query for all texts that lack translation in a given
language._ No. Our project has a very large number of texts, so everything is
assumed incomplete. Would it be possible track this via Github, I wonder?

\- _The ability to bulk export /import texts/translations so that an external
translation specialist can work with them._ Sure, just pull from Github.

\- _For each text we would like to track its source. Was it written by a
programmer, a business specialist or an external translation specialist?_
Every translation edit records the Github user.

\- _The ability to query for translations that are outdated (i.e. the default
English text has changed since the translation was made)._ No, but that would
be awesome. Ideally the translator would be notified. It shouldn't be hard to
do this using Github notifications.

\- _Both a gui (so that non-programmers can work with it) and an api (so that
the build pipeline can interact with it)._ We have a front end GUI built with
LitElement, and ArangoDB for search and translation memory. For the back end,
apps consume the JSON data, there's no formal API yet.

In addition:

\- You can hook anything you like off the translation segments: notes,
variants, markup, etc.

\- It has a publication model so the translator and site manager can publish
any text or keep them as drafts.

------
yorwba
[https://www.transifex.com/](https://www.transifex.com/)

Query for all texts that lack a translation: this is the default behavior in
the translation interface.

Bulk export/import: there's an API and a CLI client for it. You can also make
it automatically pull new strings to translate from a git repo. (Not sure
whether it has to be public, in our case it is.)

Track the source: for changes made through the web UI, this happens
automatically. If you use the API, changes will be attributed to the account
associated with the API key.

Query outdated translations: those are treated as untranslated. But if the
change in the source text was small, you'll get the old translation as a
suggestion and can adapt it.

Downsides: not open source, free plan has limitations (but it's enough for our
project), some questionable UI choices (I recently had to explain to someone
how to join the translation team for an additional language, because the link
is extremely tiny)

~~~
glun
Looks like it might be roughly what we need. I’m going to dig a little deeper.
Thank you.

------
vicjicama
I am using google spreadsheets to generate localized sites at www.pagews.com
(The sheets for the site translations are public if you want to check an
example)

The service convert the sheets to JSON and use them on the generated site
content, I detect changes based on the hash for the cell and then the JSONs
are published and versioned.

