ankidroid/Anki-Android

[Design] Inconsistent String Casing

Open

#15,760 opened on 2024年3月3日

GitHub で見る
 (23 comments) (1 reaction) (0 assignees)Kotlin (2,789 forks)batch import
Good First IssueKeep OpenPriority-Low

Repository metrics

Stars
 (11,132 stars)
PR merge metrics
 (平均マージ 9d 12h) (30d で 93 merged PRs)

説明

Current Problem

AnkiDroid utilizes Anki strings, which are typically in Title Case. However, AnkiDroid strings are predominantly in Sentence case, resulting in inconsistent strings.

Solution

Changing Title cases strings to Sentence case or vice versa (see Strings affected for title case strings)

Why use Title Case?

  • Let’s Make It Official. Looks serious, right? Exactly!
  • Grabs reader attention. Capitalized phrases stand out from the crowd, as Pieter Heyman nicely put it.
  • Keeps a nice visual rhythm. Of course, as long as the sentences are short. Stands out. Title Case differentiates title from the body text.
  • Maintains symmetry. Yet, works only for short texts (ex. Buttons, Labels)

Why use Sentence case?

  • Consistency. Easier to maintain across different platforms.
  • Clarity. Easy to navigate and skim, thank you, John Saito. (ex. Home > About us)
  • People love it. Yes, we love having human-ish conversations with apps. Casual. Gives an impression that anyone can use the product.
  • Easier to localize. Much much easier and less stressful.

Source above

Human Interface Guideline (HID)

GNOME:

  • Header capitalization should be used for any headings, including headings in header bars, tab titles, and view titles. It should also be used for short control labels that do not normally form proper sentences, such as button labels, switch labels and menu items
  • Sentence capitalization should be used for labels that form sentences or that run on to other text, including labels for check boxes, radio buttons, sliders, text entry boxes, field labels and combobox labels. It should also be used for explanatory or body text, such as in dialogs or notifications

KDE:

Use sentence case when:

  • The text ends with a period or colon.
  • The text is clearly a sentence.
  • The text is a subtitle, tooltip, transient status message, or placeholder label.
  • The text is used as a label for a radio button, checkbox, combobox item, or placed in front of a control — for example using Kirigami.FormData.label.

Otherwise, use title case.

Also use title case for specialized proper nouns such as “the Internet” or “Plasma Widgets”.

Material Design 3: Use sentence case, unless it is specified

  • Unless otherwise specified, use sentence-style capitalization, where only the first letter of the first word in a sentence or phrase is capitalized. All text, including titles, headings, labels, menu items, and buttons should use sentence-style capitalization.
  • Products and branded terms may also be capitalized.

Apple: No specification

Strings Affected (Updated in: Jul, 11, 2026)

Export

  • **Anki Collection Package (.colpkg)
  • Anki Deck Package (.apkg)
  • Notes in Plain Text (.txt)
  • Cards in Plain Text (.txt)**

// COMMENT: in Import, the strings are in lower case

Brower

  • Filter by flag: No Flag

Main screen

  • Backup: Creating Backup
  • Manage Note types > (select a note type) Card types: Restore to Default

Settings

General

  • 'Anki Card' Menu
  • 'Card Browser' Menu

Advanced

  • Disable Single-Field Edit Mode
  • Allows 'Cloze Deletion' context menu when in landscape mode
  • In the Note Editor, convert any instances of to newlines when editing a card.
  • localStorage in Study Screen

About

Settings > About: (anki 25.09.2 / 3890e12c) // COMMENT: anki should be Uppercase

コントリビューターガイド