dot.case Converter

Convert any phrase into dot.case — all lowercase, words joined by dots. Common in config keys, namespaced identifiers, and i18n translation keys.

Example: User Profile Background Coloruser.profile.background.color

dot.case is a naming convention where words are written in lowercase and joined by dots. It's used heavily for hierarchical configuration keys, internationalisation translation keys, and any context where the dot communicates a logical grouping.

Unlike snake_case or kebab-case, the dots in dot.case usually carry semantic meaning — they signal namespace or hierarchy boundaries, not just word separators.

When to use it

i18n translation keys

nav.home.label, checkout.cart.empty.message, errors.validation.email. Translation libraries (i18next, vue-i18n, react-intl) use dot-separated keys to navigate a nested translation object.

Configuration files

Spring Boot's application.properties, log4j config, and many older Unix tools use dot.case for hierarchical configuration: spring.datasource.url, logging.level.root.

Permission strings

RBAC and ABAC systems often encode permissions as dot.case strings: user.read, billing.invoice.write, admin.users.delete. The dots make the hierarchy obvious.

Event names in analytics

Mixpanel, Segment, and similar analytics tools commonly use dot.case event names: user.signed_up, checkout.completed, video.playback.started.

DNS-style identifiers

Reverse-DNS package naming uses dot.case: com.example.app, org.apache.commons. Java, Android, and macOS bundle identifiers all rely on this convention.

How the conversion works

The dot.case converter operates by applying a two-stage transformation to the input string. First, it lowercases all alphabetic characters using full Unicode case folding (not just ASCII), which handles accented letters (e.g., Éé). Second, it replaces every sequence of whitespace characters (spaces, tabs, newlines) with a single dot (.). Non-alphanumeric characters other than whitespace are preserved in their original positions, meaning punctuation, numbers, and symbols remain unchanged. The algorithm does not attempt to split camelCase or PascalCase; it only operates on whitespace-delimited tokens. This ensures deterministic, predictable output: the result is always a concatenation of lowercased tokens joined by dots, with no silent modification of acronyms or numbers.

How to use it

  1. Type or paste your text into the input box.
  2. Click the 'Convert to dot.case' button.
  3. The converted text appears instantly in the output area.
  4. Copy the result or use the 'Copy' button to paste elsewhere.

Edge cases this converter handles

Empty input
Returns an empty string with no warning.
Multiple consecutive spaces
Reduced to a single dot between words.
Leading/trailing whitespace
Stripped entirely, so no leading or trailing dots appear.
Non-alphabetic characters
Numbers, punctuation, and symbols are preserved as-is and not lowercase-converted.

Pro tips for case conversion

  • Use dot.case for Django or Flask configuration keys – they follow this convention by default.
  • For internationalization (i18n) translation keys, dot.case helps group related strings (e.g., 'user.profile.bio').
  • To convert camelCase to dot.case, first insert spaces before capitals using a separate tool like 'Split Camel Case'.
  • Combine this tool with a JSON formatter to quickly structure nested configuration files.

vs other ways to change case

Here's how this tool compares to two other common ways to produce dot.case.

This toolsed commandPython one-liner
Lowercase handlingFull Unicode case foldingtr '[:upper:]' '[:lower:]' (ASCII only unless locale set)str.lower() (full Unicode)
Whitespace reductionReplaces any whitespace sequence with a single dotRequires two substitutions: s/[[:space:]]+/./g and s/^\.//; s/\.$//re.sub(r'\s+', '.', s).strip('.')
Preservation of non-whitespaceAll non-whitespace characters kept intactSame, but careful with regex escapingSame, using re.sub pattern

A bit of history

The dot.case convention emerged naturally from early programming languages that used dot notation for object property access (e.g., JavaScript, Python). Its adoption for configuration keys was popularized by frameworks like Django (settings.py) and Ruby on Rails (YAML locale files). There is no single inventor; rather, it evolved as a human-readable way to represent hierarchical namespaces in plain text, avoiding the ambiguity of underscores or hyphens in certain file systems and parsers.

Common questions about case conversion

dot.case vs slash/case — what's the difference?

They're often interchangeable for hierarchical paths. Dots are more common for in-code identifiers and config keys; slashes are more common for filesystem paths and URL segments. Choose based on context, not either-or.

Will dots in identifiers break my code?

Yes — most languages use dots for property access (obj.prop), so dot.case is for strings, not identifiers. Use it as the value of a string variable, not as the variable name itself.

How are leading or trailing dots handled?

The converter strips them. ".user.name." becomes "user.name". If you need the leading dot for a relative-path or hidden-file convention, add it back manually.

Can I use dot.case for filenames?

Possible but unusual — most operating systems treat the last dot as the extension separator, so my.config.file.json is interpreted as a JSON file named my.config.file. Use kebab-case for filenames unless your tool explicitly expects dots.

Embed our tools on your website

Free for any site. No signup. Iframe loads from our servers and stays up-to-date automatically.

📋 Embed the Word Counter

Copy this snippet:

Live preview:

📋 Embed this dot.case Converter

Copy this snippet:

Live preview:

Want more options? All embeddable tools →