Are i18n frameworks the new todo apps?!?
Following #i18n on twitter for a few weeks now I saw a steady stream of new i18n frameworks rising. Out of curiosity I took the time to make a quick lookup:
Over 300 packages found.
There are more i18n frameworks than todo app samples out there. Why on earth everyone is basically reinventing the wheel? Are i18n frameworks the new great thing — looking at the amount of stars getting over at github I guess no.
- So where does the motivation come to write your own i18n framework and even publish that on npm?
- Why write your own — why not contribute to an existing?
- Why every UI framework needs it’s own i18n implementation — why do I have to relearn localization on every framework?
- Why call your i18n framework ‘simple-i18n’, ‘easy-i18n’, ‘yetanother-i18n’ or ‘wrappedAnotherI18nFramework-i18n’?
I see some semi-valid reasons:
- a) Some (UI) framework raised and needed a solution for i18n:
Lets have a look for eg. at React which ended with: react-intl, react-i18next, react-i18n-wrapper, react-lingo, i18n-react, etc… WHY? - b) Some new functions where added to the browser, the raise of intl:
react-intl, intl-i18n, ember-intl, intl-messageformat, ng2-intl, etc… - c) Preference of format: messageformat vs. json vs. gettext:
just for messageformat and React that ends in: formatjs, messageformat, format-message, intl-format, etc…
So the incomplete list ends with (in alphabetical order):
https://github.com/accetone/mutant-ng-translate
https://github.com/act2/i18n-simple
https://github.com/acyortjs/acyort-i18n
https://github.com/agilebits/t-i18n
https://github.com/airbnb/polyglot.js
https://github.com/ajoslin/nanotranslate
https://github.com/akoenig/express-lingua
https://github.com/alexanderwallin/node-gettext
https://github.com/alexdrel/i18n-react
https://github.com/AlexJozwicki/react-intl-es6
https://github.com/alibaba/react-intl-universal
https://github.com/AlternativaPlatform/react-redux-localization
https://github.com/amily4555/ngx-i18n
https://github.com/any-code/riot-i18n
https://github.com/APSL/redux-i18n
https://github.com/arendtio/simple-intl
https://github.com/artisavotins/react-redux-i18n
https://github.com/aspectron/iris-i18n
https://github.com/atmajs/i18n
https://github.com/auchenberg/express-gettext
https://github.com/aumerhadi/basic-i18n
https://github.com/Automattic/i18n-calypso
https://github.com/automattic/xgettext-js
https://github.com/Bablic/bablic-node
https://github.com/Bacra/node-i18nc-core
https://github.com/basarevych/arpen-i18n
https://github.com/beamworks/react-lingo
https://github.com/benbria/react-i18n-wrapper
https://github.com/beyo/i18n
https://github.com/bholloway/react-i18n-interpolation
https://github.com/bigeasy/synonymous
https://github.com/bitjson/s18n
https://github.com/blacktangent/react-i18n
https://github.com/Bloomca/js-translate
https://github.com/bolasblack/hubot-i18n
https://github.com/bullhorn/chomsky
https://github.com/buntarb/zz.i18n
https://github.com/burawi/express-polygot
https://github.com/burawi/tns-i18n
https://github.com/c-3po-org/c-3po
https://github.com/cangosta/l10n.js
https://github.com/ccqgithub/i18n-s
https://github.com/CherryProjects/translate-maker
https://github.com/Chialab/i18n-js
https://github.com/chrisenytc/livi18n-parser
https://github.com/cloakjs/cloak.i18n
https://github.com/CodeCorico/allons-y-i18n
https://github.com/coderifous/jquery-localize
https://github.com/CommanderXL/di18n-translate
https://github.com/congnt24/node_mutilanguage
https://github.com/covisint/cui-i18n
https://github.com/creativelive/rind-i18n
https://github.com/Creeplays/ez-i18n
https://github.com/Cropster/ember-l10n
https://github.com/cutsin/template-string-i18n
https://github.com/danielgindi/js-i18n
https://github.com/dasilvacontin/mustache-i18n
https://github.com/dbtek/ipret
https://github.com/DDKnoll/i18n-browser
https://github.com/DeedMob/react-local-translations
https://github.com/deepstreamIO/babelbox
https://github.com/demohi/egg-i18n
https://github.com/deNULL/T.js
https://github.com/derzunov/translator
https://github.com/devonanderson/locality
https://github.com/dkfbasel/vuex-i18n
https://github.com/dojo/i18n
https://github.com/doot0/transgator
https://github.com/doup/metalsmith-i18n
https://github.com/download/preact-i18nline
https://github.com/draggable/mi18n
https://github.com/drd/jsxlate
https://github.com/dt-fe/intl-format
https://github.com/ekaitz-zarraga/i18n_yaml
https://github.com/ekawatani/i18npack
https://github.com/Elzair/carpathia.js
https://github.com/emartech/angular-translate
https://github.com/ember-intl/ember-intl
https://github.com/emdc/bitte
https://github.com/ErrorPro/react-translator
https://github.com/eslam-mahmoud/i18n-nodejs
https://github.com/ewancoder/angular-localization
https://github.com/expalmer/i18n-tiny
https://github.com/eyolas/ng2-intl
https://github.com/ezakto/react-intlstrings
https://github.com/fabi1cazenave/webL10n
https://github.com/fiverr/i18n.js
https://github.com/FlamingoJS/flamingojs-i18n
https://github.com/flozz/stone.js
https://github.com/fnando/i18n-js
https://github.com/foreleven/co-i18n
https://github.com/format-message/format-message
https://github.com/fraczak/re-write-js
https://github.com/frontojs/localize
https://github.com/frostney/react-intl-rawformat
https://github.com/fs-webdev/strong
https://github.com/ftdebugger/agrest
https://github.com/GabrielGil/angular-chrome-i18n
https://github.com/Gandi/react-translate
https://github.com/Gerhardk/i18n-that-works
https://github.com/ggozad/underi18n
https://github.com/gianlucatursi/angular-translator
https://github.com/gjuchault/internationalizationjs
https://github.com/globalizejs/globalize
https://github.com/globalizejs/react-globalize
https://github.com/gomoob/i18n
https://github.com/grvcoelho/babelfish
https://github.com/haris44/Simple-i18n
https://github.com/heineiuo/react-web
https://github.com/HerrHase/node-simple-i18n
https://github.com/hexojs/hexo-i18n
https://github.com/hiddentao/i21n
https://github.com/i18next/i18next
https://github.com/IBM/node-i18n-utilities
https://github.com/iknow/mnoga
https://github.com/iLib-js/iLib
https://github.com/jamesarosen/ember-i18n
https://github.com/jamesknelson/derby-i18n
https://github.com/jamesreggio/react-native-l20n
https://github.com/jamestierney/redux-lang
https://github.com/janjarfalk/get-i18n
https://github.com/jenseng/i18nliner-js
https://github.com/jeresig/i18n-node-2
https://github.com/jlguenego/jlg-i18n
https://github.com/jnordberg/wintersmith-i18n
https://github.com/Jocs/jo-i18n
https://github.com/joda-project/joda-i18n
https://github.com/jquagliatini/Gnal.js
https://github.com/JSxMachina/react-i18nify
https://github.com/juliusgromyko/mio-i18n
https://github.com/kazupon/vue-i18n
https://github.com/keepitreal/jquery-i18n
https://github.com/keithamus/R.js
https://github.com/kersten/translate.me
https://github.com/KillerCodeMonkey/ng-easy-translate
https://github.com/koa-modules/i18n
https://github.com/koalazak/i18n-express
https://github.com/kolonist/node-i18n-x
https://github.com/Kubide/i18n-xlocale-header
https://github.com/kvdmolen/vue-lang
https://github.com/labithiotis/localez
https://github.com/larafale/node-i18n
https://github.com/lasso-js/lasso-i18n
https://github.com/Leeds-eBooks/roots-i18n
https://github.com/lennym/i18n-future
https://github.com/leungwensen/zero-locale
https://github.com/lexich/react-i18n-universal
https://github.com/lifelynl/lifely-react-i18n
https://github.com/lingui/js-lingui
https://github.com/listenrightmeow/restify-i18n
https://github.com/logie17/swig-i18n
https://github.com/lttb/module-i18n
https://github.com/luiz-simples/vanilla-i18n
https://github.com/marco-a/react-x18n
https://github.com/martianyi/webi18n
https://github.com/martinheidegger/i18n-core
https://github.com/mashpie/i18n-node
https://github.com/MatteoGabriele/vue-i18n-manager
https://github.com/MattyRad/vue-i18n
https://github.com/maxhoffmann/translations
https://github.com/medikoo/i18n2
https://github.com/megahertz/easy-translate
https://github.com/merajsahebdar/intl-i18n
https://github.com/Mercateo/ws-intl
https://github.com/milesbarr/express-translation
https://github.com/mocoolka/mocoolka-i18n
https://github.com/mohjs/moh-i18n
https://github.com/mouafa/malal
https://github.com/mozilla/i18n-abide
https://github.com/MT-Libraries/i18n-node-o
https://github.com/mWater/ez-localize
https://github.com/NascHQ/reactive-i18n
https://github.com/nathanfaucett/js-i18n
https://github.com/nayaabkhan/react-polyglot
https://github.com/neetjn/v-localize
https://github.com/nemophrost/y18n-browser
https://github.com/neocotic/int17
https://github.com/ngx-translate/core
https://github.com/nicklayb/react-easy-i18n
https://github.com/nodeca/babelfish
https://github.com/Nordgedanken/counterpart
https://github.com/noveogroup-amorgunov/localizify
https://github.com/Offirmo/i18n
https://github.com/oftn-oswg/oftn-l10n
https://github.com/ololoepepe/cute-localize
https://github.com/onatolich/mova
https://github.com/OneWayTech/i18n-static
https://github.com/opuscapita/i18n
https://github.com/origin1tech/lokales
https://github.com/owl1n/vue-translations
https://github.com/pesho/node-mini18n
https://github.com/pillarsjs/textualization
https://github.com/pretur/pretur
https://github.com/psirenny/derby-lang
https://github.com/pzavolinsky/baked-i18n
https://github.com/pzavolinsky/react-ghost-i18n
https://github.com/Qonfucius/nuxt-i18n
https://github.com/queicherius/react-globe
https://github.com/raphaelfjesus/i18n-js
https://github.com/ratson/react-intl-redux
https://github.com/raulhuelamo/keystone-i18n
https://github.com/rborn/nativescript-i18n
https://github.com/redbugz/express-intl
https://github.com/RestUI/react-i18n-polyglot
https://github.com/rico345100/simple-locale
https://github.com/robisim74/angular-l10n
https://github.com/roddeh/i18njs
https://github.com/rottmann/fluxxor-translation
https://github.com/RSamaium/Languages
https://github.com/rtymchyk/react-translations
https://github.com/rumkin/i18now
https://github.com/ryandrewjohnson/react-localize-redux
https://github.com/s-i18n/s-i18n-react
https://github.com/SaidTayebi/i18n-vuex
https://github.com/sailxjx/i18n-middleware
https://github.com/SamyPesse/i18n-t
https://github.com/schiehll/micro-i18n
https://github.com/scola84/node-i18n
https://github.com/secoya/hablar.js
https://github.com/SergeRNR/i18n-node
https://github.com/ShakingMap/simple-i18n
https://github.com/shatee/simple-i18n-text
https://github.com/shibukawa/i18n4v
https://github.com/signavio/i18n
https://github.com/skolmer/i18n-tag-schema
https://github.com/soldag/j29n
https://github.com/SoluzioniFutura/SF-i18n
https://github.com/ssbc/patchwork-classic-translations
https://github.com/StefanYohansson/sz-i18n
https://github.com/StephanHoyer/translate.js
https://github.com/strikingly/react-i18n
https://github.com/SuperPaintman/zen-i18n
https://github.com/synacor/preact-i18n
https://github.com/t2ym/i18n-behavior
https://github.com/tableflip/i18nify
https://github.com/tabone/i18n
https://github.com/taggon/react-native-intl
https://github.com/talyssonoc/consolid8ion
https://github.com/talyssonoc/i18node
https://github.com/tankenstein/retranslate
https://github.com/teambition/tb-i18n
https://github.com/tflori/angular-translator
https://github.com/thereactivestack-legacy/meteor-intl
https://github.com/thesadboy/nsi18n
https://github.com/Tiqa/redux-polyglot
https://github.com/tokyoincode/vuers
https://github.com/tomk79/node-langbank
https://github.com/TrigenSoftware/Localer
https://github.com/TriOxygen/oxygen-i18n
https://github.com/tsjing/react-native-intl
https://github.com/tsuz/node-i18n
https://github.com/twicapp/i18n
https://github.com/ubaltaci/hapi-basic-i18n
https://github.com/uber/express-translate
https://github.com/UKHomeOffice/i18n-lookup
https://github.com/Valetudox/angular2-translate
https://github.com/VestaRayanAfzar/vesta-i18n
https://github.com/vuedev-com/vue-localize
https://github.com/watilde/i18npm
https://github.com/winterstein/i18njs
https://github.com/Wizcorp/gettextlight.js
https://github.com/xiaobaicaistring/i18n-static
https://github.com/xpepermint/i18n-node-l
https://github.com/xpepermint/i18n-node-list
https://github.com/xpepermint/translatedjs
https://github.com/xpepermint/vue-translated
https://github.com/yahoo/intl-messageformat
https://github.com/yahoo/react-intl
https://github.com/yanickrochon/universal-i18n
https://github.com/yargs/y18n
https://github.com/Yeti-or/bem-i18n
https://github.com/yinfxs/ibird
https://github.com/yoannmoinet/i18njs
https://github.com/yohanboniface/Leaflet.i18n
https://github.com/yoshuawuyts/newspeak
https://github.com/yukkurisinai/g3tt3xt
https://github.com/zefirka/yai
https://github.com/zerious/aloha
https://github.com/Zombispormedio/moonrock
https://github.com/zoover/react-fluxible-i18n
https://github.com/zswang/h5i18n
https://github.com/zweifisch/internationalization
https://www.npmjs.com/package/@dlghq/react-l10n
https://www.npmjs.com/package/@domoinc/i18n
https://www.npmjs.com/package/a-i18n
https://www.npmjs.com/package/angular-i18n
https://www.npmjs.com/package/angular-localize
https://www.npmjs.com/package/ex-react-native-i18n
https://www.npmjs.com/package/factorial-i18n
https://www.npmjs.com/package/gettext.js
https://www.npmjs.com/package/hadron-i18n
https://www.npmjs.com/package/hapi18n
https://www.npmjs.com/package/i18n-harmony
https://www.npmjs.com/package/i18n-min
https://www.npmjs.com/package/i18n-node
https://www.npmjs.com/package/i18n-text
https://www.npmjs.com/package/jed
https://www.npmjs.com/package/jimi-i18n
https://www.npmjs.com/package/jus-i18n
https://www.npmjs.com/package/kantan-i18n
https://www.npmjs.com/package/locales
https://www.npmjs.com/package/messageformat-i18n
https://www.npmjs.com/package/mrpi18n
https://www.npmjs.com/package/nativescript-i18n-tns2
https://www.npmjs.com/package/nd-i18n
https://www.npmjs.com/package/ndla-i18n
https://www.npmjs.com/package/polyglot
https://www.npmjs.com/package/react-i18n-gettext
https://www.npmjs.com/package/react-i18n-q
https://www.npmjs.com/package/react-i18nliner
https://www.npmjs.com/package/react-native-i18n
https://www.npmjs.com/package/react-translate
https://www.npmjs.com/package/react-translator
https://www.npmjs.com/package/think_i18n
https://www.npmjs.com/package/translatron
https://www.npmjs.com/package/tranzlate
https://www.npmjs.com/package/trnslt
https://www.npmjs.com/package/wc-i18n
https://www.npmjs.com/package/xecio-i18n
https://www.npmjs.com/package/zero-to-one-i18n
…
Would be awesome if some creators of those i18n frameworks would share some insights on the motivation to add a new framework to the endless list.