Translation Markup Language makes it easy to internationalize and localize your mobile applications written in Objective C or Swift. Once you install TMLKit SDK, your app will be immediately connected to over 50,000 professional translators around the world.
5. Every i18n framework has its own “right way”
of doing things, with a different syntax and file
format.
Developers often hack together their own
solutions to try and simplify the process.
No universality
in the current
standards
6. Android .xml
Apple .strings
Apple .plist
Gettext .po
Gettext .pot
Java .properties
Java .xml
Microsoft .resx
Microsoft .resw
Microsoft .resjson
Microsoft .aspx
FILE FORMATS
Lots of translation
Microsoft .rc
PHP .ini
PHP .conf
Laravel .php
Blackberry .rrc
NSIS .insh
QT Linguist .ts
Latex .latex
Docbook .dbk
TBX .tbx
TMX .tmx
XLIFF .xliff
YouTube .sbv
Rails YAML .yaml
Subtitles .srt
MicroDVD .sub
Subviewer .sub
Mozilla Web L10N
Text .txt
CSV Spreadsheet
Excel Spreadsheet
Word Document
7. Extract content into
files (genstrings)
Upload files to a TMS
or an LSP
Wait... Download translated
files
Put translations back
in your app
Repeat when new content is added or changed
BOTTLENECK
Resource file management is a
8. How can we make it
BETTER FOR
EVERYONE?
TranslationExchange.com
9. An Ideal Solution
● Consistent
Provide tools that offer a clear and
consistent way for internationalizing
content across all frameworks
● Adaptable
Tools should be extensible and adaptable
and must be able to solve any arising
internationalization and localization
problem
● Contextual
Allow translators to translate in context
from within the application
● Agile
Keep the development cycle agile -
localization must not add significant
overhead for developers - it must be done
in parallel to the development process
TranslationExchange.com
10. An integrated and automated continuous localization
あ
A
Translation Management
Service
Global CDN
Local Cache
iOS Application
with TMLKit
A Better Way
TranslationExchange.com
11. Translation Caching
No impact on app performance, translations
are loaded from local cache.
Inline Translation Tools
Translation can be done within app context
Access Professional Translators
Connect your application to thousands of
professional translators around the world
Open Source
Source code is available on github
Multiple Platforms
Support for iOS, Rails, Node, PHP, Laravel,
Python, Django, J2EE, Android and more
Universal Translation Memory
Translations are shared across all
applications
Core Benefits of TML SDK
TranslationExchange.com
15. Integration Options
● Fully automatic
Just activate the SDK, and we do the rest
● Based on NSLocalizedString macros
Activate the SDK, include our header and we take over
● Using TML macros
Enhance the translations with TML macros
TranslationExchange.com
16. Internationalization
// wrap strings with the tr method
NSLocalizedString(@"Hello World", nil)
// use interpolation
TMLLocalizedString(@"Hello {user}", @{@"user": @"Alex"})
// and many other features of TML syntax...
TMLLocalizedAttributedString(@"Hello [bold: World]")
TranslationExchange.com
17. Translation Markup Language (TML)
● Simple, yet powerful, syntax for marking up application strings.
● Supports language context rules and language cases, making
translations accurate for any language.
● Backwards compatible to standard I18n
TranslationExchange.com
19. TML for Objective C
Basics
Hello World
Identical syntax is available in Rails, PHP, Java, Python, Javascript, Node.JS, Ember, Angular, etc...
TMLLocalizedString(@”Hello World”)
24. TMLLocalizedAttributedString(
'[bold: {user}] completed [bold: {count || mile}] on [bold: {user | his, her} last run].',
@{
@'user’: userObject,
@'count’: milesCount
}
)
More Complex Example
Michael completed 3 miles on his last run.
29. Distribution Options
Packaged Bundle
Add a release bundle to your app and it will
be unpacked and configured the first time
application is run.
Dynamic Bundle
Release translations to the CDN and they
will be synced down to your application.
TranslationExchange.com
30. How is Translation Done?
Machine Translation
provided by Google,
Microsoft and Yandex.
Translations are ranked to
get the best result.
Crowdsourced Translation
Some developers may
choose to use their own
users to translate their
content, similar to how
Facebook and Twitter
translated their sites.
Professional Translation
Order are received and
processed by our partners
and are made available in our
system within hours.
TranslationExchange.com
32. ● Translations should be reusable across
multiple projects
● Each translation key can have many
translation options for a language based
on context
● Translation keys and translations are
unique and are only stored once in the
entire system
What is UTM?
33. Hello World Hola Mundo
안녕하세요
Привет Мир
Hallo Welt עולם שלום
你好,世界
UTM Graph