YAML (Rails i18n) localization with AI
Rails-style YAML locale files with a root locale key and nested scopes.
.yml.yamlformat: yamlone file per locale
What it is
YAML is the standard for Ruby on Rails (config/locales/en.yml) and is common in Hugo, Jekyll and Symfony. Rails files start with the locale as the root key.
Example
config/locales/en.yml
en: # Shown on the dashboard header dashboard: greeting: "Hello, %{name}" projects: one: "%{count} project" other: "%{count} projects"How Glossa handles it
- Plurals
- A mapping whose keys are CLDR categories (zero, one, two, few, many, other) is treated as one plural entry and expanded per target locale.
- Comments and context
- Comments above a key are kept as its context and passed to the translator.
- Placeholders
- Brace placeholders ({name}, so Rails %{name} too), printf specifiers and HTML tags are protected and checked on every translation.
- Round trip
- The root locale key is rewritten for each target (en: becomes es:), so the output loads straight into I18n.
Translate it from the command line
Push the source-language file; strings are deduplicated against the rest of your workspace and queued for translation. Pull writes config/locales/es.yml back in the same format.
npx @meterapp/glossa loginnpx @meterapp/glossa push config/locales/en.yml --project appnpx @meterapp/glossa pull --project app --locale es,de,jaOr ask an agent over MCP: “Push config/locales/en.yml to Glossa and pull Spanish.” It calls push_file and pull_file. See the CLI and MCP guides.
Other formats
Xcode String CatalogFlutter ARBJSON (key/value, i18next)Apple .stringsApple .stringsdictAndroid strings.xmlGettext PO/POTXLIFF 1.2 / 2.0Java .properties.NET RESXCSV / TSV (multi-locale)
Moving from Crowdin? Read the comparison.