The principles of documentation and localization, or how to get good localization at minimal cost

Hello!



My name is Alexander Denisov. I work for Naumen and am responsible for documenting and localizing the Naumen Contact Center (NCC) software product.



In this article I will talk about the problems that we encountered when localizing NCC in English and German and how we solved these problems. Of course, today we have solved far from all of our tasks, and most likely this process is generally endless. The article considers the vision of the whole process as a whole and those principles that we try to adhere to or that we are starting to try to apply. The material will be useful to those who are just starting to design software, plan to localize it or are already facing problems, but do not yet know how to solve them.



image



Introduction



Often a company thinks about software localization when the product is ready and documentation has been written for it. And it is also often too late to do something in order to get good localization in a short time and not spend a huge amount of resources on it.



It is impossible to write in detail about all the problems and difficulties in one article, so I will talk a little about the main stages of documentation and localization and touch on several, in my opinion, the most important issues:





Based on my many years of experience in documenting and localizing NCC, I will try to answer these questions.



Features of NCC and the development process



Naumen Contact Center is a sophisticated software for organizing large corporate or outsourcing contact centers.



What is the difficulty of documenting and localizing this system:



  1. The system is not cloudy.
  2. Complex setup, many integrations with various systems.
  3. Support for multiple versions.
  4. As a result of paragraphs 1-3, we have complex implementations and updates. Each client has its own version, its own configuration and integration with various systems.
  5. The system is not massive; it is used only by big business. Therefore, the number of customers is not very large compared to small mass products.
  6. A large number of specific terms.
  7. Multi-role model. And this means that the documentation and interface should be tailored to the characteristics of each role (level of knowledge and features of tasks).
  8. System interfaces contain about 30,000 lines of text and about 3,000 pages of complex technical documentation are written.
  9. Releases are released 2-3 times a year.
  10. After each release, approximately 10% of the interface text and documentation are updated and supplemented.
  11. 3 languages: Russian (source), English and German.


Development life cycle



Let's look at the life cycle of software development and highlight only those stages that relate to documentation and localization:





image



Now let's imagine that one minor mistake was made in the interface. It automatically applies to each stage, to several versions and languages.



image



Additional errors may appear at each stage, that is, as a result, we can get a huge number of errors. Minor interface errors will most likely never be fixed; there are always more important tasks. And if you edit them, then the cost of these edits will be very high, since you will again have to go through the whole chain, all versions and languages. And the more versions and languages, the more expensive.



In this context, one cannot talk only about the quality of localization of the interface or about the quality of the translated documentation, since the result of the work of each stage is the foundation for the next stage. That is why it is very important to immediately do everything right at each stage. And that is why it is worth considering software development, documentation and localization as stages of a single inextricable process.



Organization of text in the interface



When our programmers took up the localization of the system, it was absolutely not ready for this. The text of the interface was stored in the code, and the desire of the leadership was: "do everything quickly." The programmers wrote a script that pulled out all the text from the code and threw it into the resource files, and the next day they gave the resource files to the first employee who knew English, who quickly translated everything in notepad. What came of this can be seen below.



image



The image shows a simple button, it opens some form with parameters, where these parameters can be changed. There are dozens of such buttons in the system. In Russian, there were 3 options for such a button; localization into English already contained 7 options.



In this situation, immediately there is a great desire to clean up the lines of the interface. To do this, I propose to apply the following rules:





image



Unfortunately, applying these rules to all existing 30,000 lines at once is very time consuming. Here we are at the initial stage and gradually put in order the most frequently repeated lines and develop rules for new lines. But you must admit, it would be great if all the rules were spelled out and implemented immediately!



Documentation and Localization Process



Let's take a look at the time-based documentation and localization process. If you start documenting and localizing before the feature development has finished, you will have to redo everything (maybe several times).



Same thing with translating documentation.



And if you give the documentation to users before all the edits have ended, you can count on a bunch of comments. Most likely, some of these comments will be corrected at the last stages of development, but you will have to spend extra time to process them.



image



If the processes are not coordinated, and we do not track all the changes on time, then “nothing-nothing-anywhere” will not correspond.



The documentation will not match the interface. Screenshots will not match the interface and the text of the documentation.



image



The same with localization. The text of the interface and documentation in the source language will not match the text of the interface and documentation in other languages.



image



We decided that at the moment we can afford to start each new stage only after we have finished the previous one.



image



Yes, the documentation and localization with us come out late after the release. And if we talk about localization, we have already secured the possibility of continuous localization, but we do not use this opportunity and do all the localization in one step at the end of the release. A couple of days as part of a semi-annual release is a very small stage.



While our product is not massive, we do not have an urgent need for documentation and localization to appear on the same day. We have long releases, large corporate clients, of which there are not very many in comparison with small and more massive products, and they do not immediately begin to install a new version of the product or upgrade to it. The costs of constant remodeling are noticeably reduced.



Terminology issues



At the stage of documentation and localization, we constantly faced problems with terminology:





The development process for us for some time looked like this:





image

And when trying to wedge into this process with terminology, we received such excuses:





But "later" it turned out that we can not fix everything. For example, there were situations when, due to incorrectly understood terminology, system objects were placed at the wrong hierarchy levels or were combined into incorrect groups.



Now we are checking terms and interface text in parallel with setting testing. That is, while testers write their comments, we write our own.



image



What we do during production testing:





When revealing new terms, we add them to the glossary, while:





We can say that due to the coordination of terminology and interface texts at the stage of setting approval, we began to save a lot of time on multiple corrections in the subsequent stages.



Documentation



The principles that we adhere to when documenting:





Now I’ll talk about some of the most important aspects of the documentation process.



Reuse text



In most single-source systems, variables can be used. Therefore, we developed scripts that automatically convert interface resource files to variable files. In the process of developing documentation, we do not type texts of interface elements, but insert variables into the text. Thus, in the Russian version, Russian lines are automatically pulled in, in the English version, English, in German German.



image



What are the benefits:





There are many duplicate sentences in the documentation. For example, a sentence such as - “Click on the Save button.”. In single source systems, such a proposal can be placed in a snippet. A snippet is such a small file that can be inserted into other pages of the documentation.



image



As you can see, the text of the Save button in the snippet is also substituted from the variable.



This provides the following benefits:





Screenshots and other images



In our documentation, we often use screenshots and other images that may contain text.



To take screenshots in different languages ​​on our own, under each screenshot we write the text that is used on it. This text is tagged and does not appear in the finished documentation. Before we translate documentation, we translate texts for screenshots. And during the translation of the documentation we take screenshots by technical writers without knowledge of the language.



Using screenshots, there are other difficulties. For example, how to track all changes if the interface changes one line of text, which is used in 50 places?



How then to find all screenshots of these 50 places to replace them in the documentation?



To solve this problem, we use the QVisual tool that we developed at Tinkoff. The process of working with it looks like this:



  1. During the development of documentation, under each screenshot we make a link to the stand where this screenshot is taken.
  2. At a certain point, we prepare a list of all the links.
  3. We load the received list into QVisual.
  4. QVisual runs through one version of the product and takes a set of screenshots.
  5. Next, we take the new version of the product and QVisual runs through it using the same links.
  6. QVisual then compares 2 sets of screenshots and generates a report. In the report, graphically, you can see the differences between the two versions. An example is below. You can immediately see that in the new version of the screenshot an additional field User interface language has appeared.
  7. Next, we repeat the comparison procedure (p. 1-6) for each language.
  8. We take the reports and go through the screenshots in the documentation.


image



In this way, we reduce the cost of numerous manual screenshot checks. Moreover, manually it is not always possible to identify all errors, you can simply overlook something.



True, not all windows can be opened using links and this only works for the Web interface, but it still removes some of the problems with updating screenshots.



Interface localization



Before localizing the interface, if this is not already done, you need to translate all the glossary terms.



When the glossary is translated, localization can begin. In this process, we adhere to the following principles:





I note that the context may have a higher priority for deciding on a translation than having the same, already translated line in the translation memory. Also, based on the context, certain translation rules that are specified in the style guide may apply.



There can be several ways to provide context:





Translation of documentation



The principles that we try to adhere to when translating documentation:





Organizational structure and feedback



I will say a few words about the organizational structure of the company. It is different for everyone, but imagine a case where each department has its own department.



image



Feedback from one department to the previous in this version will be difficult, the interaction between employees of different departments is difficult. The solution of all issues through the head is also a "narrow neck". Each leader has his own vision, goals and priorities. A lot of time can be spent on additional approvals.



In my opinion, one department should be responsible for all texts in all languages.



With this distribution of responsibility, each version of the product is a separate project from several stages, and the quality of the implementation of this project must be answered as a whole. It’s easier to establish feedback, quickly understand any problem, make a retrospective and find the root cause of the problem.



I will give an example.



Due to the fact that our technical writers themselves verify translations using QA, we have seen dozens, if not hundreds, of inconsistency errors.



It turned out that the translator sees the sentences that are identical in meaning, but in different ways, and makes the same translation for them. We initiated the task and the technical writer replaced all different versions of the same text within the meaning of one snippet. Now there will be no such repeated errors. Specialists will not have to waste time analyzing them, and translating into new languages ​​will be easier in the future.



image



In the general case, if the translator has questions during the translation, then for us this is a “bell” that something is wrong in the early stages and we need to do the correction task.



What quality documentation is needed



Before you try to make perfect documentation in all languages, it is worth considering what quality is needed? Additional questions will help to answer this question:





Document proofreading and user feedback



If you decide to read the documentation:





We make web documentation with features already described available for internal use before the release. Proofreading documentation in Russian is done by the entire department, and especially by analysts, since they are the ones who set the tasks for development and at this stage they understand best what should be in the documentation.



New employees are also very valuable documentation users. Beginners have a fresh look, and the goal is to deal with the system during the trial period.



The translated documentation can also be read by partners. You can conclude such agreements with them. The partner sends you all the comments, but at the same time he understands the system.



What makes users send feedback:





I note that we correct the comments only in the current version of the documentation, that is, the one that is still under development. We believe that it is better to pay as much attention to new versions as possible and make as few mistakes as possible than spend a lot of time supporting older versions.



conclusions



Each company is at its stage of development, and often it is not necessary to invest a huge number of human resources in order to achieve an acceptable result today.



First, figure out what exactly is needed at the moment and do just that, and increase costs as your needs increase.



This was a fairly general article about the processes of documentation and localization in general. In the future I will try to write about narrower topics.



Thank you if you read to the end! I wish you success in working and debugging your documentation and localization processes!



I will be glad to answer questions, discuss your thoughts and ideas!



All Articles