2025-10-22 11:34:08 +02:00
|
|
|
|
|
|
|
|
|
|
## Translations
|
|
|
|
|
|
|
|
|
|
|
|
This documents the convention used for the text in the UI.
|
|
|
|
|
|
|
2025-11-06 16:52:34 +01:00
|
|
|
|
### Tale of Two Cases
|
2025-10-22 11:34:08 +02:00
|
|
|
|
|
2025-11-06 16:52:34 +01:00
|
|
|
|
**Title Case**
|
2025-10-22 11:34:08 +02:00
|
|
|
|
|
2025-11-06 16:52:34 +01:00
|
|
|
|
All words are capitalized. In title case, articles (a/an/the), conjunctions (and/but/or/...)
|
|
|
|
|
|
and prepositions (on/at/...) inside a phrase are not capitalized. Everything else is capitalized
|
|
|
|
|
|
- noun, pronoun, verb, adverb.
|
2025-10-22 11:34:08 +02:00
|
|
|
|
|
|
|
|
|
|
Examples:
|
|
|
|
|
|
|
|
|
|
|
|
* "Sign In to Your Account"
|
|
|
|
|
|
* "Terms and Conditions"
|
|
|
|
|
|
* "Getting Started with GraphQL"
|
|
|
|
|
|
* "Between You and Me"
|
|
|
|
|
|
|
2025-11-06 16:52:34 +01:00
|
|
|
|
**Sentence Case**
|
2025-10-22 11:34:08 +02:00
|
|
|
|
|
|
|
|
|
|
Only first word is capitalized.
|
|
|
|
|
|
|
2025-11-06 16:52:34 +01:00
|
|
|
|
### UI Conventions
|
2025-10-22 11:34:08 +02:00
|
|
|
|
|
2025-11-12 18:42:24 +01:00
|
|
|
|
Keeping as much as possible in Sentence Case helps in sharing the same strings.
|
|
|
|
|
|
|
2025-10-22 11:34:08 +02:00
|
|
|
|
| Element | Recommended Style | Example |
|
|
|
|
|
|
| -------------- | ---------------------- | -------------------------------- |
|
|
|
|
|
|
| Headings | Title Case | Manage Account |
|
|
|
|
|
|
| Sub heading | Title Case | Create Admin Account |
|
2025-11-12 18:42:24 +01:00
|
|
|
|
| Section/Card | Title Case | System Information |
|
|
|
|
|
|
| Form Labels | Sentence case | Email address |
|
|
|
|
|
|
| Form Groups | Sentence case | Volume mounts, Data directory |
|
|
|
|
|
|
| Table headings | Sentence case | Memory limit |
|
|
|
|
|
|
| Info sections | Sentence case | Cloudron version |
|
|
|
|
|
|
| Buttons | Sentence case | Save changes |
|
|
|
|
|
|
| Radio Buttons | Sentence case | Option one / Option two |
|
|
|
|
|
|
| Checkbox | Sentence case | Use CIFS encryption |
|
|
|
|
|
|
| Menu action | Sentence case | Select all |
|
|
|
|
|
|
| Switches | Sentence case | Allow users to edit email |
|
2025-10-22 11:34:08 +02:00
|
|
|
|
| Descriptions | Sentence case | Enter your password to continue. |
|
|
|
|
|
|
| Tooltips | Sentence case | Click to edit. |
|
|
|
|
|
|
| Error Messages | Sentence case | Password is too short |
|
|
|
|
|
|
| Notifications | Sentence case | Settings saved successfully. |
|
2025-10-22 14:20:56 +02:00
|
|
|
|
| Legend (graph) | Sentence case | Docker volume, Box data. |
|
2025-11-06 16:52:34 +01:00
|
|
|
|
| Placeholders | Sentence case | Comma separated IPs or subnets |
|
2025-10-22 11:34:08 +02:00
|
|
|
|
|
2025-10-22 14:20:56 +02:00
|
|
|
|
Hints in brackets are small case. Like "(comma separated)".
|
|
|
|
|
|
|
2025-11-06 16:52:34 +01:00
|
|
|
|
### Full Stops
|
2025-10-22 14:20:56 +02:00
|
|
|
|
|
|
|
|
|
|
Sentence fragments like form hints and tooltips (which are always visible) do not need a full stop.
|
|
|
|
|
|
All other full sentences do.
|
|
|
|
|
|
|
2025-11-11 21:15:15 +01:00
|
|
|
|
Description has a full stop unless it's a hint/phrase.
|
|
|
|
|
|
|
|
|
|
|
|
instructional heading in dialogs (like the object being configured) should not have a full stop.
|
2025-10-22 14:20:56 +02:00
|
|
|
|
|
2025-11-11 16:39:13 +01:00
|
|
|
|
Switch UI description does not have a fullstop.
|
|
|
|
|
|
|
2025-11-11 21:15:15 +01:00
|
|
|
|
Setting item description does not need a fullstop (usually).
|
|
|
|
|
|
|
|
|
|
|
|
Checkbox labels do not have a full stop at the end.
|
|
|
|
|
|
|
|
|
|
|
|
No full stop → short labels, commands, headings, or action text (“Configure Service {{serviceName}}”).
|
|
|
|
|
|
|
|
|
|
|
|
Full stop → descriptive text or sentences explaining a setting (“The IPv4 address used for DNS A records.”).
|
2025-10-22 11:34:08 +02:00
|
|
|
|
|
2025-11-06 16:52:34 +01:00
|
|
|
|
### Dialog Buttons
|
|
|
|
|
|
|
|
|
|
|
|
'Add' for addition
|
|
|
|
|
|
'Cancel' to cancel
|
|
|
|
|
|
'Save' for edit/update
|
|
|
|
|
|
'Remove' for non-destructive/less destructive things (app password remove)
|
|
|
|
|
|
'Delete' for destructive (user delete)
|
|
|
|
|
|
|
2025-11-07 10:15:22 +01:00
|
|
|
|
'Close' - Only for dialogs with the only button
|
|
|
|
|
|
|
2025-11-06 16:52:34 +01:00
|
|
|
|
### Dialog Text
|
|
|
|
|
|
|
|
|
|
|
|
When asking for confirmation simply ask 'Remove app password "xxx"' . Don't use "really"
|
|
|
|
|
|
or other emotional terms. Quote the password/domain name.
|
|
|
|
|
|
|
2025-11-07 10:45:21 +01:00
|
|
|
|
In general, we put just "Delete User" in Title and provide the username in the context.
|
|
|
|
|
|
|
|
|
|
|
|
Title = action (what you’re doing)
|
|
|
|
|
|
Description = context (to whom it applies)
|
|
|
|
|
|
|
2025-11-10 10:51:52 +01:00
|
|
|
|
### Description Text
|
|
|
|
|
|
|
|
|
|
|
|
| Context | Verb form | Example |
|
|
|
|
|
|
| --------------------------------- | ------------------------ | ---------------------------------------------------------------------- |
|
|
|
|
|
|
| **Action / Button / Instruction** | **Imperative** → “Add” | Button: **Add**, Tooltip: “Add a new link” |
|
2025-11-11 21:15:15 +01:00
|
|
|
|
| **Section / View description** | **Imperative** → “Add” | Description: **Adds shortcuts to external services on the dashboard.** |
|
2025-11-10 10:51:52 +01:00
|
|
|
|
|
2025-11-11 16:39:13 +01:00
|
|
|
|
We use plural when possible. "Admins can ..." , "Operators can ..."
|
|
|
|
|
|
|