Coder Social home page Coder Social logo

awesome-i18n's Introduction

awesome-i18n

awesome-i18n Awesome

A curated list of i18n tools, i18n libraries, localization software, localization programs and translation management systems.

If you want to add something just modify README.md file and wait for a merge ☺️ Enjoy!

Remember to give this repo a star! 🌟

Contents

πŸ‘©β€πŸŽ“ Acronyms and keywords

🧐 Acronyms

  • i18n - internationalization
  • l10n - localization
  • xl8 - group of translation management systems
  • t9n - translation
  • g11n - globalization
  • m17n - multilingualization
  • ICU - International Components for Unicode
  • TMS - translation management system
  • GMS - globalization translation system (same thing as TMS)

πŸ”‘ Keywords

  • translation key - element in source code which is used by i18n library to replace it with translation message
  • translation - translated text or message

πŸ“¦ Libraries

JavaScript in general

  • airbnb.io/polyglot.js - tiny i18n helper library written in JavaScript, made to work both in the browser and in CommonJS environments
  • eo-locale - elegant lightweight library based on Internationalization API
  • ECMAScript Internationalization API - documentation for standard intl object from JavaScript
  • facebook/fbt - internationalization framework for JavaScript designed to be not just powerful and flexible, but also simple and intuitive
  • FormatJS - internationalize your web apps on the client & server
  • FormatJS CLI - extract messages from project with FormatJS library
  • Intl.js - implementation of the ECMAScript Internationalization API
  • i18next - internationalization framework for browser or any other JavaScript environment
  • i18n-ally - extension for VSCode, all in one about i18n
  • jquery/globalize - library for i18n that leverages the official Unicode CLDR JSON data
  • Jed - Gettext style i18n library
  • lisan.js - fast and small i18n library
  • lingui/js-lingui - readable, automated, and optimized internationalization
  • MDN i18n - internationalize your browser extension. APIs to get localized strings from locale files
  • npm i18n - lightweight simple translation module with dynamic JSON storage
  • ttag - library for translations based on ES6 template literals
  • typesafe-i18n - An opinionated, fully type-safe, lightweight localization library for TypeScript projects with no external dependencies

React & React Native

React apps and react localization is so popular so we decided to add a special section for it. Here is the list of react localization libraries:

  • next-translate - easy i18n for Next.js +10
  • react-translate - internationalization for react
  • react-native-localize - toolbox for your React Native app localization
  • react-localization - simple module to localize the React interface using the same syntax used in the ReactNativeLocalization module
  • react-intl - internationalize your web apps with react-intl library
  • react-intl (CLI) - extract messages from project with FormatJS library
  • react-intl-hooks - small and fast library that you can use to replace FormatJS components
  • react-i18nify - simple i18n translation and localization components and helpers for React
  • react-i18next - internationalization framework for React and React Native which is based on i18next
  • react-persian - set of react components for Persian localization
  • react-translated - dead simple way to add complex translations
  • react-localize-redux - localization library for handling translations
  • react-translate-component - component for React that utilizes the Counterpart module and the Interpolate component to provide multi-lingual/localized text content
  • react-littera - lightweight library for robust translations using hooks. Some of the key features are dynamic templates, missing reports, auto-locale detection and more
  • talkr - lightest i18n provider for React applications (< 1kb). Supports Typescript, 0 dependencies.

VueJS

  • vue i18n - vue i18n is internationalization plugin for Vue.js

Angular

Svelte

Quasar.dev

  • Quasar i18n - official Quasar framework document page about internationalization

Java

Jekyll

  • jekyll-multiple-languages-plugin - Jekyll Multiple Languages is an internationalization plugin for Jekyll.
  • jekyll-i18n - Jekyll i18n is a plugin that enables simplistic multi-language site designs using Jekyll. (not maintained)

Swift (iOS & macOS)

Ruby

  • Twitter/CLDR - implementation of the ICU that uses the Common Locale Data Repository to format dates, plurals
  • Ruby i18n - official internationalization API document page

Python

  • Python-i18n - internationalization package
  • deep-translator - library to translate between different languages in a simple way using multiple translators

πŸ”¦ Message and key extraction

Tools used to search translation key usage in project files. Usually they extract translation keys to some file which can be imported later to translation management system

☁️ Translation Management Systems

  • Crowdin - web-based localization service with free tier for open-source
  • GitLocalize - web-based localization platform with GitHub integration
  • Inlang - web-based open-source translation management platform
  • Memsource - web-based localization service for enterprise systems
  • Localizejs - web-based platform for enterprise systems
  • LocaleApp - web-based localization and translation with free tier
  • Locize - web-based localization management platform
  • SimpleLocalize - web-based translation management system with free tier and open-source CLI
  • Stringify - web-based localization and translation platform with free tier
  • Texterify - web-based translation and localization management system with free tier
  • Transifex - web-based platform and globalization management system
  • Traduora - web-based open-source platform for translation management
  • Weblate - web-based platform for localization
  • Zanata - web-based platform for translators, content creators and developers

πŸ–₯ Desktop apps for translation management

  • Argos Translate - open source offline translation app based on OpenNMT
  • GNU gettext - tool for adding native language support to applications
  • RTranslator - simultaneous translator app for Android based on Google's API
  • Crow Translate - lightweight desktop translator, uses Google, Yandex and Bing translate API.
  • Copy Translator - cross-platform app that automatically translate texts when copied in the clipboard
  • Electronjs i18n - cross-platform i18n manager
  • OmegaT - free translation memory application that works on all popular operating systems
  • LibreTranslate - self-hosted web application to translate texts
  • POEditor - tool for managing PO language files

πŸ“… Utility libraries

πŸ“š Blog posts, articles, guides, docs, examples

πŸ’­ Community tips & tricks

  • If you have tight layouts, my rough rule of thumb is to double the English text and make sure it fits. Then you will usually have enough space for translations.
  • Russian and German tend to have the longest translations, and the longest words. Get familiar with the shy-hyphen &shy; character. You put it in the word's html and it will only break the word/show the hyphen when necessary. Google β€œonline hyphenation tool” so you know the appropriate places to break the word.
  • You need to translate numbers with decimals and commas because they are reversed in some languages (period appears as a comma, comma as a period).
  • Same goes for percent signs. Sometimes the % shows before the number, and not after. There might be a space between the number and %. It might show as %-KAL in Hungarian.
  • Greek question marks look like a semicolon.
  • Always keep datetimes in database in UTC. Always return datatimes from backend in UTC. Adjust datetimes on UI layer using timezone information from user or web browser. Accept datetimes in backend with any timezone.

✍️ Translation agencies

✌️Add your agency

🦾 Automated translations

🍿 Videos

Internationalis(z)ing Code - Computerphile

youtube computerphile about internationalization

Link: https://www.youtube.com/watch?v=0j74jcxSunY

The Problem with Time & Timezones - Computerphile

youtube computerphile about timezones

Link: https://www.youtube.com/watch?v=-5wpm-gesOY

πŸ“’ Contribute

Feel free to add or update the content!

awesome-i18n's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.