vemonet / EmojiMart

🏪 Modern emoji picker popup for desktop, based on Emoji Mart, built with Tauri and Svelte
MIT License
65 stars 1 forks source link

💡 Add kamoji #14

Open JassonCordones opened 2 months ago

JassonCordones commented 2 months ago

Describe the feature

Enhance the emoji keyboard by integrating a wide range of kaomoji (Japanese emoticons) to provide users with more expressive text options. Kaomoji are popular text-based emoticons that convey emotions and expressions using Japanese characters and punctuation. Adding kaomoji support to the emoji keyboard would allow users to easily insert these expressive symbols into their text, similar to how they currently use emojis. This would cater to a broader audience, particularly those who prefer or are familiar with kaomoji.

An idea of implementation

  1. Happy: (^▽^) / (´。• ᵕ •。`)
  2. Sad: (︶︹︺) / (╥_╥)
  3. Surprised: (⊙_☉) / (°o°)
  4. Angry: (¬_¬) / (ಠ_ಠ)
  5. Winking: (^ω^) / ( ͡~ ͜ʖ ͡°)
  6. Crying: (T_T) / (;´༎ຶД༎ຶ`)
  7. Love: (♡˙︶˙♡) / (♥‿♥)
  8. Confused: (⊙.☉) / (¬_¬)
  9. Shrug: ¯(ツ)
  10. Sleepy: (-_-) zzz / (︶︹︺)
vemonet commented 2 months ago

Thanks for the suggestion @JassonCordones, I don't have much time to work on this but that could be interesting, and would be happy to help with if someone want to do it

Note that right now we are using this web component to handle the emojis: https://github.com/missive/emoji-mart So ideally the solution should work well with this component (the best would be to directly add a kaomoji section to this upstream package if they are interested)

Behind the emojis are pulled from official sources and put inside a JSON file: https://github.com/vemonet/EmojiMart/blob/main/src/data/en.json

We have a script to translate all labels and keywords of emoji from the upstream emoji-mart package in various languages: https://github.com/vemonet/EmojiMart/blob/main/resources/internationalize.js

We could for example add a part in the internationalize.js script that adds a category for kaomojis, and pull them from a structured source (with translation in all 22 languages currently supported ideally)