Language Localization at KINTO Technologies (Part 1)
As someone who grew up living between two cultures -Spain and Japan-, I have always been passionate about cross-cultural communication. My name is Maya Sakakibara and as the lead of language localization at KINTO Technologies, the topic I would like to introduce to you in two parts is precisely that: localization. The objective of these two articles is to share with you the importance of it through my studies and current experience, hopefully making you a little bit more interested on this topic in the process.
In this first part, I will go through key concepts and how we tackle language localization in our company, and on the second part, I will delve deeper into what we have been up to so far at KINTO Technologies.
What are translation, localization, and internationalization?
You will find many definitions of translation , but one of many that resonates with me is the following from Hatim and Mason (1997) who considers translation as "an act of communication which attempts to relay, across cultural and linguistic boundaries, another act of communication."
Localization (l10n) on the other hand, is adapting the way messages, stories, and ideas feel natural to the intended audience's local language and culture. For a fun example of word-unrelated localization, you can check how certain smartphone apps will shift their date format, layouts and icons when you change your default language from English to Arabic, for example. I will not go into specifics on the perils of Right-To-Left adaptation, but for a more in-depth read, please be sure to visit my colleague Mary’s article here.
Moving forward with our definitions; to be able to localize in the context of software development, we first need to prepare the code or make all the product and development decisions needed to accept variations so that terms can be easily adapted and localized later to any language. This process is what we call internationalization (i18n). A very easy-to-understand example of internationalization is how the assembly instructions of a famous European furniture company are all visually explained without a single word in pictograms, trying to be as universally understandable as possible.
It is worth noting that even though my task is to take care of the wording aspect, localization in the broader sense of the term also encompasses the design aspect. Due to this, what we do internally is to work closely with UI/UX writers, designers, and engineers to bring the best experience possible to our target audiences.
Localization in KINTO
Here at KINTO, we are trying daily to apply kaizen (improvement) principles and think of better ways to maintain a collaborative environment. It is important for us to integrate the translations into the overall CI/CD (continuous integration and continuous delivery) process.
In slightly more detail, I would like to explain a bit about how language localization is done for our products by first applying i18n.
Take the below English screen of our app:
The premise is to have a base language implemented and deployed; in our case it's English. Up next is to determine how to manage the data. The data type of software translations, such as the ones for an app or webpage is often stored as a key-value pair. For the sentences used in this screen (the logo and the copy on top are excluded from our localization scope), the data of the English terms will look as below in our English "localizable.strings" file for iOS:
To localize we will create separate files for each display language, away from the code. As of October 2022, we have Japanese, Thai, and Arabic files for the app, and those files will all contain the same translation keys, but with the terms in the corresponding languages. For instance, our Arabic "localizable.strings" file has its homologous data stored as follows:
<string name="agreement_description">باستخدام تطبيقنا، فإنك توافق على الشروط والأحكام و سياسة الخصوصية الخاصة بنا.</string> <string name="agreement_accept_all">قبول الكل</string>
As you can see, the keys are the same if you compare them both. By specifying keys as the first parameter, this method allows the app to pull the corresponding value from the localization file and display the localized value according to the language that the user specified. For our example, when switching the language setting from English to Arabic, our previous screen will be shown as such:
That is in essence the mechanism of how we proceed with language localization, regardless of file type and platform.
If you would like to keep reading about what the localization team has been up to, please check out my next article!
See you in the next one here!
References and further recommended readings
Hatim, B., & Mason, I. (1997), The Translator as Communicator. London, Routledge
Khokhar, Sahil (2021), Connecting the dots '96 Web Accessibility through Internationalization and Localization <Connecting the dots '96 Web Accessibility through Internationalization and Localization>
Lokalise Academy (2022), Crash course in localization <Crash course in localization>
Bodrov-Krukowski, Ilya (2020), Translation keys: naming conventions and organizing. <Translation keys: naming conventions and organizing - Lokalise Blog> ↩︎