L20n reinvents software localization. Users should be able to benefit from the entire expressive power of a natural language. L20n keeps simple things simple, and at the same time makes complex things possible.
L20n.js is a localization framework for websites which want to offer a best-in-class translation experience for their users. L20n takes advantage of modern web technologies to offer a fast and lean localization of HTML and JavaScript.
Include the following code in the <head>
section of your HTML:
<meta name="defaultLanguage" content="en-US">
<meta name="availableLanguages" content="de, en-US, fr, pl">
<link rel="localization" href="locales/myApp.{locale}.ftl">
<script defer src="dist/bundle/web/l20n.js"></script>
L20n is targeted at modern browsers. See docs/compat for documentation on how to enable support for legacy browsers.
A straight-forward example in English:
brand-name = Firefox
about = About { brand-name }
settings = { brand-name } Settings
And the same thing in Polish:
brand-name =
*[nominative] Firefox
[genitive] Firefoksa
[dative] Firefoksowi
[accusative] Firefoksa
[instrumental] Firefoksem
[locative] Firefoksie
about = O { brand-name[locative] }
settings = Ustawienia { brand-name[genitive] }
Visit FTL by Example to learn more about the FTL syntax. If you're a tool author you may be interested in the formal EBNF grammar.
You can take advantage of HTML bindings to localize your HTML documents with L20n. See docs/html for documentation and examples.
It is also possible to use L20n programmatically, for instance in order to
localize dynamic content. The API is exposed under document.l10n
. Refer to
docs/observer and docs/localization for more details.
We'd love to hear your thoughts on L20n! Whether you're a localizer looking for a better way to express yourself in your language, or a developer trying to make your app localizable and multilingual, or a hacker looking for a project to contribute to, please do get in touch on the mailing list and the IRC channel.
- mailing list: https://lists.mozilla.org/listinfo/tools-l10n
- IRC channel: irc://irc.mozilla.org/l20n
L20n is open-source, licensed under the Apache License, Version 2.0. We encourage everyone to take a look at our code and we'll listen to your feedback.
We use Bugzilla to track our work. Visit our Tracking page for a collection of useful links and information about our release planning. You can also go straight to the Dashboard or file a new bug.
We <3 GitHub, but we prefer text/plain
patches over pull requests. Refer to
the Contributor's documentation for more information.