I18n and l10n: List of developer tutorials

Getting started with i18n (internationalization) and l10n (localization) can be quite complex, especially if you have never implemented these concepts before. Many developers find themselves asking: how do I add internationalization support to my application?

The short answer is: it depends. Nowadays, there are lots of programming languages and frameworks with their own specifics and caveats. Therefore, the i18n solution to employ will largely depend on the technology and platform you choose. To make things simpler for you, we have created this article listing useful internationalization tutorials for developers.

Just find your specific technology, open the corresponding post, and learn how to get things done! We will constantly update this post as new articles arrive on our blog.

General i18n and l10 information for developers

Backend i18n

Python and frameworks

  • A beginner’s guide to Python i18n — in this tutorial you will discover how to perform string translations in pure Python apps. You will see Gettext in action, learn about PO files, work with pluralization, and more.
  • Django i18n: A beginner’s guide — this post is aimed at beginner-level developers who would like to become familiar with Django internationalization processes. You will find out how to prepare your application, create translation files, and start using Gettext.
  • Advanced Django internationalization — in this article you will learn the more advanced concepts of Django i18n. Specifically, you will learn how to use LocaleMiddleware, add language fallbacks, perform pluralization, localize date and time, support right-to-left languages, and work with time zones.

Java and frameworks

  • Java internationalization: Learn the basics — this article summarizes the basics you need to know in order to get started with Java i18n. You will find out how to work with Locale and ResourceBundle classes, switch locale, and perform pluralization. As a bonus, the post also explains how to work with the Cloud Translation API.
  • Spring Boot internationalization: Step-by-step — this tutorial revolves around internationalizing applications built using the Spring Boot framework. It covers all the necessary topics: working with translations, managing locales, performing pluralization and localization, and so on.
  • Java LocalDate Localization — this is an in-depth post that explains how to use Java LocalDate API in its subsequent Date and Time API.

PHP and frameworks

  • Laravel localization: A step-by-step guide — in this post you will discover how to get started with PHP Laravel i18n and l10n. It covers all the major topics, including working with translation messages, localizing date, time, and currency, adding locale middleware, and more.
  • PHP localization: A complete guide — this tutorial covers four different methods of localizing pure PHP applications (built without any frameworks). The described methods include Gettext, PHP arrays, Define, and setlocale.

Ruby and frameworks

  • Rails internationalization (I18n): Step-by-step — this is a complete guide dealing with Ruby on Rails internationalization. It will help you start translating your Rails application. This post explains how to setup the Rails app, create translation files, switch locales, and perform localization.
  • Storing translations inside a database with Globalize — sometimes, you may need to place translations for your Rails app in the database, not in YAML files. This tutorial demonstrates how to achieve this by using the Globalize gem.
  • Storing Rails translations inside the database with Mobility — while Globalize is still a solid option, it is not actively maintained anymore. Therefore, a new solution called Mobility has emerged that provides even more cool features while sharing many similar concepts with Globalize. In this tutorial you will learn how to get started with Mobility, set it up and use with Rails.

Go and frameworks

Other technologies

  • Node.js i18n and Express.js localization — this is a tutorial for beginners who are starting to implement i18n in their Node applications. In this article, you will see how to translate Node.js apps with the help of the i18next framework.
  • Localization of Phoenix Applications — this piece teaches you how to get started with Phoenix i18n. Phoenix is a modern MVC framework built with Elixir. You will learn all the basics and see the explained concepts in practice.
  • ASP.NET Core Localization — you will learn how to localize and internationalize your ASP.NET application using various techniques and approaches.

Frontend i18n


  • React i18n: A step-by-step guide to React-intl — this guide explains how to introduce internationalization support into React applications by using a React-intl package. You will learn all about the major i18n-related topics, including: storing translation messages, adding a language switcher, localizing date, time, and currency, performing pluralization, etc.
  • How to internationalize a React application using i18next — in this article you will learn how to get started with internationalizing Reacts apps with the help of i18next framework.


  • Angular i18n: Performing translations with a built-in module — this tutorial is aimed at developers who would like to get started with Angular internationalization. You will discover how to introduce i18n with a built-in Angular module, work with translations in an XLIFF format, and more. This post relates to all recent Angular versions, including v11.
  • Angular localization with Transloco — this article also covers Angular i18n and l10n processes, but with the help of the Transloco solution. You will learn about all the major internationalization-related topics and see Transloco in action.


  • Vue i18n: Building a multi-lingual app — this is a must-read tutorial for all Vue developers who are getting started with internationalization. It covers not only the basics, but also dives deeper, and explains how to set up localized routes, and create a translation plugin.

Other JavaScript frameworks

Pure JavaScript

  • Localizing JavaScript apps with jQuery.i18n — in this post you will meet the jQuery.i18n library, created by the Wikimedia foundation. You will see it in action and learn how to prepare translation files, perform pluralization, work with gender, and more.
  • Libraries for translating JavaScript apps — this article provides a nice summary of the most popular i18n and l10n libraries for JavaScript. You will learn about the Globalize, jQuery.i18n, i18next, and Polyglot.js solutions.

Static content and SSG i18n

  • Translate HTML: Step-by-step guide — this piece deals with translating static HTML content using the Lokalise service. It demonstrates how to upload your HTML files to Lokalise, translate the texts, and download everything back in the proper format.
  • Implementing Gatsby I18n — Gatsby is a static site generator, and this tutorial explains how to to get started with Gatsby I18n.

Mobile i18n

Platform-independent tutorials


  • Android localization: Step-by-step — if you would like to master the basics of Android i18n, this post is for you. It explains how to begin the internationalization process and prepare your app, programmatically switch locales, perform pluralization, and introduce localization support.
  • Kotlin I18n: Translating Android applications — this tutorial explains how to get started with translating Android applications written in Kotlin language.


  • iOS localization: Step-by-step Guide — this is a general overview of internationalizing iOS applications. You will also find out how to upload & download your translation files to and from Lokalise.

Multi-platform I18n

Related posts

Sign up to our newsletter

Get the latest articles on all things data delivered straight to your inbox.

Read also
Localization made easy. Why wait?
The preferred localization tool of 2000+ companies