I think String-truncating algorithm is quite important. Because some words will have a totally different meaning when you accidentally precise in removing the trailing letters.
I think this could be the best example of when things go wrong. I saw it on my LinkedIn page:
Names are hidden to protect the innocent(s) 😀
A simple check to the truncated string, whether it ends with a face-blushing word or not, should be sufficient.
a WordPress rating system