
Good day, Geektimes.
When I first started translating applications, there was little information on translations, and it dealt with the more technical side of the question - how to decompile the application, what tools to use and general recommendations, and for the most part it was the same everywhere. And, frankly, it was hard to understand a ton of information without any relatively good leadership. In this article I will try to collect all the information about translations and tools that facilitate such work. I hope that those who want to become translators of applications will serve at least as good guidance.
')
Interested please under the cat.
Introduction
Of course, the most important is knowledge of the language from which you are going to translate. It depends on the knowledge of the language whether you will translate “quickly” or “well,” or two at once. Often it happens that you do not have knowledge in any necessary field, then you definitely need to read literature on this area. For example, if you want to translate an application that modifies a system, then you should study the literature about it, because Technical English is not so straightforward and often differs in meaning from terms in the non-technical field, and some constructions can be translated differently, and you can only make a correct translation if you understand what it is about. The second criterion follows from this: to understand that it really takes time and perseverance if you want to do everything qualitatively, and not through Google Translate.
I will not go into the technical details of operations directly with the .apk-file itself for pulling out localization from it, as well as introducing your translation into it - you yourself can easily find it in the open spaces, since There are a lot of manuals, I just collected information about possible tools. For example,
an article from the Habr sandbox , where the process of decompiling an application is roughly written;
Hacker article about the same + modification;
Another article, the first in Google . More details can be viewed, of course, the
manuals of Google itself .
First thing
I often came across the fact that when you write to the developer with the wish to translate into Russian, offering your candidature, several options appear:
- the developer gives a link to the resource where the translation is carried out by the whole world;
- the developer responds that he does not plan to add another language;
- developer sends you localization files;
- the developer says that localization is already there and it is of high quality;
- the developer does not respond at all.
The resource for translation by the whole world is good at the speed of translation, however, it is dangerous because it is often not always translated by those who can translate correctly.
The review of such resources on Habré . For example, you know that such an item in the application menu is responsible for a specific function, and write the translation in the appropriate cell on this resource. And then some craftsman takes and corrects for the wrong, say, literal translation, which is not correct. You correct again on the necessary, but someone stubborn again renames. There are resources where you can vote for each proposed transfer, for example, if someone offered option “A” and you are “B”, then other users can vote either for “A” or for “B”, and whose translation will get more votes, he will be right. Although I have repeatedly seen that they vote for a frankly incorrect option. And, of course, you need to understand that you cannot take a translation only as your own if the authorship of the translation is important to you.
If the developer has sent you localization files, then everything is much simpler - we take our translation tool and go ahead, and you can even agree with the developer to point you in as a translator - you are pleased, and the developer receives another localization.
If the developer says that there is localization and quality, and you clearly see an error there, and not just one, and there is no translation for the whole world for translation, then all you have to do is make your mods, if, of course, the developer refuses to take your localization . The same situation, if the developer did not answer you.
Personally, I advise you to always try to first contact the developer, because it can make your life easier, and then choose - whether you will translate on the site, or do your translation.
Tools for working with .apk
In fact, there are two tools, one based on the decompilation of the package itself, and the other on working directly with the package's resource table itself.
Apktool and its modifications :What is
apktool , you can learn in the open spaces, it is perfectly googled and explained wherever possible. Actually, all the tools below are based on it, I will not list everything, but I will try to add the most basic ones.
- Apktool - “original” version, console;
- APK Studio is a powerful tool for working with the package; it is not very suitable for beginners;
- APKToolGUI is a very handy tool with a windowed GUI, but, unfortunately, is no longer supported by the author, the code lies on GitHub (the link leads to it);
- Batch Apktool - in my opinion, the most convenient and well-functioning tool that has some kind of GUI, has plug-in support, is actively developing and is a real combine to modify that firmware, that individual applications;
- jBART is a proven excellent tool for translating firmware, but it can work with single packages, in fact, it is an add-on for apktool that allows you to batch translate .apk files and patch code;
- MultiApkTool - a good combine, similar to BatchApkTool ;
- many others.
BARS :BARS is a fundamentally different translation tool, it does not recompile the packages, but patches the resource table with the replacement or addition of lines, which makes it possible to reduce the probability of recompilation errors by almost 99%.
Total:If you want to make a modification of the .apk-package in a more complete understanding of the process (for example, elementary cutting out unnecessary languages, replacing icons, etc.) + translation, then you need tools based on
apktool - all instructions for use and other tricks can be found in the open spaces , I do not have a goal to describe everything here. All the trouble
apktool is that it repacks the application, which can create additional difficulties.
If you
only want
to localize , then you can do without
BARS , however, you need to configure a repository with translation. However, fussing for an hour or two will be able to save you from the bunt on the assembly, which can happen with
apktool .
Attention! I strongly recommend contacting the developer when creating mods - they often go to a meeting, allowing you to do anything with the application, but without sharing it. In fact, there is no technical value to referring to the developer, but this is the ethical side of the question, which is really important. For example, I contacted the developer of a single tasker program and sent him a translation, however, there was a lot of translation in the code and it was impossible to assemble the localized package without recompilating the application. The developer replied that he “cannot allow sharing to the public, but cannot use it for himself - as many as he likes,” and even indicated in himself exactly which lines of code the translation lies.
Tools for working with localization files
Suppose you received localization files anyway (either the developer sent them to you or you disassembled the application), the next step is to translate these files. To automate translation, there is a huge amount of tools that use
“translation memory” (“translation memory”) - the base that will match strings and display the most suitable translation option. More information about this can be found, again, in the open spaces.
- Manually - the most old-fashioned way: open in a text editor ( Notepad ++ or any other than the native Notepad in Windows!) And translate. Slow and archaic. In general - just enough for the first hundred and three lines, then laziness and pity for the time lost will take its own.
- TM-database is an excellent lightweight program that can work with many formats, supports the database and is actively supported. An excellent choice for both beginners and more advanced ones. It works on both Windows and it runs perfectly from under Linux (Wine).
- TranslatorApk is a combine that can decompile applications and is relatively comfortable to work with text. An option for those who want to have everything in one.
- Déjà Vu , OmegaT , Trados , SDL Passolo , etc. tools.
The most suitable for translating localization files (.xml) are the first two programs, personally I use
TM-database myself. For example, my
OmegaT completely refused to work with .xml, I had to copy-paste into a document of a different format, delete the excess ... In general, it was stressful. When using "translation memory", you can use your base, which is standard. Your base is good because you only add your translation to the database, and with automatic translation, a lot can be transferred correctly. When using a “standard” base or a “common” one, in which everyone puts in a penny, there will most likely be much more translation, but again - it may be wrong or may differ from your thinking. There is already your choice. There are also functions of online translation - you can get rid of it through an online translator and then edit, but more on that below.
Bottom line: creating your own database can simplify your life more than a common base, but only if your database really contains many lines. It may take several years to create it, but it's worth it. In other cases, the total base will be enough. Personally, my recommendation is to create your base from scratch, or take the “standard” base and type your translation into it - the standard translation is standard and your lines will be added to it personally. But do not think that the base will solve all your problems, you will
always have to manually hammer in some part and edit the translation from the base.
Always after the sweep through the base, look at the result.
Dictionaries and online services
Of course, in order to drive something into the database, you need to know how it translates. Often, many special terms are translated completely different from the literal translation, and all of them is impossible to remember. And here you have to turn to dictionaries and translators.
- Multitran is an amazing platform where you can really find a huge number of terms, and you can add it too. You can translate that through the site, download the database and translate it through the client.
- ABBY Lingvo - a client on a PC can even talk, a huge database of translations. And in general, the company is known, one of the best. There are fewer specific terms than in Multitran, but it definitely can help, or at least, throw a translation option.
- PROMPT is a well-known translator, a competitor of Google Translate, sometimes gives options that are not available in Google Translate; it is necessary to think out, but if there is a hint, it is already good.
- MyMemory is an excellent resource, an analogue of Multitran, there are many terms and various translation options.
- QTranslate is an excellent client for translation services, in which you can immediately punch through each service, incl. and in Chinese.
- Google Translate - does not need comments. Can prompt or even translate normally. Pretty good translate from Chinese.
- Microsoft Language Portal - here you can find the “translation memory” for Microsoft products (thanks for the virtualtomato hint).
- Verifika is a terrific service for finding offensive errors in translation (double spaces, integrity of variables, tags, etc.). Incredibly useful service, which plug-in Notepad ++ will not replace (thanks for the virtualtomato hint).
- A lot of information about translations, links to resources for specialized translation, etc.
Using services like
Multitran can also make your life much easier. But if there is no special term, then you should punch the right words in three resources and try to catch the meaning of the phrase - yes, this also happens. A very good hint is often given by the line with the translation, the key itself, you can pull out 95% of the information from it for what this line is responsible. In no case do not get carried away with naked online translation, there is no practical benefit from such a translation, it is easier to leave it in the native language, if it is at least English. But if this happened, I really want to translate, and there is no special skills and knowledge, then you should get rid of it through an online translator, look at the key of the line and improve it. In the process of such training, each time your knowledge will increase, and the translation will be polished. The most important thing is to never leave a bare machine translation if you run it online.
Conclusion
Well, that seems to be all. As you can see, this is not so difficult, moreover, it makes the brain work, and knowledge is never superfluous. General recommendations, to summarize, do not differ from those in the article - to do it yourself, to copy and translate it without translators without any further processing. For example, if you translate through a translator from Chinese into English, and then into Russian, you will get such a horror that it would be better to stay Chinese. The most important thing here is respect for the work of others (the developer), for users who will look at your translation (and there will be shame, if you translate anyhow), and to yourself. Fortunately, every year the tools and services are sawn more and more actively, it becomes much more convenient to do translations. By the way, if the developer is adequate, then you can get either a VIP account or a small present for your work (I was somehow sent a cool T-shirt with a cool monster - the program logo) - a trifle, but still nice. Respect each other and do the work efficiently, if you come from.
Thank you all for your attention.