Ticket #2754 (new enhancement)

Opened 2 years ago

Last modified 5 months ago

Emoticons : clever ways to render or not

Reported by: Grenshad Owned by: js
Priority: normal Milestone: 0.13
Component: chat Version:
Severity: normal Keywords: discussed
Cc: OS: All

Description

Emoticons usually comes with many boring unintended render problems (in many pieces of software).

To be clear, we need to remember the initial way of emoticons. Emoticons are ascii characters draws with the keyboard to represent feelings. But now emoticons are also images which replace the ascci chains that are detected as emoticons.

Somes messaging systems are very bad way to detect emoticons, for example the msn way which is like this : "Hello, look at my funny emoticon : BigLOL547r_Es5 it's nice isn't it", where BigLOL547r_Es5 means an emoticon image. Very bad way cause people who don't use same software see the alphanumeric chain instead of the emoticon image. Bad way cause remember chain like BigLOL547r_Es5 to type all with keyboard is not humanly possible (or you're a bot :p). Very bad way cause this way request from you for making emoticons to leave keyboard, take mouse, clic on a list of emoticons, choose the good one in a mess of other ones, back to your keyboard and continue your message : very heavy and boring way which request lots of time and actions.

Another way is used on bulletins board, like this one "Hello, look at my funny emoticon : :bigfacewithteeth: it's nice isn't it", where :bigfacewithteeth: means an emoticon image. Good and bad way to me. Good cause if you don't use emoticon image feature you'll understand the chain because the words talk to you about the scene the image should render and because the : : before and after the chain let you see that it's not usual words but something about emoticons. Bad cause it's hard to type, many characters and not so easy to remember (even more if you're not an english born speaker). Possible improvement about this way should be to make autocompletion, i mean you start to type :bigfa[TAB key] and it complete to :bigfacewithteeth: (the way we actually do with contact name autocompletion in chatrooms). In this case, it's much easy to use, all with keyboard without having to remember long character chains.

The initial way stay a good way, but needs to be better in Gajim, that looks like : "Hello, look at my funny emoticon : :-D it's nice isn't it". People who don't use visual emoticons see the big smile, so it's good, but it should sometimes be better rendered/detected to improve this kind of text visuality. So emoticons detection should be case sensitive, to make people use the D for the smiling :-D instead of the d for :-d that doesn't look at all like a smile in text /novisual emoticon mode. Another thing to do may be to detecting noses. No joking, if you type something like 8) you'll seen a sunglasses emoticon, but if you're telling your contact something like : "Hello, wanna come with us to theater, i've got free places (i've got 8)" Gajim will display the sunglasses emoticon : bad. Detecting nose means 8) will stay 8), but 8-) will display the sunglasses emoticon. This improvement will take place with lots of other emoticons which actually sometimes render in wrong places.

Attachments

Change History

  Changed 2 years ago by patrys

I'd like emoticons to be emoticons. This means you can't add your own and you are limited to a set of widely used emoticon strings. I don't care if there are 30 or 10, just force them to be actual emoticons. Then let themes specify which emoticon corresponds to which image (again, no custom strings).

For the 8) problem I suggest to use bracket matching rather than require people to draw "noses."

  Changed 2 years ago by patrys

BTW: Google chat (the web-driven one on GMail) does a great job here (and the icons are great).

  Changed 2 years ago by junglecow

  • milestone changed from 0.11 to 0.12

Bracket matching doesn't help with "a) something, b) somethingelse", and other situations. Case sensitivity would, though, and case insensitivity doesn't make sense1 anyway, except in msn context.

I also propose to disable msn "emoticons" such as (B) (L) and so on (which aren't really emoticons at all), except when using an msn transport. They could be changed to :beer: and :heart: in non-msn chat for those who really want to use such emoticons in jabber. Yes, it would only work in Gajim for now, but who knows, it could set a trend. It is very unlikely to interfere with normal text, and other users can still understand what it means.

I also agree that requiring noses would be cleaner, but I think there will be a lot of complaints about it. So perhaps we could create an alternate emoticon set which implements this proposal, and leave the default one the default, for now.

Since special case handling for msn transports (and maybe others) needs changes in the code as well as the emoticons.py format, I'm changing milestone to 0.12.

PS. There's no way for Gajim to control what it sends when an user selects an emoticon from the menu. For example, smile is inserted as :), but tonguey is inserted as :-P (with nose). This should be taken into account when the data format is changed, as we may want to send a different one to msn contact as to jabber muc.

1: no pun intended

follow-up: ↓ 5   Changed 2 years ago by patrys

Emoticons are supposed to make what you type prettier, not to make you type some weird words out of context. I can't see how :beer: is a facial expression and it's out-of-context if English is not your main language. For example imagine a :beer: burried in the middle of some cyrillic or kana characters. This just does not seem natural.

This said, I'm one of the users who disable graphical emoticon counterparts in every apps they use. If you include GChat-like emoticons in Gajim, I might actually start to use them as they are both natural (as they are derived from the text they replace) and cute (slowly rotating to their side to show you the face expression).

in reply to: ↑ 4   Changed 2 years ago by junglecow

Replying to patrys:

Emoticons are supposed to make what you type prettier, not to make you type some weird words out of context.

Exactly, but it is breaking down in some fairly common cases and produces a wrong result.

I can't see how :beer: is a facial expression

Well, me neither, but we already have it: enable emoticons and try (b). Yes, that's bad, and you may thank Microsoft for this "standard". And (c) turns into a cup of coffee, so if you have a list of (a) (b) (c) you get a list of (a) [beer icon] [coffee icon].

and it's out-of-context if English is not your main language.

Well, you can't have everything. I think it's better than what we have now.

This said, I'm one of the users who disable graphical emoticon counterparts in every apps they use.

Cheater :-P No wonder you don't have problems with bad emoticon substitutions.

BTW, which GChat do you mean? There's a lot of things called GChat out there.

  Changed 17 months ago by roidelapluie

  • keywords discussed added
  • os set to All

  Changed 16 months ago by anonymous

In any case it might be a good idea to make it possible to have a ascii-art substitution for MSN-style emoticons where possible, e.g.: broken heart: </3 = (U) Rose: ----<--{@ = (F) Thumbs-up: d(_)b = (Y) Thumbs-down: q(-_-)q = (N) Drink: |--< = (D)

  Changed 16 months ago by anonymous

Lessons lernt: Always preview. This should look more readable:

broken heart:
    </3 = (U)
Rose:
    ----<--{@ = (F)
Thumbs-up:
    d(^_^)b = (Y) 
Thumbs-down:
    q(-_-)q = (N)
Drink:
    |--< = (D)

  Changed 8 months ago by steve-e

Bump. What are we gonna do about this one?

  Changed 8 months ago by anonymous

insensitivity: why not

removing MSN emots: Yes I would be happy to do that as soon as we have a plugin system to change :beer: to (b) when contact is a MSN user and vice versa

noses: I don't think it's a good idea. 99% of users uses :) instead of :-)

  Changed 8 months ago by asterix

It was me, sorry

  Changed 8 months ago by m_gol

MSN emots are the reason why now I use my own set of emoticons - it just makes me furious when all these listings: (b), b) etc. changes to pictures... I'd be very glad if You change this.

I also agree that emots like :beer: are a good idea. Much better than those "BigLOL547r_Es5"...

English is now a world-wide language, a lot of people knows at least some words and counting. We shouldn't be afraid of using those simple words to help making emoticons.

I vote for standard ones like ":-P", ":P" and simple words between ":".

  Changed 6 months ago by Jim++

  • milestone 0.12 deleted

  Changed 5 months ago by js

  • owner changed from asterix to js
  • milestone set to 0.13

For 0.13, I already planned to make emoticons Transport-dependant. And asked the author of the Pidgin emoticons which are Tango-style if we could steal them, so we have the emoticons consistent.

Add/Change #2754 (Emoticons : clever ways to render or not)

Author



Change Properties
<Author field>
Action
as new
as The resolution will be set. Next status will be 'closed'
to The owner will change. Next status will be 'new'
The owner will change to anonymous. Next status will be 'assigned'
 
Note: See TracTickets for help on using tickets.