Translation into English in IT sphere by the example of PVS-Studio

Our company PVS-Studio actively publishes articles on the topic of development, search for errors in the code, techniques for improving its quality. This post is different in theme - this time we will consider the issue of translating Russian-language content on the topic of development into English.

In this article you will read about IT translation in general, learn how we translate articles into English in PVS-Studio, and get recommendations on the workflow. The text will be useful for translators working with IT-related topics, and developers interested in this issue.


Introduction


If tomorrow they cancel the Russian language, domestic programmers will communicate in English. In IT, the primacy of this language has never been disputed. In addition, the programmer-applicant must meet the requirements of vacancies. For the period from February 17-18, 2020, out of 300 vacancies posted on hh with a salary of 140,000 rubles or more in Moscow for the keyword "programmer" (excluding from the sample "System Administrator", "UI / UX Designer" and other vacancies not related directly with the development), only in 62 there is no mention of “technical English” or similar in requirements. Only in onethe vacancy was clearly spelled out "English is not needed." This encourages developers to bring their level of ownership at least to intermediate in order to meet this requirement, to become closer to resources from foreign authors about their favorite code and communicate with foreigners. The most stubborn of this succeeds - happy end.

In most cases, the IT translator’s path is different: knowledge of the subtleties of English grammar, memorization of idioms and ornate words, a lot of oral and written practice in various fields, strict adherence to the command: “Translate not words, but meaning”. The contradiction arises at the moment when the newly-made specialist does not catch the intricacies of the technical context and as a result translates word by word. However, this scenario may have a good ending. This will be discussed further.

Theme of IT translation on the Net


The topic of translation into English on IT topics is not fully disclosed in the Network. If a person wants to better understand this topic, you can:


An ideal hardcore option is to take an English programming course ( example ), learn the basics, write a calculator, divide by 0, copy-paste, seal and understand the deep meaning. Nevertheless, a single school for the translation of IT topics has not yet been formed, since the industry is young, vast and diverse. After all, the texts can be directly about development, or they can be about related topics - legal, marketing. Also, different programming languages ​​may have their own characteristics, for example, the meaning of the word “heap”, which is translated into Russian as “heap”. In ordinary life, this means a messy pile of things, and in programming this word designates both the area from which dynamic memory is allocated and the type of container in which data is ordered in a certain way.

Thus, after graduation, the average translator who is faced with IT topics is likely to engage in self-education closely - he will do the above, supplement it with a specialized course ( example ) and carefully study the internal guides, if any.

The process of translating articles into PVS-Studio


The topic of work is specific, since we develop only one cool tool - the PVS-Studio static code analyzer . If it’s simple, the tool finds errors in the code in C, C ++, C #, Java and displays messages that there may be an error in the indicated section of code. Therefore, this article will provide examples regarding these particular programming languages.

About myself . I have been working in PVS-Studio for more than 2 years, I translate articles and notes on average from 3 to 30 pages, letters and fragments of documentation. In addition to the main tasks, I attend thematic conferences 1-2 times a year, where we get acquainted with the participants, talk about the company and spend time lamp-lamp with colleagues.

About the stages of translation. It all starts with receiving the article in a letter to the post office and setting the task on the kanban board. Then the main ones: translation into CAT, editing, final design. Below I will talk about the general principles of translation, then in detail about each stage.


General principles of translation


Below I will describe some principles that have been formed from experience, recommendations and personal observations. I will give examples from articles and explain.

Accurately translate terms . Compare the translation of the word “string” in the following two examples.

Example 1 . Original: “In the release version of the program, the compiler can perform optimization and reorder the lines of the call to the SetStatic () method and assign the instance variable to the m_RemovePacket field (from the point of view of the compiler, the semantics of the program will not be violated)”.

Translation: “In the release version of the program, the compiler might optimize and reorder calling lines of the SetStatic() method and assignment of the instance variable to the m_RemovePacket field (from the compiler's point of view, program's semantics won't break)».

2. : « . , . , :

  • g_ascii_strncasecmp — 35,695
  • lstrcmpiA — 27,512
  • _wcsicmp_l — 5,737
  • _strnicmp_l — 5,848
  • _mbscmp_l — 2,458
  • .».

: «There are popular functions and there are few of them. There are unpopular, but there are many of them. For example, there are the following variations of the string comparison function:

  • g_ascii_strncasecmp — 35,695
  • lstrcmpiA — 27,512
  • _wcsicmp_l — 5,737
  • _strnicmp_l — 5,848
  • _mbscmp_l — 2,458
  • and others».

In the first case, a string is a string in the code, in the second - a data type.

To work out the grammar

Several times we received feedback on the quality of translations - it was both good and bad. Once there was a case when I forgot the article the. It was a sentence with a meaning like “We test the code and help this world get better.” I translated the second part using the stable expression “Make the world a better place”, but I forgot the article. When editing, we did not notice this. In general, the man pointed us to this. Of course, everyone makes mistakes, but our task is to try to minimize their number.

I’m still trying to work out the moments in which I’m not sure, I advise T. Yu. Drozdova "English grammar reference and practice", dictionaryCollins .

Do not overlook, translate the meaning

Original: “It feels right that the expression cmptlut [0] <0 was duplicated twice by copying, but corrected zero in only one place.”

Translation: "My gut is telling me that the cmptlut [0] <0 expression was pasted twice, but 0 was changed just once."

It was possible to translate the first phrase verbatim using the verb “to feel”, but the idiom, in my opinion, also clearly conveyed the meaning and feeling. Also, the phrase "duplicated by copying" I translated easier to leave only meaning.

Remove non-semantic words

Original: "A similar case of hasty writing code."

Translation: “A similar case of hasty coding”.

The simplest example of how to make a translation more capacious: “writing code” - “coding”, instead of “writing code”.

To simplify the fact that it is more difficult to read the

Original: Unload the report by going to the task tab.

Translation: Go to the task tab and download the report.

It will be easier for the programmer to read a simple verb than the participle.

Do not abuse, but periodically use stable expressions, idioms

Original: “Let's consider in more detail: if the condition marked by me with the number 1 is fulfilled, then we will go to condition 2, which is always true, which means line 3 will be fulfilled.”

Translation: “Let's peek under the hood: if the condition that I marked with number 1 is fulfilled, we'll move on to the condition 2, which is always true, which in turn means that the line 3 will execute”.

A programmer’s speech usually consists of terms, prepositions, conjunctions, pronouns, strong expressions and curses (which is sad). One of the stable expressions is “under the hood”. Since the sentence above refers to the text of the article, which has a teaching and advertising character, such a free translation fits well.

Separate / merge sentences The

example below is taken from an article about our merchand, in particular, about Tula gingerbread cookies.

ABOUTOriginal: "There are countless varieties of their varieties, tastes and illustrations, and in our city there is a museum, visiting which you can see how technologically difficult they have to create."

Translation: “There are countless varieties, tastes and forms of them. In our local museum, you can see how technologically difficult the process of their creation is. "

This is an imperfect translation, you can still work with some words. Nevertheless, the division of a complex sentence (four predicative parts and adjective turnover) significantly helped in the translation and subsequent reading.

In the book “Write, Cut” on a strong text, the authors advise not to use more than 3-4 grammatical foundations in one sentence. I advise every translator to read this book! She received a lot of criticism, but by the level of saturation with useful material she is one of the best: each thesis is followed by an example, each statement is justified, checklists and memos are made.


"Write, cut it." Authors: Maxim Ilyakhov, Lyudmila Sarycheva

To summarize . Following these principles helps you take care of the reader. When the look does not stare while reading, there is no confusion, "tracing" and the content is useful, the reader will want to return to the text again.

In this section, I very briefly described the problems that arise, my personal conclusions. Once in 1-2 days a complex expression is encountered in the work / a new term / I find a new stable expression - there are many examples. In parallel, I continue to compile a glossary for an IT translator with examples and explanations. Support like and comment if there is interest to read about specific terms and interesting cases yet.

Now we proceed directly to the stages of working with a Russian-language document.

1. Transfer to CAT. The Memsource tool (related to CAT - computer-assisted translation) came from a previous translator, but I also tried Trados, Déjà vu, MemoQ to make sure that we are not missing out on a more suitable tool. Now I'm trying SmartCAT. On the one hand, it seems that changing the program is not difficult, but there are various questions that need to be addressed: careful import of the term base and translation memory, price plan, integration, configuration and privacy of machine translation. In my opinion, it is important that you have the necessary features, not the prevalence of using the platform or reviews. Professional translators are most likely aware of all these subtleties, so I will briefly describe only the basic necessary features for my work:

  • base of terms (Term Base). If the term from the base is found in the text, it is proposed and highlighted in the program.
  • Machine Translation It is believed that this is bad practice, since the machine translates according to algorithms and does not know about accents, inversion, sarcasm, etc.

On the other hand, IT translation is more a technical translation than a literary one. The reader will forgive us a slightly drier translation, but he will not forgive the incorrectly translated term. In addition, the translation of articles is put on stream, the speed of work is important here. Sometimes I translate voluminous answers to clients here - it’s definitely not worth delaying such tasks.

  • (Translation Base). , , , .
  • (Quality Assurance). , , .
  • . Memsource : , , , , ( , , ). – : , , .


The interface of the Memsource platform (click to enlarge the picture)

Despite the growing quality of machine translation, you need to carefully read the proposed translation, pay special attention to the articles and prepositions, since they are easiest to miss when reading.

Even taking into account obvious advantages and conveniences, there are funny cases when machine translation frankly “does not catch up”.

A few examples:


From the English version, it seems that the programmer did not make a typo, but was sealed somewhere in a closed space or "was a foregone conclusion."


In mathematics and programming, the concept of a “tree” is used to describe data structures. In this particular case, we are talking about an abstract syntax tree (AST), that is, representing the source code as a tree structure. But the translator considered that wood processing is also appropriate here.


The English version assumes that the project can be deflated, deflated, like a wheel or a “bubble” in the economy, then definitely not like a file from the platform.


The translator has become generous and offers conference participants to receive from our company not a tasty hotel (Tula gingerbread), but a whole hotel. How to scold him after such kindness?

My colleague Victoria Hanieva, who was translating for training purposes, also had ridiculous cases.


The translation of "exponential function" is very impressive.


When you do not know the translation of the Russian word, you can try to write it in the English manner. Well, at least the car tried.


Here are just a few polysyllabic words in a row, the car decided to express it easier.

In the free version of Memsource, you can have only two files in a project. At the same time, it is quite possible to include machine translation and significantly speed up the process compared to translation, for example, in a doc file. But be careful, read and check =)

2. Editing . Here you can not do without a programmer with knowledge of English, who will advise you on problem areas, terms, will talk about what is at stake. Enlist the support of this person, gratefully accept the explanations, take notes so as not to forget and pass them on to the next generation. In my case, this is Yuri Minaev ( hereyou can listen to his report in English). We read and edit the text directly in memsource, sometimes send Russian and English doc files to the mail for editing in edit mode. So far, the scheme is working, maybe we will change something in the future.

3. The final design . There is a lot of code in the text of our articles. Memsource sometimes shifts the code when downloading a document from the site, despite the fact that I copy fragments of texts so that the original formatting does not change. By what principle it leaves some code fragments intact, and in some it shifts several lines - for me a mystery.

In the articles, our authors talk about errors in the code and often give examples of correct spelling. Imagine that the article says: “This is the correct version of the code.” The following is the shifted code. It looks ridiculous. The question arises - how to deal with shifts in the code? Comparing each piece of code with the original is tedious and inefficient. Therefore, I use the document comparison function in the “Review” tab. In the final document, deleted spaces are underlined by solid lines, they are immediately visible, so I quickly copy the “broken” fragments from the original. The percentage of shifted fragments - about 10% per document, so far is not annoying, but I am in search of an error-free solution.


Comparison of documents of the original and translation (click to enlarge the picture)

Now I’ll tell you one more thing. To unify documents in PVS-Studio there is a self-written Publisher as an extension in Word.


Publisher (click to enlarge the picture)

Here are a few functions for programmers, such as automatic code formatting, inserting links to documentation and examples from the error database. Personally, I use the replacement of invalid characters, for example, different quotation marks are changed to common. I also use "Replace links": links to the Russian version of the pages of our site are changing to English. At the end, I click on “Transforming the article,” and the Publisher himself checks whether the design is respected. For example, in the headings there should not be a dot at the end, in the fields “Author” and “Date” there should not be spaces after the text.


An example of a correctly formatted title

This tool is enough for now. In general, what I like about working in an IT company is attention to details and willingness to work them out.

Workflow Recommendations


Natural perseverance and mindfulness comes in handy. When checking large articles (more than 20 pages) it is especially easy to miss a typo, an extra space. I tried the Pomodoro technique , but five-minute breaks only interrupted a solid working mood, which managed to appear in 25 minutes of concentration. I found a solution for myself personally - calm music without words or with words in a language that I don’t know. This is how background thoughts separate, and you can focus on the text. I use Yandex.Music collections .

It is important to organize a workspacein order to minimize distractions: do not choose a noisy workplace where a lot of people walk by, use the “do not disturb” status in tense moments, so that good-natured colleagues do not interrupt your thought about leaving the array, for example.


After a couple of hours of dense translation, changing the atmosphere and the type of mental activity is a must have: tea, coffee, chat.

During lunch, do not stay in the office , go out. Nevertheless, each has its own characteristics, look for their places and sources of inspiration, calm =)

The overall result . I mention a well-known advice - to develop and continue to study, read fiction, watch movies and listen to speech in English. Finally, I’ll leave a small reminder for IT translation from general recommendations.


This article did not tell about everything, there are other nuances, such as: punctuation, style, translation of headings and their design, and others. Perhaps I will write about these moments later. Thank you for reading to the end. Reader, I wish for exciting texts and no less high-quality IT translations. Take care!

All Articles