Internationalization (i18n) open source libraries and APIs

Localizing Android Apps

Truly great applications use the right text, dates, numbers, currencies, and graphics for users and their locations. Android has great i18n support.

Phone number library

Google's library powers Android and more. Optimized for smart phones, Android's framework has included the Java version since 4.0.

Address Input Widget for Android

Support for validating user-entered addresses.

International Components for Unicode (ICU)

These mature, open source, public C/C++ and Java libraries are widely used, supporting Unicode and globalization.

Chrome Web Store App i18n

Tips and steps to follow when you internationalize and localize an app for the Chrome Web Store.

Resources for multi-regional and multilingual websites

Webmaster resources help you manage multiple regional and language versions of your website.

Google Fonts

With robust multi-lingual web font support, Google Fonts are quick and easy for anyone to use, including professional web designers and developers.

Noto font

Fonts for all Unicode characters across all languages.


Can't find a good font for your pages? Create your own with sfntly, a Java and C++ library for SFNT-based Fonts.


HarfBuzz is a “text-shaping engine”. Its job is to select and position glyphs from a font to represent a run of text.

Google Web Toolkit (GWT)

GWT's toolkit for complex browser-based applications includes flexible i18n tools.

ECMAScript i18n API

The ECMAScript Internationalization API provides key language-aware functionality for Javascript.

Closure bidirectional text tools

BiDi text handling is essential when you localize your application in right-to-left (RTL) languages including Arabic, Hebrew, Persian, and Urdu.

CSS Mirroring for RTL layouts

CSSJanus flips Cascading Style Sheets (CSS) between left-to-right and right-to-left orientations.

BiDi Checker

BidiChecker automates webpage testing, highlighting RTL-language errors.

Pseudolocalization tool

Generate a pseudotranslation of an application to quickly find potential localization problems.

Handling dates, times, currencies, and more

Common Data Local Repository (CLDR) provides the most extensive available set of key building blocks for the world's languages.


Python applications can use ICU's i18n functionality with the PyICU extension.