Avatar photo

Blog by

Manvel Saroyan

Internationalization Main Points

| i18n, l10n

Around 1.5 year ago, while developing CMintS in order to have a reference handbook I've started collecting information about internationalization. After receiving an invitation to give a talk during DevDays Vilnius 2018, putting all that information together was the only thing I had to do in order to share them with the first audience.

Intention of current post is to share the presentation and slides with the world. On the moment of writing current post the presentation slides are only available in English, Lithuanian, Armenian and German. You can find slides below, open in a new window, or better just jump into presentation recording section in order to also have a voice assistance for them:

Presentation recording

After making slides ready and presenting them to the multiple audiences in different countries, unfortunately there were no accessible enough video to share the talk with the world. As a result I have decided to just record the talk on my own and upload them to the YouTube, with the hope that the slides and information might be useful for others as well. You can find overview of each video and recordings below.

Part 1 (video)

Wrongly localized dates, numbers and alphabetical order can lead into miscommunication, that's something you might want to avoid when targeting a certain markets. Making things accessible and serving relevant content to the users is also quite important for the user retention, in the current video I do cover usage of the attributes that are quite important for the project internationalization and some techniques for serving users more relevant content based on their language preferences setup in the browser. Creating layouts for the multi-language project might become surprisingly non-trivial task because of the way different languages work, for example the direction of the language can require adaptation of the layout to work both for left to right and right to left languages. Another challenge for layouting can be a design that only take into consideration fixed measures, while some words can be multiple times longer in one language than in another, taking that into account when designing a layout can save one from a lot of surprises after importing new translations into the project. More languages support means bigger font files, splitting font files into smaller chunks is quite important for keeping the project light and page font rendering process faster. Translating SEO and social media marketing related meta tags will help your project with the growth, provide better search results and accessible content to your multilingual audience.

If you would like to learn more about the topic, you are just one click away from the presentation video, which you can find below:

Part 2 (video)

In order to get started with a multi-language project, it's quite helpful to learn more about common i18n (Internationalization) project structures, translation file formats and translation strings. Also you might want to ensure that the program you are using to create multi-language website is comprehensive enough to let your translators be flexible when creating translation strings and minimize the usage of linguistic hacks that will eventually have a potential to affect the quality of the text, for example providing simple flexibility of switching link or markup order in the text can make your translators more happy and translation quality higher. You might also want to keep some words (ex.: Brand names) untranslated ensuring that your solution provide ability to communicate the syntax to the translators in a less error prone way. Nowadays it's quite popular to use static site generators, but unfortunately very few of them do consider important internationalization practices, as a result the most popular way of dealing with multi-language websites is by creating a separate content/page file for each separate language, which might be fine for the projects like wikipedia, where the content is different in each different language, but in order to have a consistent translation that solution is hardly scalable, that's why development of the CMintS was started instead of going with any of the popular solutions, even though there are so many Static Site Generators nowdays.

If you would like to learn more about the topic, you are just one click away from the presentation video, which you can find below: