Java Properties

Resource bundles that stay diffable

.properties files have carried Java translations since 1997 and still do, from ResourceBundle to Spring’s MessageSource. locamorph imports them with their comments, keeps keys flat the way the format demands, and exports files where only the translations changed, which is what you want a code review to show.

Round trip tested: what locamorph writes reads back identically, comments included.

messages_de.properties
# Checkout screen
checkout.title=Bestellübersicht
checkout.items={count, plural, one {# Artikel} other {# Artikel}}

# Main navigation
menu.home=Startseite
menu.projects=Projekte
Key value pairs, translator comments and an ICU plural carried in a value.
.properties Import yes Export yes Comments per key, both ways Plurals ICU in values Keys flat

In locamorph

How locamorph handles .properties

comments

Context survives the trip

The # comment above a key imports as its note and is written back on export, so the hint a developer left for translators stays in the file.

plurals

ICU plurals in plain values

The format has no plural syntax, so plural messages travel as ICU strings that locamorph parses into editable forms and reassembles on export.

stability

Exports without surprises

Stable key order and formatting mean messages_fr.properties diffs show translation changes, not tooling churn.

Ecosystem

Where .properties lives

Anything on the JVM: Java, Kotlin, Scala and Groovy, with Spring Boot as the biggest habitat since MessageSource reads messages_*.properties by convention. A quarter century of enterprise code keeps this format very much alive.

Typical flow: bundles live beside the code, GitHub or GitLab imports new keys on push, and translations return as a merge request per locale file.

Bring your messages bundle

Import a .properties file on the free plan and get it back with comments intact and only the translations changed.