ankidroid / Anki-Android

AnkiDroid: Anki flashcards on Android. Your secret trick to achieve superhuman information retention.
GNU General Public License v3.0
8.29k stars 2.17k forks source link

[Design] Inconsistent String Casing #15760

Open NameLessGO opened 5 months ago

NameLessGO commented 5 months ago

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?

Why use Sentence case?

Source above

Human Interface Guideline (HID)

Strings Affected

For Statistics and Deck Options: They are in the gray zone for me, not sure if they should be sentence style or leave as it is

david-allison commented 5 months ago

I agree we're inconsistent and we need to discuss this. Thank you so much for the report and the effort you've put into this.

Our current inconsistency is the worst of the two options for a user's perspective.

Material 3 is what we're aiming towards in AnkiDroid

Use sentence case

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.

https://m3.material.io/foundations/content-design/style-guide/ux-writing-best-practices#fc5c2a78-f4bf-4d42-bdac-42ff80391129

We can't handle this change via .toSentenceCase() or similar: proper nouns/nouns in German would be incorrectly handled.

=> I believe if we use Sentence case, we will be unable to use most of Anki Desktop's strings for titles/menus (even if a string is 1 word in English, it may be 2 in French)


I weakly believe we should stick to the system string guidelines, even if it means more work (duplicating strings & potential infrastructure to copy from the Anki Desktop source strings)

BrayanDSO commented 5 months ago

I also prefer sentence casing in general. I suggest trying to check what is the position of Anki about that since it has been using title casing for many years.

Overall, I prefer not to duplicate strings from there since things may be translated differently between clients, and that kind of inconsistency is worse to me than having a different casing style.

For the strings that we are in control, the change is welcome IMO

eginhard commented 5 months ago

We can't handle this change via .toSentenceCase() or similar: proper nouns/nouns in German would be incorrectly handled.

=> I believe if we use Sentence case, we will be unable to use most of Anki Desktop's strings for titles/menus (even if a string is 1 word in English, it may be 2 in French)

I'm fairly sure title case is only a thing in English, so other languages could be ignored for this.

david-allison commented 5 months ago

@eginhard I was not aware of this, thank you!!!

This makes the decision a lot easier I feel:

Suggestion:

github-actions[bot] commented 2 months ago

Hello 👋, this issue has been opened for more than 3 months with no activity on it. If the issue is still here, please keep in mind that we need community support and help to fix it! Just comment something like still searching for solutions and if you found one, please open a pull request! You have 7 days until this gets closed automatically

harshit4311 commented 2 weeks ago

I'd love working on this issue! Could you please assign it to me?

BrayanDSO commented 2 weeks ago

Has anyone proposed to always use Sentence case in Anki/upstream? This is starting to look like busywork to me.

brishtibheja commented 6 days ago

I don't think anybody did. I can start a post and ping dae, should I? (It's better for both sides to be consistent in casing, rather than doing all this).

david-allison commented 6 days ago

Google Chrome isn't consistent within itself, let alone across a mobile app and a Desktop app:

Screenshot 2024-08-15 at 21 10 00

I'm fine with this being a continual issue on our side. We have consistent guidelines (Material naming) and we should match it, but it won't kill us if this is a gradual process, or when a few items don't meet the standard.

Desktop UIs have different platform guidelines than Android. That's expected and isn't a bug.

We have much more capacity for small tasks such as this to be listed as https://github.com/ankidroid/Anki-Android/labels/Good%20First%20Issue%21

macOS uses title case. Don't ping dae, he has hundreds of things to deal with, let him focus on things which are higher impact. It's FINE for Desktop & mobile strings to differ in casing.