“Internationalization (i18n) is the process of designing a software application so that it can potentially be adapted to various languages and regions without engineering changes.”
“Localization (i10n) is the process of adapting internationalized software for a specific region or language by adding locale-specific components and translating text.”
Today
there is some stuff in the core...
Locale-specific data
Date and number formats, names of days, months etc.
<ng-pluralize count="personCount"
when="{'0': 'Nobody is viewing.',
'one': '1 person is viewing.',
'other': '{} people are viewing.'}">
</ng-pluralize>
Today
the community needs to work out several pieces
mainly translations...
"Run-time" translations
with angular-translate or similar
<h1>{{ 'TITLE' | translate }}</h1>
<h1 translate="TITLE"></h1>
<h1>{{:: 'TITLE' | translate }}</h1>
"Build-time" translations
Tomorrow
Let's imagine a better World together!
There are few problems to solve
Build-time solutions are cumbersome to setup and operate
Run-time solutions suffer from some perf-problems
It's a lot of work!
I18n add tons of work
especially if done as the afterthought
<h1>Some title</h1>
<h1>{{ 'TITLE' | translate }}</h1>
Extracting and naming messages to translate
Modifying templates
Sending things over to translation
Converting translated messages to the app's format
There is ongoing work
in 1.4/2.0 time-frame
Let's be (very) lazy!
<h1>{{ 'TITLE' | translate }}</h1>
<h1 i18n>Some tilte</h1>
<h1>Some tilte</h1>
Benefits
<h1 i18n>Some tilte</h1>
Easy to introduce translations later
No thinking about message names!
Meaningful previews
More context for translators
Let's be nice to translators
<h1 i18n="This is document's title">
Some title
</h1>