Hacker News new | ask | show | jobs
by davidzweig 2515 days ago
We needed recently translate our chrome extension (languagelearningwithnetflix.com) into 18 languages. We are poor and had less than $1000 for the job.

Here's our approach.

1. Move all strings into a Google doc. Takes about 8 hours.

2. Organise strings into groups with screenshots, think carefully, split strings, look for reused strings, reword things to make them simpler and easier to translate, add notes to some strings to make the meaning more explicit. Very tedious part of job, 2-3 days work.

3. Put the doc, editable with link, onto upwork with a fixed payment, somewhat generous for translation wordcount. Check translator is a native in the target language, had some good feedback and ideally some IT/programming experience. Order translations for the languages we can check ourselves (5-6 languages).

4. Check the translations received for issues. Translators typically misinterpret the same things, as the source was not clear enough. Fix these issues. Maybe 4 hours work.

5. Now send to 10+ other translators for the languages we don't understand. Cross fingers that these will be ok.

6. Check translations of labels for homogenous usage of semicolons, capitals, fullstops etc. Struggle with zh/ja/ko.

7. Use a small JS script to transform CSV output from sheets to JSON for chrome.i18n.

8. Cycle through all locales and for overflowing text or other issues.

9. For any extra strings that we might need later, can try Microsoft UI translations database, or else, Google translate (which is mostly ok, can check the reverse translation).

Honestly this all was quite a lot of boring work, but we probably ended up with reasonable translations at a good price, and managed to pay translators reasonable money.

2 comments

> Struggle with zh/ja/ko.

FYI, these are frequently called CJK (chinese, japanese, korean). Although, that more has to do with the fact that each character takes multiple keystrokes to type and thus is harder to support, than to do with the locale.

Wow, that's very interesting--what a time consuming experience. You can imagine that this method would not be sustainable for larger codebases. Let me know at abhi@langapi.co next time you go through this process and we'll help you out :).