I18N support with RubyMine falls into the following major aspects:
- Internationalization, which involves extracting strings out of your source code and presenting them as properties that are further referenced in the source code.
- Localization, which means translating these properties into the target languages.
RubyMine extends i18n support to both Rails applications, and plain Ruby projects.
Following the Rails i18n conventions, RubyMine stores dictionaries under the config\locales directory of a project. However, you can configure additional directories, where dictionaries will be stored. This is done in the I18n Folders page of the Project Structure.
There are two ways of representing dictionaries:
- YML files with locale record and key-value pairs.
- Ruby files with Ruby hashes.
The locale files are recognized as the properties files and are marked with icon. So doing, all locales are logically merged into a single dictionary.
RubyMine provides helpful features that simplify working on software internationalization and localization issues. These features are:
- Dedicated storage location and automatic recognition of locales.
- Code inspections that help detect i18n-related issues.
- Quick fixes to extract hard-coded strings and create property keys.
- Code completion Ctrl+SpaceCtrl+Space in t() method.
- Navigation to declaration of a locale key Ctrl+BCtrl+B.