Introduction
I have been working as a tester of mobile games for six months now and wanted to talk a little about my favorite testing - Localization Testing. In this article I will share my experience of testing localization, mainly there will be reliance on the localization of the text.
A little about myself and my work: I adhere to the principle, “Testers are people who prevent programmers from living peacefully. If it weren’t for programmers, we would have been unemployed and vice versa.
What is localization?
Localization is the process of adapting the software interface to different regions, cultures, languages. Let's move from general to particular: Localization in games is its translation into different languages ​​and adaptation to culture in everything that the user sees, namely:
- Text
- Textures
- Sound
- Game events and plot
The first three points are understandable and logical, but I would like to clarify the item “Game Events and Story” with a simple example: imagine a distant galaxy on which bananas are considered something illegal. In this galaxy, it’s definitely not worth running a game branch in which there are bananas ... That is why in the localization of this galaxy, bananas became green, salty and, in principle, cucumbers.
How to test text in localization (which I usually do)
The first thing I want to say is that I do not pretend to be unique, but at the time when I embarked on the path of testing the information I did not really find it, as well as ready-made test cases that you can basically pull on your project and use it.
Availability of translationIn principle, it is logical that when a user enters the game everything should be in his native language, with the exception of some OK buttons. I will not particularly dwell on this, you just need to understand that
there is no translation by at least one point - bad .
The combination of interface and translationWhen I go to a foreign site without a built-in translation, I often turn to third-party translators, such as "Google translate" and of course many sites simply break down and come from my native Russian language. Reading such sites becomes painful for the eyes and everything is sad. So that's what, let's move on to our realities - mobile games. In mobile phones exactly the same misfortune is the long Russian text that breaks the whole beauty of the interface corny leaving the fields leaving the edges of the window. A more perverted problem is floating text in animations and tooltips and other hard-to-understand interface elements. It is important to
look at all the points where the text is and can be . I will especially focus on “maybe” as this is an even more interesting place to search for bugs.
For those who are interested in why this place is more interestingDepending on the technologies and concepts used in the development, there can be many options for multilocalization in the application, I will build on the system that operates on the project with which I work. The project has a special utility that stores keys and options for translating this key into different languages. On the client application there is a picture with symbols, which probably everyone has already seen, and finally “Ate soft French rolls”. Accordingly, depending on the selected language, the necessary translations are pulled.
This is what this whole story is about: at least two key points for testing are uploading translations and uploading atlases with letters
Why is there, but not there ?! Interesting places in practiceIt happens that during the translation part of the text disappears, and the translators are not to blame for this. Where to begin? Everything is very simple, if you or your office is rich, you have extra devices or a virtual machine, then you can open the game in the native localization (or on the one that is definitely correct, the native localization is not always the original, alas), then it’s good to study the interface or a place that raises questions, compare the tested place in the localization.
Where to dig if, after all, something is wrong?
There is an option that there is simply no translation for this part of the text in the system. If you have any special tool or device for uploading translations, then reviewing this will not be difficult. If he’s not, I’ll tell you somewhere below.
The story goes for applications that use custom fonts. (We have these pictures with letters called Atlases, I do not know what they are called in other places, you can tell in the comments it will be interesting to read) .
- I made sure that there is a translation, but there is no text anyway. My first question is, did the atlas load? The easiest case is when, we see empty squares or small squares with crosses, then it’s for sure that there are no such symbols and that’s the point. But maybe it’s just not loading the atlas without any external signs (If there is a translation in similar places, then that's definitely not it).
- My atlas is loaded, I see this in the debugger, either by logs or something else. Your atlas can be broken, I'm sorry. But do not despair, you can replace the font with the one downloaded from the Internet, and then remove it and if the text appears then you just don’t have certain characters or something else (letters went)
- The translation is very tricky and it has a wildcard. It happens that the same translations are used somewhere, for example, all objects have translations “production time”, “weight” and some other calculated parameter, it’s easy to guess that for ease it’s better to take a template and simply substitute numbers in it . If you calculated such a translation element, then most likely the necessary data will not come somewhere
- I don’t have any calculated fields and in general there is only the first or second half of the text and nothing works for me. What do I do not understand anything? We will study the syntax of this translation, perhaps it has all sorts of interesting brackets, quotation marks, and special characters. Thus, perhaps this text is processed simply as part of the program
My complaints about languages
For testing, many languages ​​- it's just hell in many ways, from text to large (large characters, letter from right to left) to semantics.
Let's start with the simplest and gradually go through all the languages ​​I worked with:
- German. Here you should pay attention to the umlauts (letters with dots like the letter e), the letter “Escet”, which looks like a betta - ß, if it doesn’t work, it can be replaced by “ss” and this will not be a big mistake (probably the Germans scolded for it)
- Russian language. Do not infringe on the letter (it is better to sacrifice Kommersant if you save space). The problem of the Russian language is oooooooo long words, but the benefit is that the Russian language is very rich and there are a lot of synonyms too
- Chinese. 40,000 Hieroglyphs. This language created a lot of problems due to its number of characters, a lot of characters in my project simply did not appear. Our programmers created a wonderful utility that ripped off all the characters from translations and therefore 40,000 atlas in the game does not exist (save memory and all that)
- Korean. Due to the syntactic features (I think so, well, or just crooked translators), some substitutable parameters in translations as digits changed their order and were confused for a while.
- Japanese language. The same as Chinese, but there is one tremendous BUT. The Japanese language in localization for some reason very often consists of very long words, which entails a bunch of flowed layout and other consequences
- Thai language. My favorite, I don’t understand him, but very beautiful. All sorts of sticks circles of a wave and everything is so smooth, just a buzz. But alas, sticking sticks often come out of the interface and have to sacrifice size.
Useful tips and tricks when testing text
- As I said above, comparison on multiple devices. (Better still with different screen sizes, if the application is adaptive).
- Do not try to delve into what is written there.
- Use Google Transleate (not ads) to quickly find relevant text. Why do I need it? Let's imagine we found a text in which a mistake was made, some unreadable character was inserted, and here, in principle, everything is easy to take and we change the symbol and everything is fine. Yes, everything is fine, but the language is Chinese. Google translate ideally recognizes all these hieroglyphic languages ​​from photos and translates them into text in any language, which means we can find a Russian translation and just compare it.
- Use Google translate (I just like it, you can use any) to check the logic of the text. Elementary, if translated and understood, then translated correctly, inserted there, displayed completely, otherwise the cant.
- Learn the features of the language, at least on Wikipedia. Moreover, knowledge of the language is not necessary at all.
I’ll focus on Google transliteration, personally in our department for some reason no one guessed to use a translator, although many used this very function of translating text from a photo. (Probably someone is using or using during training).
Textures. Sound. Game Events
I will combine all three points into one hodgepodge, as in a mobile gamemdiv it is a little localized objects. Well kamon, these are not expensive toys from famous studios for you.
We highlight the main aspects that need to be tested in each group, we start with the
textures :
- On textures where there is text (except for international symbols and logos) text in the localization language
- Textures with text, if they are animated, or somehow edited (move, rotate, inventory), remain readable. I would like to clarify about the inversion, here I mean a pseudo 3D game where the rotation is realized by the reflection of the picture - textures with text should not be rotated
About the sound:- If there is voice acting in the game, then naturally it should be in the language of localization (You will see similar offers about the locale many more times in this article, but this is really important)
- Sound, video and animation. It's all like with movies. The sound, if possible, should converge with the speaker, or with animations, whether it is a stone that wishes good in Chinese, or a fawn talking about the sun in German.
About the plotAs I wrote earlier, in every galaxy, its obscene things are possible. What can we say about the countries that are on our planet. That is why, depending on the country in which the game will be distributed, especially if it is superconservative editing lends itself to a lot (or all) and a set of stocks and game objects and plot, and much more. But again, this is true only for countries where the localization language is not widespread. For example, if the language is English, then almost any topic can be launched in some English-speaking country - it will definitely find a response and will be perceived correctly. And if it is permissible for the British to launch the feast of "Peter and Fevronia" instead of "Valentine's Day," this will be perceived as strange as possible.
- Here you need to test absolutely all the functionality, which in one way or another is elementarily different
- Does other functionality start when changing localization
- What will happen with running functionality from another localization
And so much more. Here you have to try hard and come up with a bunch of test cases.
What do localizers have in common or what do they clog
The characterVery often in games you can find that in different translations onomatopoeic words may disappear, and this is very critical from the point of view of gameplay (the character stops revealing), especially if it is important for animals. This does not affect the gameplay and performance.
Voice actingIt is very interesting when English voice acting is used in the absence of the required voice acting. In such cases, you should pay attention that logically pieces of sound and text speak in principle about the same thing. Otherwise it will turn out ugly, not only did they score on the locale, but they slipped the wrong one.
Unfinished item or cut contentProbably the most frequent way to accelerate and fit the locale is simply to remove what does not fit. It is important to ensure that nothing important is lost, including in a completely different place.
Conclusion
I very much hope that this short article without pictures will lead you to some new approaches to testing. Thanks for reading. I will be very happy with the additions! I ask you not to swear much, this is my first article.