dot.case Converter

Character Count: 0 Word Count: 0 Line Count: 0
Dc

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

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 is widely used for hierarchical addressing, where each dot represents a level of nesting: i18n translation keys (checkout.payment_form.submit_button), Java and Scala package names (com.example.app), Spring Boot and Maven property keys (app.version, server.port), OpenTelemetry semantic attributes, lodash get/set paths, and MongoDB nested-field queries.

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.

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 is 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), lodash get/set paths, and MongoDB queries that target nested document fields. 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. 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.

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

Yes. Paste getUserName and the converter outputs get.user.name. It also accepts PascalCase (GetUserName becomes get.user.name), snake_case (get_user_name), kebab-case (get-user-name), and SCREAMING_SNAKE_CASE (HELLO_WORLD becomes hello.world). Mixed input like Hello World_foo-bar also converts correctly to hello.world.foo.bar.

How are numbers and acronyms handled?

The converter splits at digit-letter boundaries, so myVar2Name becomes my.var.2.name. Acronyms like XMLParser are split where the uppercase run meets a new word, producing xml.parser. Multi-line input is converted line by line, so a list of keys like userProfile on one line and orderTotal on the next yields user.profile and order.total as separate output lines.

Last reviewed: April 2026