svenfuchs/rails-i18n
63.2
Adequate · 28 September 2026
931
lines of production code
Ruby
primary language
2
measurements over time
What this system is
This system is the rails-i18n gem, a library that provides centralized locale data and linguistic rules for Ruby on Rails applications. It enables internationalization by supplying pluralization, transliteration, and ordinal formatting configurations for over 80 languages. The gem also includes tooling to validate locale file integrity and manage translation keys via a command-line interface.
How it got here
2008–2011 — Initial release and core infrastructure
8 changes.
This period established the rails-i18n gem with its initial release, introducing core infrastructure such as Railtie initialization, pluralization rules for over 80 locales, and transliteration support. The work included building comprehensive test suites with RSpec and utilities for validating locale integrity, while exposing module initialization options to allow users to control which localization features are loaded.
2012 — pluralization and transliteration expansion
4 changes.
The project expanded its internationalization capabilities by adding pluralization rules for a wider range of languages, including East and West Slavic and Romanian variants. Comprehensive unit tests and support helpers were implemented to validate these new linguistic rules, ensuring correct handling of plural forms, ordinals, and transliteration mappings.
2013–2022 — i18n test coverage and ordinal support
4 changes.
This period focused on enhancing internationalization capabilities by adding ordinal suffix configurations for numerous locales and establishing robust test coverage for i18n validation and locale file consistency. The work also included introducing new RSpec matchers for verifying dependent destroy restrictions and pluralization keys, alongside adding a local RSpec executable to streamline testing workflows.
Features
Added bin/rspec executable
The repository now includes a new \bin/rspec\ script, which serves as the entry point for running the RSpec testing framework. This addition allows users to execute RSpec commands directly via the local binary, facilitating easier integration into development workflows that rely on this specific tool.
bin · high confidence
Added ordinal suffix configuration for multiple locales
The \rails/ordinals\ directory now includes configuration files for a wide range of locales, enabling correct ordinal number formatting (e.g., '1st', '2nd') in user-facing text. Most added locales (such as German, Spanish, and Slavic languages) use a simple period suffix, while Dutch locales use 'e', and French and Scottish Gaelic locales use custom logic to append 'er' or 'e' respectively based on the number value.
rails/ordinals · high confidence
Added transliteration rules for 16 new locales
The \rails/transliteration\ directory now includes new locale-specific transliteration rule files for Azerbaijani (az), Bulgarian (bg), Catalan (ca), Danish (da), German (de), Greek (el), Spanish (es), Persian/Farsi (fa), French (fr), Hungarian (hu), Georgian (ka), Occitan (oc), Polish (pl), Portuguese (pt), Romanian (ro), and Vietnamese (vi). Additionally, Ruby wrapper files were added for Russian (ru) and Ukrainian (uk) to load their respective transliteration rules. These additions enable automatic conversion of non-Latin characters to ASCII for these languages when using the I18n transliteration feature.
rails/transliteration · high confidence
Comprehensive pluralization rules for 80+ locales
This change adds pluralization rule files for a wide range of locales in the \rails/pluralization\ directory, ensuring correct plural forms for translations. The diff introduces new files for specific locales (e.g., \ar.rb\, \cy.rb\, \gd.rb\, \he.rb\, \lt.rb\, \lv.rb\, \mk.rb\, \pl.rb\, \sl.rb\, \zh-CN.rb\, \zh-HK.rb\, etc.) and region-specific variants (e.g., \de-AT.rb\, \en-GB.rb\, \es-MX.rb\, \fr-CA.rb\). Most locales use common pluralization patterns like \OneOther\, \OneFewOther\, \OneUptoTwoOther\, or \Other\, while complex languages like Arabic, Welsh, Scottish Gaelic, Lithuanian, Latvian, Macedonian, Polish, and Slovenian use custom rules defined in \RailsI18n::Pluralization\. This ensures that the \i18n\ gem correctly selects plural keys (e.g., \:one\, \:few\, \:other\) based on the count for each supported locale.
rails/pluralization · high confidence
Expanded pluralization rules for additional languages
The library now includes pluralization rules for a wider range of languages, adding support for East Slavic (Belarusian, Russian, Ukrainian), West Slavic (Czech, Slovak), Romanian, and several others using one-two, one-up-to-two, one-with-zero, and other-specific logic. This ensures that translations for these locales are pluralized correctly according to their linguistic rules.
_lib/rails\_i18n/common\pluralizations · high confidence
Initial release of rails-i18n with Rails 8.1 support and locale normalization tools
This entry marks the initial release of the rails-i18n gem, providing centralized locale data for Ruby on Rails applications. The release updates support to Rails 8.1.x and includes comprehensive locale files for numerous languages, with specific fixes for keys like \datetime.relative\, \errors.messages.in\, and \password\_too\_long\ across English, German, Spanish, Portuguese, and other locales. It introduces a new \locales.thor\ command-line interface for managing translations, allowing users to normalize locale files, check for missing keys or broken data, and list complete or incomplete locales. The gem also adds configuration options to enable or disable specific modules (locales, pluralization, ordinals, transliteration) and includes a Dockerfile for testing. Documentation has been updated to reflect the new structure, available locales, and contribution guidelines.
(repo-wide) · high confidence
New pluralization, transliteration, and railtie initialization for Rails I18n
This change introduces core infrastructure for the rails\_i18n gem, including a new Railtie that automatically loads locale-specific pluralization, ordinals, and transliteration rules based on configuration. It adds specific pluralization rules for several non-English languages (Arabic, Scottish Gaelic, Upper Sorbian, Lithuanian, Latvian, Macedonian, Polish, Slovenian, and Welsh) and implements transliteration logic for Ukrainian and Russian characters. These components enable more accurate plural form selection and character conversion for internationalized applications.
_lib/rails\i18n · high confidence
Behavioural changes
Expose module initialization options via gem entry point
The library now exposes a public API for controlling which localization modules are active. A new entry point file (lib/rails-i18n.rb) loads the core module, which provides \enabled\_modules\ and \enabled\_modules=\ methods to allow users to explicitly select or filter the set of i18n modules loaded at runtime, rather than loading all available modules by default.
lib · high confidence
Test coverage
Add RSpec test suite configuration; Added locale structure and integrity testing utilities; Added new RSpec matchers for i18n validation; Added pluralization rule tests for multiple language families; Added test support helpers for pluralization and transliteration specs; Added tests for locale file consistency; Added unit tests for ordinals, pluralization, and transliteration rules.
Dependencies
Rails 8.0 support and dependency updates
The rails-i18n gem has been updated to version 8.1.0, adding support for Rails 8.0 by requiring railties \>= 8.0.0. Development dependencies have been updated, including i18n-tasks to \~\> 1.0 and i18n-spec to \~\> 0.6.0, while rspec-rails remains at \~\> 3.7.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 62 → 63 (+1.3)
- Rubric changed (rubric-2026.09.8 → rubric-2026.09.16) — scores are not directly comparable.
Lenses
- Code Health 97 → 97 (+0.0)
- Architecture 69 → 69 (+0.0)
- Maturity 58 → 58 (+0.0)
- Readiness 55 → 57 (+2.3)
- Security 88 → 90 (+2.5)
New (1)
- No ADRs found
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
svenfuchs/rails-i18n was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 28 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 8bea3395b0243a3e367d1d63420708cc67bcec08 — the exact code this score is about.
- Scored under rubric-2026.09.16 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-2d9048c36d26.