The middle truncation is really useful for long path names that will all share the same prefix. Think about things like files names or disk names that are required to display the full path name. If out truncate the end, all of the name strings will be identical at a glance. Middle truncation allows you to see what's different, which is usually at the end of the long string.
I would expect that there are some standard algorithms out there for doing this. End truncation is likely to be the default choice, but I think we need both.
That's great information, this is the first time I heard about truncation in the middle of the word.
This is great, Liz. I think that your proposed text will add a lot of clarity to the choice between these two methods. Will look forward to seeing some examples of truncated names and we can evaluate further.
I've been thinking about truncation a bit and was looking into some UX standards on the topic. It's all very much in line with the examples that Greg and Ju have given. What do you all think about extending the PatternFly "Truncation" section on the Terminology and Wording page  to include something like the following...
"Using an ellipsis to truncate a long string is recommended. There are two different methods that could be applied. One is to truncate at the end of the string "abcdef..." and the other would be to truncate in the middle of the string "abc...ghi". Choose the method on the basis of whether text at the end or in the middle of the string is more likely to differentiate the item. This would be dependent on the domain. On a property website, for instance, an address string will usually end 'Road' or 'Street'. So the form 'abc...def' won't be much use as the final characters will almost always be 'oad' or 'eet', neither of which help the user. If the answer is not clear, default to the 'abcdef...' form over 'abc...ghi'. Partial words will most likely be easier to guess from the initial characters than the end ones. 'Openi...' is much more recognizable than '...ening', for example."
I'd also like to add in a statement where we suggest the use of the tool tip on hover to view the entire string.
I'm working on some specific use cases with the Storage product and we definitely are seeing the need for both methods. More commonly, we will be using method 1 for things like Cluster Name and Pool Name, but we are considering method two for things like Hostname where the end characters are important in differentiating the items in the list.
This generally works for most names except I've found in certain contexts from previous experience that truncating in the front made more sense, e.g. "...xyz" for MAC Addresses and SAN nicknames as it was less useful doing it as "xyz..." since the beginning portion was repeated a lot and didn't help so much with uniquely identifying the object.
An interesting consideration is if there is a need for truncation of an IPv6 addresses, how do we tackle this. I know IPv6 already includes truncation in the spec, but there are going to be circumstances where we may need to go beyond this. Thoughts?
This gets tricky when you have machine names in your listings!
^ Either way you truncate that "column", someone's going to lose some important info, and looking through the column will be frustrating for the users.
In oVirt, we take the simple approach and truncate at the end. And, in most places where there is truncation, hovering over the truncated string shows you (via tooltip) the entire string:
My recommendation for PatternFly: recommend / default to end truncation with "...". I like the hover-show-full-name feature -- that's something UX people should discuss re: if it should exist and what it would look like. (We use PF tooltips, but I could see other widgets being useful.)
I am currently working on the Tendrl storage console project and need to come up with some guidance on how to truncate long names that may appear in our UI. I'm thinking of things like hostnames, disk names, and other types of objects that may take on a potentially long path name based on user naming. PatternFly currently provides some general guidance, but no specific rules.
I'm curious how you are handling this on other projects as I know it's a common problem. Do you truncate in the middle of the string, the end of the string, or have another method?