Memo for beginner translators of applications for Android or how to start translating applications



    Good day, Geektimes.

    When I was just starting to translate applications, there was not much information on translations, and it dealt more with the technical side of the question - how to decompile the application, which 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 guidance. In this article I will try to collect all the information regarding translations and tools that facilitate such work. I hope that for those who wish to become application translators this will serve as at least a good guide.

    Interested, I ask for cat.

    Introduction




    Of course, the most important thing is to know the language from which you are going to translate. Whether you will translate “fast” or “good”, or just two in one, depends on the knowledge of the language. It often happens that you don’t have knowledge in any necessary field, then here you definitely need to read literature in this area. For example, if you want to translate an application that is engaged in modifying the system, then you should study the literature about this, because technical English is not so unambiguous and often differs in meaning from terms in the non-technical field, and some constructions can be translated in different ways, and you can make a correct translation only if you understand what is being discussed. The second criterion follows from this: to understand that it really takes time and perseverance if you want to do everything efficiently,
    I will not go into the technical details of operations directly with the .apk file itself to get the localization out of it, as well as embed your translation into it - you yourself can easily find it in the open, because There are a lot of manuals, I just collected information about possible tools. For example, an article from the Habra sandbox , where the process of decompiling the application is approximately written; Hacker article about the same + modification; another article, the first in google . You can see in more detail, of course, the manuals of Google itself .

    First thing





    I often came across the fact that when you write to a developer with a wish to translate into Russian, offering your candidacy, several options appear:

    • the developer gives a link to a resource where translation is carried out by the whole world;
    • the developer replies that he does not plan to add another language;
    • the developer sends you localization files;
    • the developer says that localization is already there and it is of high quality;
    • the developer is not responding at all.


    A resource for translation by the whole world is good at translation speed, however, it is dangerous in that it is often not always translated by those who can translate correctly. Overview of such resources on Habré. For example, you know that such an item in the application menu is responsible for a certain function, and write the translation in the appropriate cell on this resource. And then some craftsman takes and corrects for an incorrect, for example, literal translation, which is not correct. You correct it again to the correct one, but someone stubborn renames it again. There are resources where you can vote for each proposed translation, for example, if someone suggested option “A” and you chose “B”, then other users can vote for either “A” or “B”, and whose translation gain more votes, that will be right. Although I have seen more than once that they vote for a frankly incorrect option. Well, of course, you must understand that you cannot consider a translation to be your own only if the authorship of the translation is important to you.
    If the developer sent you localization files, then everything is much simpler - we take our translation tool and go, and you can even agree with the developer to indicate you as a translator - you are pleased, and the developer receives another localization.
    If the developer says that there is quality localization, and you clearly see a mistake there, and not one, and there is no translation on the resource for translation by the whole world, then you only have to do your own 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 contact the developer first, as it can simplify your life, 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 based on working directly with the package’s resource table itself.

    Apktool and its modifications :
    What apktool can be found on open spaces, it is perfectly google and is explained wherever possible. Actually, all the tools below are based on it, I will not list all, 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 suitable for beginners;
    • APKToolGUI is a very convenient tool with a window GUI, but, unfortunately, it is no longer supported by the author, the code lies on GitHub (and a link leads to it);
    • Batch Apktool is, in my opinion, the most convenient and well-functioning tool that has some kind of GUI, has plug-in support, is actively developing and it is a real combine for modifying both firmware and individual applications;
    • jBART is a proven tool for translating firmware, but it can also work with single packages, in fact, this is an add-on for apktool that allows you to batch translate .apk files and patch code;
    • MultiApkTool - a good harvester similar to BatchApkTool ;
    • many others.


    BARS :
    BARS is a fundamentally different translation tool, it does not recompile packages, but patches the resource table with replacing or adding rows, which reduces the likelihood of recompilation errors by almost 99%.

    Bottom line:
    If you want to modify 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 vast, I do not have a goal to describe everything here. The whole trouble of apktool is that it repackages the application, which can create additional difficulties.
    If you want toonly localize , then you can do with BARS , however, you need to set up a repository with translation. However, fussing for an hour or two will be able to save you from bunting in 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, only without sharing it in the public domain. In fact, the appeal to the developer does not have any technical significance, but this is the ethical side of the issue, which is really important. For example, I contacted the developer of one tasker program and sent him a translation, however, there was a lot of translation in the code and it was impossible to compile a localized package without recompiling the application. The developer replied that “he cannot allow sharing, but he can use it for himself as much as he wants,” and he even indicated in which lines of code the translation lies.

    Tools for working with localization files





    Suppose you received localization files one way or another (either the developer sent them to you, or you disassembled the application), the next step is to translate these files. To automate the translation, there are a huge number of tools that use "translation memory" - a database that will match strings and display the most suitable translation option. You can read more about this, again, in the vast.

    • Manually - the most antiquated way: open in a text editor ( Notepad ++ or any other than the native Notepad in Windows!) And translate. Slow and archaic. In general, only three lines are enough for the first hundred, then laziness and pity for the lost time will take its toll.
    • TM-database is an excellent lightweight program that can work with many formats, supports a database and is actively supported. A great choice for both beginners and more advanced ones. It works both on Windows and runs fine under Linux (Wine).
    • TranslatorApk is a processor that can decompile applications and is relatively convenient 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, I personally use TM-database . For example, I have OmegaTcompletely refused to work with .xml, I had to copy-paste into a document of a different format, delete unnecessary ... In general, it was stressful. When using the “translation memory”, you can use either your own base or the standard one. Your database is good in that you add only your translation to the database, and with automatic translation a lot can be translated correctly. When using the “standard” base or the “common” one, in which everyone puts a pretty penny, most likely there will be much more translation, but then again, it may be incorrect or may differ from your thinking. Here is your choice. There are also online translation functions - you can run through an online translator and then edit, but more on that below.

    Total:creating your own base can simplify your life more than a common base, but only if your database contains really many lines. It may take several years to create one, but it's worth it. In other cases, a common base is enough. Personally, my recommendation is to create your own base from scratch, or take a “standard” base and type your translation into it — a standard translation for that and a standard one, and your lines will be added to it personally. But do not think that the database will solve all your problems, you will always have to manually hammer in a part and edit the translation from the database. Always after running 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 differently from literal translation, and all of them are unrealistic 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, that you can download the database and translate through the client.
    • ABBY Lingvo - the client on the PC can even talk, a huge translation database. Anyway, the company is famous, one of the best. There are fewer special terms than in Multitran, but it can definitely help, or at least toss a translation option.
    • PROMPT - a well-known translator, a competitor to Google Translate, sometimes gives out options that Google Translate does not have; I have to think it over, but if there is a clue - it’s 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, including and in Chinese.
    • Google Translate - no comments needed. It can prompt or even translate normally. It’s pretty good to 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 translation errors (double spaces, integrity of variables, tags, etc.). An incredibly useful service that the plugin 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 MultitranIt can also make your life much easier. But if there is no special term, then you need to punch through the necessary resources in three resources and try to grasp the meaning of the phrase - yes, this also happens. A very good clue is often given by the line with the translation, the key itself, from it 95% of the information can be pulled out, for which this line is responsible. In no case do not get carried away with a naked online translation, there is no practical benefit from such a translation at all, it is easier to leave it in the native language, if it is at least English. But if this happened, that I really want to translate, but there are no special skills and knowledge, then you should drive it through an online translator, look at the key of the line and refine it. In the process of such training, each time your knowledge will increase, and the translation will be polished. The most important thing is never to leave a bare machine translation,

    Conclusion




    Well, that seems to be all. As you can see - it is not so difficult, moreover, it makes the brain work, and knowledge is never superfluous. To summarize, the general recommendations do not differ from those in the article — do it yourself, copy and translate through translators without any further processing. For example, if you translate from a Chinese into English through a translator, and then into Russian, you get such a horror that it would be better if Chinese remained. 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 a shame, if you translate anyhow), and to yourself personally. Fortunately, with every year tools and services are being sawn more and more actively, it becomes much more convenient to deal with translations. By the way, if the developer is adequate, then for your work you can get either some VIP account or a small gift (I was somehow sent a cool T-shirt with a cool monster - the program logo) - a trifle, but it's nice anyway. Respect each other and do the job efficiently, if you have already taken.

    Thank you all for your attention.

    Also popular now: