dot.case Converter

Type or paste text on the left and the dot.case version appears on the right automatically. Words are lowercased and joined with dots, ready for use as i18n translation keys, Java package names, config property keys, or lodash dot-notation paths.

More ways to experience Recasely:

Dc

Convert Text to dot.case for i18n Keys, Java Packages, and Config Properties

dot.case (also called dot notation, or simply dot case) is a naming convention where words are written in lowercase and separated by periods — for example, user.profile.settings or http.request.method. It's widely used for hierarchical addressing, where each dot represents a level of nesting. This converter detects word boundaries in plain text, camelCase, PascalCase, snake_case, and kebab-case, then joins them with periods. Each line is converted independently, so you can transform a batch of keys or property names at once. Everything runs in your browser; nothing you type is ever sent to a server.

Where is dot.case used?

dot.case is the standard format for hierarchical i18n translation keys in libraries like i18next and gettext (checkout.payment_form.submit_button), where each dot creates a namespace boundary. It's also the format for Java and Scala package names (com.example.app), Spring Boot and Maven configuration properties (app.version, server.port, spring.datasource.url), OpenTelemetry semantic attributes (http.request.method), and lodash dot-notation get/set paths. JavaScript object property access notation (user.profile.email) follows the same shape.

How does dot.case differ from snake_case and kebab-case?

All three conventions use lowercase words joined by a separator, but the separator means something different in each. snake_case uses underscores (user_profile) and is valid as a code identifier in most programming languages. kebab-case uses hyphens (user-profile) and is the format for CSS properties, URL slugs, and HTML attributes. dot.case uses periods (user.profile) and is reserved for hierarchical or nested addressing, where the dot itself signals a path — config keys, package paths, object property access, and translation namespaces. Need PascalCase or camelCase instead? See the camelCase Converter.

Can this convert camelCase, PascalCase, or snake_case to dot.case?

Yes. Paste getUserProfile, GetUserProfile, or get_user_profile and each converts to get.user.profile. Mixed formats work too, since the tool splits on underscores, hyphens, spaces, and camelCase/PascalCase word boundaries before rejoining with periods.

How are acronyms handled?

Acronym runs are treated as a single unit rather than split letter by letter, so getHTTPResponse becomes get.http.response — not get.h.t.t.p.response. This matches the same acronym-detection logic used by the camelCase Converter, so a term that stays intact as one word there stays intact as one dot-separated segment here.

What happens to numbers in my text?

A digit becomes its own segment, separated from the letters on both sides — so page2Title becomes page.2.title, not page2.title. This keeps numeric path segments unambiguous, which matters for hierarchical keys where a number might itself be a meaningful index or version component.

Last reviewed: August 2026