Software translation consists of two layers: the interface text the user sees on the screen and the documentation that explains it. The two layers live in separate files but are read together.
String keys
Each piece of text is stored under a key. The key is not translated; only its value is translated. Touching the key leads to the text disappearing in the application.
Placeholders
The positions of variables in strings are shown with special markers. These markers are preserved and their order does not change; a change of order causes the wrong value to be displayed.
Length constraints
Button and menu text sits in fixed-width areas. Turkish equivalents may be long; if abbreviation is needed, it is done without loss of meaning.
Plural forms
In expressions that depend on a number, languages have different plural rules. The two-form structure of the source language is not carried over one to one into Turkish; the correct pattern is chosen.
Keyboard shortcuts
The shortcut letters in menu names must not clash. After translation, the same letter being a shortcut in two menus leads to the menu becoming unusable.
Error messages
Error text should tell the user what to do. The technical error code is kept and its description is translated. Without the code, the support team cannot find the problem.
Terminology list
A single equivalent is set for every term used in the interface. This list is applied to the documentation too and does not change between versions.
Screenshots
The images in the documentation are taken again from the translated interface. If a screenshot in the source language is left in, the document contradicts the very interface it describes.
Version matching
Whichever software version the documentation describes, that version is stated. A document with no version information soon turns into a source of wrong information.
Formatting tags
The bold, link and code tags within the text are preserved. A tag left unclosed leads to the page breaking.
Date and number formats
In the interface, date and number formats come from the locale setting. A fixed format is not written in the translation; it is left to the formatting function.
Continuous delivery
Software translation is not a one-off. New strings are added in every release. This is why a translation memory is essential; without it every release is translated from scratch.
Context information
When a string is supplied on its own, its meaning may remain unclear. The same word may be a button in one place and a heading in another, and the two cases need different equivalents. If the file has a context note field, it is filled in; if not, a screenshot is requested. Translation without context produces text that is technically correct but wrong in use.
Character encoding
Whether Turkish letters display correctly depends on the file encoding. A file saved with the wrong encoding shows garbled characters in the interface. Before delivery the encoding of the file is checked and kept the same as that of the source file.
Text direction and alignment
The alignment of interface components may change with the language. Because Turkish is written from left to right, no extra work is needed on this point, but if the same product also has a language written from right to left, a check is made that the layout works for both.
Legal texts
The terms of use and privacy text inside the application are a different category from interface strings. These texts have legal consequences and are not translated in a free style. Even if they are in the same file as the interface translation, they are handled as a separate job item.