Java .properties localization with AI
Java .properties resource bundles, including Spring messages files.
.propertiesformat: propertiesone file per locale
What it is
Java ResourceBundle files (messages.properties, messages_es.properties) are used by Spring, Android tooling, JetBrains plugins and many JVM apps.
Example
src/main/resources/messages.properties
# Order confirmationorder.confirmed=Your order {0} is confirmed.order.items=You have {0,number,integer} items in your cart.How Glossa handles it
- Plurals
- .properties has no native plurals; MessageFormat choice patterns inside values are preserved.
- Comments and context
- # and ! comments above a key are kept as context.
- Placeholders
- MessageFormat arguments ({0}) and printf specifiers are protected and checked.
- Round trip
- Line continuations and \uXXXX escapes are read; non-ASCII is written as \uXXXX only if the original file did so. The header comment block is kept.
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 src/main/resources/messages.properties back in the same format.
npx @meterapp/glossa loginnpx @meterapp/glossa push src/main/resources/messages.properties --project appnpx @meterapp/glossa pull --project app --locale es,de,jaOr ask an agent over MCP: “Push src/main/resources/messages.properties 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)YAML (Rails i18n)Apple .stringsApple .stringsdictAndroid strings.xmlGettext PO/POTXLIFF 1.2 / 2.0.NET RESXCSV / TSV (multi-locale)
Moving from Crowdin? Read the comparison.