Bug 5114 - Inconsistent title capitalization style
Summary: Inconsistent title capitalization style
Status: REOPENED
Alias: None
Product: ThinLinc
Classification: Unclassified
Component: Other (show other bugs)
Version: trunk
Hardware: PC Unknown
: P2 Normal
Target Milestone: 4.18.0
Assignee: William Sjöblom
URL:
Keywords: ossman_tester, prosaic, tobfa_tester
Depends on: 8089
Blocks: 7903 8440
  Show dependency treegraph
 
Reported: 2014-04-29 14:59 CEST by Samuel Mannehed
Modified: 2024-12-04 17:45 CET (History)
5 users (show)

See Also:
Acceptance Criteria:
MUST: - Should use sentence casing in the entire product: - TAG - Profiles - tl-disconnect.desktop - Web Access - Web Administrator - native client - client installer on Windows (and customizer) - client installer on Mac - other hconf files - nearest printer - thinlocal printer - server installer and tl-setup - tlctl - sound redirection (sink name) - tl support - web integration


Attachments

Description Samuel Mannehed cendio 2014-04-29 14:59:51 CEST
At the moment we do not have a consistent style for capital letters in the titles in the tag. Example:

7.1.3. Language Settings
7.1.4. The ThinLinc session life cycle

I personally prefer the second style.
Comment 1 Pierre Ossman cendio 2021-10-14 16:11:20 CEST
Seems to be a lack of consensus around these things. Wikipedia prefers sentence case on everything, while most press style guides lean heavily towards title case.

Some more nuance in this guide from APA:

https://blog.apastyle.org/apastyle/2012/03/title-case-and-sentence-case-capitalization-in-apa-style.html

And here is also a summary:

https://capitalizemytitle.com/#capitalizationrules
Comment 2 Samuel Mannehed cendio 2021-10-19 14:17:36 CEST
A minor argument towards using title case is the way cross-references look in the new reStructuredText documentation. Previously we had references that could look like this: 

> See LOWERCASE_LOGIN_NAME in Section 7.8, “ Client configuration storage ” for details.

Now they they look like this:

> See LOWERCASE_LOGIN_NAME in Configuration Parameters Used by the ThinLinc Client for details.

The title case makes it easier to identify this as a reference to another section. If it was written in sentence case it'd look even more like just some more text. The problem is especially significant in the PDF since we don't get different coloring or underscores for links.
Comment 3 Samuel Mannehed cendio 2021-10-19 14:31:35 CEST
(In reply to Samuel Mannehed from comment #2)
> The title case makes it easier to identify this as a reference to another
> section. If it was written in sentence case it'd look even more like just
> some more text. The problem is especially significant in the PDF since we
> don't get different coloring or underscores for links.

This is somewhat mitigated now since we have added color to links in the PDF as well.
Comment 4 Pierre Ossman cendio 2021-12-08 13:31:56 CET
This is also an issue in the user interface. At least tlclient has varying style for labels.
Comment 5 Pierre Ossman cendio 2022-05-10 14:37:48 CEST
(In reply to Pierre Ossman from comment #4)
> This is also an issue in the user interface. At least tlclient has varying
> style for labels.

For UIs, it's a complete mess with no winning standard.

GNOME advocates using Title Case for a lot of graphical elements:

https://developer.gnome.org/hig/guidelines/writing-style.html

We can also see that the HIG itself uses Title Case everywhere. 

KDE seems to have almost identical approach:

https://develop.kde.org/hig/style/writing/capitalization/

Mozilla also uses Title Case in Firefox and Thunderbird in a manner similar to GNOME:

https://design.firefox.com/photon/copy/capitalization.html

(Note the odd exception for Android. Also note that Firefox menus are still in sentence case, despite what their design document states.)

Their homepage seems to lean heavily towards Title Case, but it's not everywhere. MDN is a bit of a mess, with both styles applied pretty much at random.

Google, however, uses Sentence case in Chrome, and that's also what their developer documentation recommends:

https://developers.google.com/style/capitalization
https://developers.google.com/style/ui-elements

Their web pages are also mostly Sentence case, with Title Case sneaking in here and there. Note, however, that their menus are Title Case on macOS, but Sentence case on other platforms.

Microsoft seems to be consistent in Sentence case, both in their UIs and on their web pages. This is also what they document in their style guide:

https://docs.microsoft.com/en-us/style-guide/capitalization

Apple uses mostly Title Case in their applications. They don't have any single summary of this in their style guide, rather it's spread out over all the different UI elements in their HIG:

https://developer.apple.com/design/human-interface-guidelines/

Their homepage seems to use Title Case for top headings, and sentence case for any sub-headings.
Comment 6 Pierre Ossman cendio 2022-07-01 08:59:58 CEST
Should probably also poke someone to also clean up our website, as it also has a mix.
Comment 7 Pierre Ossman cendio 2022-11-23 16:53:27 CET
We've now decided to go with Wikipedia's approach, which is sentence case for almost everything. The exception being titles for works, which occurs very rarely for us. Details here:

https://en.wikipedia.org/wiki/Wikipedia:Manual_of_Style/Titles_of_works#Capital_letters

We've picked this because it is likely easier for everyone to get right, and there is no compelling reason for either side. There are major platforms in both camps.
Comment 12 William Sjöblom cendio 2024-09-25 14:01:28 CEST
I just realized that this bug also covers the rest of the product (and not only the documentation). Reopening as I don't know the current state there.
Comment 14 Emelie cendio 2024-10-03 11:27:16 CEST
We went through the changes and found some minor capitalization issues. They were added to the list of future TAG changes. Otherwise, it looks good!
Comment 15 Emelie cendio 2024-10-03 16:01:14 CEST
In the following places, we noticed that the capitalization was wrong:

- Profiles
  * Profile Chooser
  * profiles.hconf (name parameters)

- tl-disconnect.desktop
  * Name=Disconnect ThinLinc Session

- Web Administrator
  On the menu:
    * System Health
    * Profiles/Introduction Texts
    * Profiles/Profile List
    * Desktop Customizer
    * Desktop Customizer/Application Groups
    * Desktop Customizer/Application (Manual)
    * Desktop Customizer/Application (System)
    * Desktop Customizer/Menu Structure

  In the content:

  * health/
    - Service Status
    - User and Group Lookup
  * status/
    - License Usage
    - System Load
  * status/licenses
    - License Usage
  * status/load
    - System Load
  * vsm/master
    - Service Status
    - Allowed Groups
    - Allowed Shadowers
  * vsm/agent
    - Service Status
    - Agent Hostname
    - Extra Arguments to X Server
  * profiles/
    - Introduction Texts
    - Profile List
  * profiles/introduction
    - Greeting Text
    - Introduction Text (heading)
    - Introduction Text (table)
  * profiles/profilelist
    - Default Profile
  * locations/
    - Locations and Terminals
  * desktop/
    - ThinLinc Desktop Customizer
    - Application Groups
    - Applications Defined Manually
    - Applications Defined by System
    - Menu Structure
  * desktop/appgroups
    - Application Groups
  * desktop/manapplications
    - Applications Defined Manually
    - Used in Application Groups (table)
  * desktop/sysapplications
    - Applications Defined by System
    - Used in Application Groups (table)
  * desktop/menustructure
    - Menu Structure
  * help/
    - Professional and Community Support
    - Documentation Center at Cendio.com
    - Cendio Licenses and Agreements


Places not searched for wrong capitalization:
 - native client
 - client installer on Windows (and customizer)
 - client installer on Mac
 - other hconf files
 - nearest printer
 - thinlocal printer
 - server installer and tl-setup
 - tlctl
 - sound redirection (sink name)
 - tl support
 - web integration
Comment 16 Emelie cendio 2024-10-03 16:02:12 CEST
Web Access has few titles, and all of them were capitalized correctly.
Comment 20 Emelie cendio 2024-10-07 14:17:51 CEST
As for now, sentence casing has been fixed in TAG, Web Access and in Web Administrator.

There is a patch for fixes in Profiles, profile chooser and tl-disconnect.desktop.

Places left to fix sentence casing:
 - native client
 - client installer on Windows (and customizer)
 - client installer on Mac
 - other hconf files
 - nearest printer
 - thinlocal printer
 - server installer and tl-setup
 - tlctl
 - sound redirection (sink name)
 - tl support
 - web integration
Comment 21 Tobias cendio 2024-10-07 15:57:23 CEST
As mentioned in comment 20, the ThinLinc components TAG, webaccess, and webadmin
have received some recent updates concerning consistent capitalization style:
sentence case. The TAG has already been examined, leaving webaccess and webadmin
for evaluation. Used the most recent server build for testing, #3720.

Couldn't find any instances of incorrect casing in webaccess.

Similarly, in webadmin things are looking mostly fine execept for one instance
of incorrect casing found under Status/Licenses in the graphs, where one of the
legend labels states 'Available Licenses'.

Apart from this, there are a number of menu labels and application names with
incorrect casing that are unfortunately system defined. Furthermore, there is
the tl-disconnect application listed under Applications (manual) with incorrect
casing -- Disconnect ThinLinc Session -- as already mentioned in comment 15.
Comment 23 Tobias cendio 2024-10-08 12:52:03 CEST
The issue concerning license graphs as described in comment 21 has been resolved. Confirmed using server build #3724.

With this fix in place, the TAG, webaccess, and webadmin, have been examined and should display only sentence casing.

The remainder of places to fix are listed in the Acceptance Criteria.
Comment 24 Tobias cendio 2024-10-08 13:55:45 CEST
(In reply to Tobias from comment #23)

Note that the TAG webadm screenshots have not been updated and are still displaying the old title casing. A total of two screenshots appears to be in need of updating. 

None such case could be found for webaccess.
Comment 28 Samuel Mannehed cendio 2024-10-11 08:26:38 CEST
The two new screenshots from jenkins build 3730 look good. They are sharp and do indeed have proper sentence case.

Not resolving this bug since a number of areas remain - comment 20.
Comment 33 Emelie cendio 2024-10-29 16:32:29 CET
As for now, sentence casing has been fixed in ctc folders doc/, webaccess/, tladm/, vsm/ and tlmisc/.

Places left to fix sentence casing:
 - native client
 - client installer on Windows (and customizer)
 - client installer on Mac
 - nearest printer
 - thinlocal printer
 - server installer and tl-setup
 - sound redirection (sink name)
Comment 34 Tobias cendio 2024-10-29 17:24:29 CET
(In reply to Emelie from comment #33)

Found a potentially missed case in vsm/tl-session.c: "unable to remove %s: %s\n"
Comment 36 Samuel Mannehed cendio 2024-10-29 22:49:36 CET
(In reply to Tobias from comment #34)
> (In reply to Emelie from comment #33)
> 
> Found a potentially missed case in vsm/tl-session.c: "unable to remove %s:
> %s\n"

Good eye, fixed in r41287.
Comment 41 Madeleine cendio 2024-11-04 15:47:05 CET
Relating to comment 39, a pull request to the TigerVNC project https://github.com/TigerVNC/tigervnc/pull/1865 . Compared to commit r41294 in comment 39, this pull request includes more changes. We have decided to wait with bringing these changes to ThinLinc due to a large code diff.

Places left to fix sentence casing:
 - client installer on Windows (and customizer)
 - client installer on Mac
 - nearest printer
 - thinlocal printer
 - server installer and tl-setup
 - sound redirection (sink name)
Comment 42 Pierre Ossman cendio 2024-11-04 15:55:02 CET
(In reply to Pierre Ossman from comment #5)
> 
> Mozilla also uses Title Case in Firefox and Thunderbird in a manner similar
> to GNOME:
> 
> https://design.firefox.com/photon/copy/capitalization.html
> 

Mozilla has since changed direction and now prefer sentence case:

https://acorn.firefox.com/latest/content/capitalization-4nEWdMUM

They still have a bunch of exceptions, though.
Comment 45 Alexander Zeijlon cendio 2024-11-06 10:36:53 CET
I have looked through the commits that update strings to sentence case in ctc/vsm and ctc/tlmisc. Looks good!

Also found a few missed instances that have now been fixed.
Comment 49 Linn cendio 2024-11-06 17:42:55 CET
Did a grep and found some additional places in the client where we might want to swap to sentence case as part of this bug.

grep used (excluding non-ThinLinc projects and po-files):
> cd client
> git grep "['\"].*[A-Z].*\s[A-Z]" ':!opensc' ':!openssh' ':!pcsctun' ':!poppler' ':!pulseaudio' ':!sercd' ':!unfs3' ':!*po' ':!oncrpc-ms' ':!tlclient/neon'
Files I found:
* Makefile
* installer/customizer.nsi.in
* installer/thinlinc-client.nsi.in
* macos/ThinLinc/README
* metainfo/print_microsoft_store_texts.py
* thinlinc-client-mime.xml
* tlclient/OSXsupport.mm

Changes that affect file names or paths should be changed with caution, since that might require backwards compatibility. Since we want to remove the "client" suffix in the future (bug 7937), paths will have to be updated then anyway. If we run into issues, it can be postponed until that bug.

Luckily, paths might be case insensitive on Linux and Windows. Unclear what the case is on macOS.
Comment 50 Linn cendio 2024-11-08 11:02:10 CET
We looked into the remaining changes for the client (from comment 49) and the common themes were:

* General
  - PulseAudio app id
  - tlclient mime-type
* Description for RPM-file
* Windows
  - Install path for client and client customizer
  - Case of some files (e.g. Read Me)
  - Screenshots for Microsoft store
* macOS
  - Client app name
  - Path name
Comment 53 Linn cendio 2024-11-11 10:09:09 CET
From comment 50, we ended up doing the changes under General, as well as the changes for Windows and Linux. Below is a summary of what was tested.

General
-------
* Sounds redirection works on Linux, Windows and macOS for both sound output and microphone input.

* Tlclient files shows the correct mime-type information in the tooltip and when showing file properties. 
  - Note that on Windows 11 and RHEL 9 the human readable format is used, "ThinLinc client configuration"
  - On macOS and Ubuntu 24.04, the less readable format "application/vnd.cendio.thinlinc.clientconf" is used. This is not a regression, as the issue is also seen in 4.17.0 (bug 8444).

Linux
-----
* Descriptions for RPM and DEB files has been updated. Note that DEB files only uses the first line of the description. This is not a regression, and a bug for this will be created.

Windows
-------
* Windows installer and uninstaller is looking good for both native client and client customizer
  - Note: Both file paths and keys in the register is case insensitive, so we got no duplicate folders or registry keys when testing even if the letter case differed.
  - ThinLinc client and ThinLinc client customizer now only uses sentence case. Note that the wizards as a whole still contains title case for some words. However, these words seems to be built in by the wizard, so we stopped at a "best effort" including only what we had direct control over. 
  - The install path is shown as sentence case if the folder does not exist. If the folder does exist in Title case, the path will be shown in Title case.

macOS
-----
* No additional changes were made for macOS. We tested updating the application name from "ThinLinc Client.app" to "ThinLinc client.app". However, when installing the new app, the following message was shown:
> You can’t copy some of these items because their names are the same as other 
> items on the destination volume, and that volume doesn’t distinguish between 
> upper- and lowercase letters in filenames. Do you want to skip these items and 
> continue copying the other items?
> 
> Options: Stop, Skip
Because of this, there is a high risk that end users will have issue installing the new application. Also note that the two options given both cancels the actions - there is no "Continue" option. Due to this issue, the macOS change is postponed until bug 7937.
Comment 54 Linn cendio 2024-11-11 10:12:12 CET
Themes not mentioned in comment 50 that remains to be tested in verify:

* Windows ssh, nonguisetup
  - run the client installer in a non-GUI setup, e.g. via ssh

* HP ThinPro - manticore
  - Check that the "ThinLinc connection manager" has the correct case.
Comment 55 Linn cendio 2024-11-11 10:25:45 CET
(In reply to Linn from comment #53)
> From comment 50, we ended up doing the changes under General, as well as the
> changes for Windows and Linux. Below is a summary of what was tested.
> ...
> Linux
> -----
> * Descriptions for RPM and DEB files has been updated. Note that DEB files
> only uses the first line of the description. This is not a regression, and a
> bug for this will be created.
Added bug 8445.
Comment 56 Linn cendio 2024-11-11 13:42:39 CET
I was too quick to change this bug to resolved.

The parts for the client and client installer are ready for testing, but there still remain other parts before this bug is fully done. Reopening.
Comment 58 Tobias cendio 2024-11-12 17:29:19 CET
Tested this using client build #3688 on Windows11, HP ThinPro, and
Fedora40.

Went through the recent casing changes for the native client and
installers from commits r41318 r41319. The code changes look perfectly
fine and I could not find any additional offending cases in the code,
save for one minor exception in the Windows customizer README title --
this fix is imminent, though.

Ran the installers (including Windows customizer) and the native
clients, while checking for offending cases: none were found. However,
as pointed out in comment #53, the Windows wizard insists on certain
title casing, and as further explained in said comment, it does not seem
to be worth the hassle to suppress these.

Comment #54 lists two corners of the product which warranted double
checking that the changes take proper effect. I tested silent install on
Windows (including customizer) and things are working as
intended. Furthermore, the HP ThinPro changes appear to take proper
effect in the ThinPro registry and the client is fully functional, able
to connect to a ThinLinc server without issues.

In the product overall, there seems to be some inconsistencies in how we
case log messages. The different forms we find are

• "ERROR: This failed" (e.g. tl-setup/tl-setup.py)
• "Error: This failed" (e.g. tlclient/tlclient_session.cc)
• "Error: this failed" (e.g. tlclient/tlclient_util.cc)

Note that the literal messages here are mere examples. There might be
instances of complete lowercase, although none were found in a cursory
search.

The components targeted in this bug, however, are primarily aimed
towards the end users, and logging almost exclusively affects
administrators. By virtue of that, it's probably better to open up a new
bug on the subject.

From the acceptance criteria, the two points

✅ native client
✅ client installer on Windows (and customizer)

can be considered done at this point, while the point

• client installer on Mac

awaits bug 7937.
Comment 59 Linn cendio 2024-11-13 09:16:59 CET
As a summary, these are the places with remaining sentence case:

 - client installer on Mac [*]
 - nearest printer
 - thinlocal printer
 - server installer and tl-setup

[*]: Will not be fixed as part of this bug due to the issues seen on macos in comment 53. Instead, the renaming on macOS will be addressed when we get around to bug 7937.
Comment 63 Alexander Zeijlon cendio 2024-11-14 11:20:42 CET
I looked at the changes made in release-notes, nothing to add here, looks good!
Comment 69 Alexander Zeijlon cendio 2024-11-15 10:31:04 CET
Our installer, both graphical- and text-fallback-variant, now uses sentence case.
Comment 75 Emelie cendio 2024-11-19 12:39:47 CET
Sentence case in ctc/installer looks good!

Found a few missed instances that have now been fixed.
Comment 77 Linn cendio 2024-11-21 09:21:58 CET
For the printer module, it was decided to leave log message prefixes "ERROR", "WARNING" and "INFO" as caps due to CUPS giving different formatting and priority for some sentence case prefixes.

See bug 8447 comment 2 for additional details.
Comment 78 Linn cendio 2024-11-21 09:24:13 CET
With that, the remaining acceptance criteria should all have been fixed:

 ✓ nearest printer
 ✓ thinlocal printer
 ✓ server installer and tl-setup

Marking as resolved :)
Comment 84 Linn cendio 2024-11-26 10:26:34 CET
As a bonus for the printer code, we now use wrappers for log messages intended for CUPS. With that, the printer module can be considered fully done for this bug.
Comment 85 Pierre Ossman cendio 2024-11-26 15:59:11 CET
I can find a lot of :guilabel: references in the TAG that have not been updated.
Comment 86 Pierre Ossman cendio 2024-11-26 16:45:38 CET
Client screenshots in the TAG are also not updated.
Comment 92 Pierre Ossman cendio 2024-11-28 09:39:46 CET
I've now gone through the entire tree, and couldn't see anything else that was overlooked.
Comment 110 Pierre Ossman cendio 2024-12-02 10:49:23 CET
Tested thinlocal and nearest, and I can see that CUPS correctly picks up on the logging:

> W [02/Dec/2024:09:46:54 +0000] [Job 8] Could not set locale, got locale.Error: unsupported locale setting
> E [02/Dec/2024:09:46:55 +0000] [Job 8] This terminal (E0:BE:03:9D:0F:27) was not found in configuration!
> E [02/Dec/2024:09:46:55 +0000] [Job 8] No near printers for terminal (E0:BE:03:9D:0F:27) in configuration! Deleting job
> W [02/Dec/2024:09:47:52 +0000] [Job 9] Could not set locale, got locale.Error: unsupported locale setting

Note the different log levels in the first character.
Comment 111 Pierre Ossman cendio 2024-12-02 11:05:07 CET
Also did basic functionality test of nearest and thinlocal. Was able to get a print job through both.
Comment 114 Pierre Ossman cendio 2024-12-02 15:59:54 CET
I checked the latest rounds of updates to the TAG, and everything looks good to me.
Comment 116 Pierre Ossman cendio 2024-12-04 09:28:36 CET
The new screenshots for the client all look good.

Also checked the other images for the TAG, and could not find any text that was overlooked.

Note You need to log in before you can comment on or make changes to this bug.