SlideShare a Scribd company logo
Rails i18n
From the Trenches
Clemens Kofler
Hi, I’m Clemens!
   (Clemens Kofler, clemensk)
Today, I’m going to talk about ...



 • The latest developments in Ruby/Rails i18n
 • Current problems (in Rails) and potential
   future changes
i18n
Rails I18n From The Trenches
http://guides.rails.info/i18n.html
i18n basics in 2 minutes
Rails I18n From The Trenches
Do you like Gettext?
       (of course it’s fake)
_
s_
p_
      t
n_
ns_
np_
Rails I18n From The Trenches
Rails I18n From The Trenches
i18n news
Additions in i18n 0.2.0

• translation procs
• custom namespace separators
• Ruby 1.9-style string interpolation
• (symlinked translations)
Rails I18n From The Trenches
Rails I18n From The Trenches
Rails I18n From The Trenches
Rails I18n From The Trenches
Rails I18n From The Trenches
Rails I18n From The Trenches
+ a bunch of neat plugins
         (list at the end)
Additions in i18n 0.2.0

• translation procs
• custom namespace separators
• Ruby 1.9-style string interpolation
• (symlinked translations)
bleeding edge
Current edge
• Base backend + module includes
• Pluralization module
• Cache module
• Locale fallbacks module from Globalize 2
• Chain backend from Globalize 2
• Gettext support (experimental)
Rails I18n From The Trenches
Rails I18n From The Trenches
Rails I18n From The Trenches
Rails I18n From The Trenches
Rails I18n From The Trenches
Rails I18n From The Trenches
Rails I18n From The Trenches
Rails I18n From The Trenches
Current edge
• Base backend + module includes
• Pluralization module
• Cache module
• Locale fallbacks module from Globalize 2
• Chain backend from Globalize 2
• Gettext support (experimental)
Current problems
•   Tools

•   Data input

•   CLDR compliance

•   Some unfinished integration (Date/Time#to_s, labels)

•   Bad Rails implementations (AR Errors)

•   (Clean) routing i18n nearly impossible

•   (Gettext support / “enterprise-readiness”)
Tools
http://github.com/svenfuchs/i18n-tools
Rails I18n From The Trenches
Rails I18n From The Trenches
Parsing dates/times is
      really hard
(you can try out my experimental delocalize plugin)
Rails I18n From The Trenches
Rails I18n From The Trenches
Rails I18n From The Trenches
Rails I18n From The Trenches
Rails I18n From The Trenches
You can do something like this with
translate_routes but it’s basically a really
               scary hack.
i18n vs. Gettext?
War? Not really.
We are not Gettext
   (and we don’t want to be)
             ((ever))
Recommendations
The Setup
• i18n edge
• Translations from GitHub
• (Globalize 2 for model translations)
• (localized_dates for transparent date
  handling)
• (delocalize for parsing localized input)
• (translate_routes for i18n routing)
Rails I18n From The Trenches
Questions?
Some resources
•   http://rails-i18n.org

•   http://guides.rails.info/i18n.html

•   http://github.com/svenfuchs/i18n

•   http://github.com/svenfuchs/rails-i18n

•   http://github.com/svenfuchs/i18n-tools

•   http://groups.google.com/group/rails-i18n

•   Pluralization rules: http://gist.github.com/106372
clemens@railway.at
  http://www.railway.at
http://github.com/clemens
Image credits
•   http://www.sxc.hu/photo/708615

•   http://www.flickr.com/photos/ferneyes/469259974/

•   http://aceitapretzel.files.wordpress.com/2008/09/dexter-ap.jpg

•   http://www.flickr.com/photos/dunechaser/2936384313/

•   http://www.festivalcervantino.gob.mx/Ficesmas/prensa/galerias/oct/12/
    Hamletokok/images/061012_hamlet_20FGJ.jpg

•   http://www.flickr.com/photos/srgblog/1408923862/

•   http://www.flickr.com/photos/purrr/126597849/

More Related Content

KEY
UPenn on Rails intro
PDF
Introducing Elixir the easy way
PPTX
From .NET Core 3, all the rest will be legacy
PPTX
JAZOON'13 - Andres Almiray - Rocket Propelled Java
PPTX
KotlinConf - Kotlin and Spring Boot, a match made in heaven
PDF
RxSwiftを用いたアプリ開発の実践
PPTX
Why I don’t want to develop iOS apps in Objective C
PDF
Railsフロントエンドの modernizeにおける一事例 ~decaffeinateからES2015移行まで~
UPenn on Rails intro
Introducing Elixir the easy way
From .NET Core 3, all the rest will be legacy
JAZOON'13 - Andres Almiray - Rocket Propelled Java
KotlinConf - Kotlin and Spring Boot, a match made in heaven
RxSwiftを用いたアプリ開発の実践
Why I don’t want to develop iOS apps in Objective C
Railsフロントエンドの modernizeにおける一事例 ~decaffeinateからES2015移行まで~

What's hot (16)

PDF
Sinatraで触れる生SQL
PDF
Raspberry and Pharo
PDF
.NET Core 3.0 - What's new?
PPTX
Rust meetup delhi nov 18
PDF
[E-Dev-Day 2014][8/16] The Way How EFL is used in the Tizen, previous, curren...
PDF
働きやすい社内を目指す!二酸化炭素計測ツール
PDF
April JavaScript Tools
PDF
LINEデリマでのElasticsearchの運用と監視の話
PDF
.NET Core Foundations - Dependency Injection, Logging & Configuration - BASTA...
PDF
Flex And Rails
PDF
Hacktoberfest - An Open Source Story
PDF
Entity Framework Core 1.x/2.x Advanced
PDF
prototype::signatures
KEY
Zomg: Ruby Command Line and Ruby Debugging
PDF
Reactive Xamarin. UA Mobile 2016.
PDF
Python for Swift
Sinatraで触れる生SQL
Raspberry and Pharo
.NET Core 3.0 - What's new?
Rust meetup delhi nov 18
[E-Dev-Day 2014][8/16] The Way How EFL is used in the Tizen, previous, curren...
働きやすい社内を目指す!二酸化炭素計測ツール
April JavaScript Tools
LINEデリマでのElasticsearchの運用と監視の話
.NET Core Foundations - Dependency Injection, Logging & Configuration - BASTA...
Flex And Rails
Hacktoberfest - An Open Source Story
Entity Framework Core 1.x/2.x Advanced
prototype::signatures
Zomg: Ruby Command Line and Ruby Debugging
Reactive Xamarin. UA Mobile 2016.
Python for Swift
Ad

Viewers also liked (20)

DOCX
Sample email submission
KEY
Designing for Multiple Mobile Platforms
PPTX
Stc 2014 unraveling the mysteries of localization kits
PDF
Strategies for Friendly English and Successful Localization (InfoDevWorld 2014)
PPS
Bank Account Of Life
PPS
My Valentine Gift - YOU Decide
PDF
Shrunken Head
ODP
mobile development platforms
PDF
2008 Fourth Quarter Real Estate Commentary
DOCX
Sample of instructions
KEY
How to make intelligent web apps
PDF
Building Quality Experiences for Users in Any Language
PDF
Internationalization in Rails 2.2
PDF
Strategies for Friendly English and Successful Localization
DOCX
My trans kit checklist gw1 ds1_gw3
PDF
Putting Out Fires with Content Strategy (InfoDevDC meetup)
DOC
Silmeyiniz
PDF
Open Software Platforms for Mobile Digital Broadcasting
PDF
The ruby on rails i18n core api-Neeraj Kumar
PDF
Putting Out Fires with Content Strategy (STC Academic SIG)
Sample email submission
Designing for Multiple Mobile Platforms
Stc 2014 unraveling the mysteries of localization kits
Strategies for Friendly English and Successful Localization (InfoDevWorld 2014)
Bank Account Of Life
My Valentine Gift - YOU Decide
Shrunken Head
mobile development platforms
2008 Fourth Quarter Real Estate Commentary
Sample of instructions
How to make intelligent web apps
Building Quality Experiences for Users in Any Language
Internationalization in Rails 2.2
Strategies for Friendly English and Successful Localization
My trans kit checklist gw1 ds1_gw3
Putting Out Fires with Content Strategy (InfoDevDC meetup)
Silmeyiniz
Open Software Platforms for Mobile Digital Broadcasting
The ruby on rails i18n core api-Neeraj Kumar
Putting Out Fires with Content Strategy (STC Academic SIG)
Ad

Similar to Rails I18n From The Trenches (20)

PDF
[artifactconf] Github for People Who Don't Code
PDF
Working with Git
PDF
Git for Android Developers
KEY
Ship It ! with Ruby/ Rails Ecosystem
PDF
cadec-2017-golang
KEY
Pylons + Tokyo Cabinet
PDF
Go at Skroutz
KEY
Rapid development with Rails
PDF
Switching to Git
PDF
Steamlining your puppet development workflow
PDF
Puppet Camp New York 2014: Streamlining Puppet Development Workflow
PPT
scaling compiled applications - highload 2013
PPTX
Easy contributable internationalization process with Sphinx @ pyconmy2015
PDF
Joe Damato
PPTX
Go & multi platform GUI Trials and Errors
PDF
Packaging perl (LPW2010)
PDF
FOSDEM2018 Janus Lua plugin presentation
PDF
The future of templating and frameworks
PDF
WTF is Twisted?
PDF
[artifactconf] Github for People Who Don't Code
Working with Git
Git for Android Developers
Ship It ! with Ruby/ Rails Ecosystem
cadec-2017-golang
Pylons + Tokyo Cabinet
Go at Skroutz
Rapid development with Rails
Switching to Git
Steamlining your puppet development workflow
Puppet Camp New York 2014: Streamlining Puppet Development Workflow
scaling compiled applications - highload 2013
Easy contributable internationalization process with Sphinx @ pyconmy2015
Joe Damato
Go & multi platform GUI Trials and Errors
Packaging perl (LPW2010)
FOSDEM2018 Janus Lua plugin presentation
The future of templating and frameworks
WTF is Twisted?

Recently uploaded (20)

PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Big Data Technologies - Introduction.pptx
PDF
Encapsulation theory and applications.pdf
PPTX
Cloud computing and distributed systems.
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
Spectroscopy.pptx food analysis technology
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Machine learning based COVID-19 study performance prediction
PDF
Approach and Philosophy of On baking technology
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Electronic commerce courselecture one. Pdf
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
Encapsulation_ Review paper, used for researhc scholars
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Big Data Technologies - Introduction.pptx
Encapsulation theory and applications.pdf
Cloud computing and distributed systems.
Spectral efficient network and resource selection model in 5G networks
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
MIND Revenue Release Quarter 2 2025 Press Release
Spectroscopy.pptx food analysis technology
Review of recent advances in non-invasive hemoglobin estimation
Machine learning based COVID-19 study performance prediction
Approach and Philosophy of On baking technology
Advanced methodologies resolving dimensionality complications for autism neur...
Electronic commerce courselecture one. Pdf
sap open course for s4hana steps from ECC to s4
Reach Out and Touch Someone: Haptics and Empathic Computing
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Unlocking AI with Model Context Protocol (MCP)

Rails I18n From The Trenches

  • 1. Rails i18n From the Trenches Clemens Kofler
  • 2. Hi, I’m Clemens! (Clemens Kofler, clemensk)
  • 3. Today, I’m going to talk about ... • The latest developments in Ruby/Rails i18n • Current problems (in Rails) and potential future changes
  • 7. i18n basics in 2 minutes
  • 9. Do you like Gettext? (of course it’s fake)
  • 10. _ s_ p_ t n_ ns_ np_
  • 14. Additions in i18n 0.2.0 • translation procs • custom namespace separators • Ruby 1.9-style string interpolation • (symlinked translations)
  • 21. + a bunch of neat plugins (list at the end)
  • 22. Additions in i18n 0.2.0 • translation procs • custom namespace separators • Ruby 1.9-style string interpolation • (symlinked translations)
  • 24. Current edge • Base backend + module includes • Pluralization module • Cache module • Locale fallbacks module from Globalize 2 • Chain backend from Globalize 2 • Gettext support (experimental)
  • 33. Current edge • Base backend + module includes • Pluralization module • Cache module • Locale fallbacks module from Globalize 2 • Chain backend from Globalize 2 • Gettext support (experimental)
  • 34. Current problems • Tools • Data input • CLDR compliance • Some unfinished integration (Date/Time#to_s, labels) • Bad Rails implementations (AR Errors) • (Clean) routing i18n nearly impossible • (Gettext support / “enterprise-readiness”)
  • 35. Tools
  • 39. Parsing dates/times is really hard (you can try out my experimental delocalize plugin)
  • 45. You can do something like this with translate_routes but it’s basically a really scary hack.
  • 48. We are not Gettext (and we don’t want to be) ((ever))
  • 50. The Setup • i18n edge • Translations from GitHub • (Globalize 2 for model translations) • (localized_dates for transparent date handling) • (delocalize for parsing localized input) • (translate_routes for i18n routing)
  • 53. Some resources • http://rails-i18n.org • http://guides.rails.info/i18n.html • http://github.com/svenfuchs/i18n • http://github.com/svenfuchs/rails-i18n • http://github.com/svenfuchs/i18n-tools • http://groups.google.com/group/rails-i18n • Pluralization rules: http://gist.github.com/106372
  • 55. Image credits • http://www.sxc.hu/photo/708615 • http://www.flickr.com/photos/ferneyes/469259974/ • http://aceitapretzel.files.wordpress.com/2008/09/dexter-ap.jpg • http://www.flickr.com/photos/dunechaser/2936384313/ • http://www.festivalcervantino.gob.mx/Ficesmas/prensa/galerias/oct/12/ Hamletokok/images/061012_hamlet_20FGJ.jpg • http://www.flickr.com/photos/srgblog/1408923862/ • http://www.flickr.com/photos/purrr/126597849/