Work item type names use title case in mid-sentence UI strings
Problem
Work item type names are stored in title case (Key Result, Test Case, Epic in
app/assets/javascripts/work_items/constants.js) and interpolated into UI strings
through %{workItemType}. Mid-sentence, this gives title case where Pajamas calls
for sentence case.
Merge request !249565 (merged) fixed the close and reopen paths only, so the More actions dropdown now mixes both conventions:
Close key result
Delete Key Result
Copy Key Result email addressWhy this isn't a find-and-replace
15 strings put %{workItemType} at the start of a sentence. Lowercasing those would
produce key result created., so each call site needs to be assessed individually.
Inventory
| Category | Count | Action |
|---|---|---|
Mid-sentence, for example Delete %{workItemType} |
23 | Lowercase |
Sentence-initial, for example %{workItemType} created. |
15 | Leave capitalized |
Shared error constants in work_items/constants.js |
4 msgids, ~34 references | Decide separately |
| EE lifecycle strings following a colon | 2 | Decide separately |
Mid-sentence strings to lowercase
| File | Strings |
|---|---|
work_item_actions.vue |
Delete, Copy ... email address, 2 delete-confirmation strings |
create_work_item.vue |
Create, New, 2 thread-resolution strings, Mark this item as related to: |
create_work_item_modal.vue |
New |
create_work_item_cancel_confirmation_modal.vue |
Are you sure you want to cancel creating this ... |
work_item_links_form.vue |
Create, Add, Add ...s, confidential-parent warning |
work_item_actions_split_button.vue |
Maximum children warning |
work_item_development.vue |
3 auto-close strings |
work_item_create_branch_merge_request_modal.vue |
Branch creation failure |
work_item_change_type_modal.vue |
Unsupported parent type, missing fields |
work_item_note_actions.vue |
This user is the author of this ... |
Sentence-initial strings to leave alone
| File | Strings |
|---|---|
create_work_item_modal.vue, work_item_root.vue |
... created., ... deleted |
work_item_change_type_modal.vue |
Unsupported child type, singular and plural |
work_item_relationships.vue, work_item_relationship_icons.vue |
Linked, blocked by, and blocks counts |
work_item_rolled_up_count_info.vue |
...: %{count} closed |
ee/.../work_item_types_list.vue, ee/.../work_item_types_list_enabled_disabled_view.vue |
Enabled and disabled toasts |
Regenerate the full list with:
grep -rn '%{workItemType}' app/assets/javascripts ee/app/assets/javascriptsProposal
- Extract a
lowercaseWorkItemTypehelper intoapp/assets/javascripts/work_items/utils.js. This was suggested during review of !249565 (merged) and is currently duplicated inwork_item_state_toggle.vueandwork_item_close_confirm_modal.vue. - Apply it to the mid-sentence call sites, one MR per component group.
- Update the affected frontend, feature, and QA specs. Roughly 70 matches exist for
'Delete|Create|Add|New|Copy <Type>'acrossspec/,ee/spec/, andqa/, though not all are related.
No locale/gitlab.pot changes are needed, because only the interpolated value changes,
not the msgid.
References
- Original issue: #611997 (closed)
- Preceding MR: !249565 (merged)
- Review comment: !249565 (comment 3680599313)
- Pajamas, capitalization: https://design.gitlab.com/content/ui-text#capitalization