Closed ksl1989 closed 4 years ago
Try to add a QQ, WeChat, Line or KakaoTalk handle to a contact.
How did you added those? Because we can add as many as we want, same as we did in #1512, but those needs to be understand by others clients (iOS, android...) :)
How did you added those?
Like I said, you can't add them through the frontend, but if you import a vCard with services that aren't on the list they'll still be displayed. This is the correct behaviour, clients should accept custom services as it's impossible to list all IM services in existence, and most clients have a custom option. The problem is NC Contacts only understands it if it is in the wrong format, with the service name as a TYPE
, but that's a different (and more important) issue: #1396.
but those needs to be understand by others clients (iOS, android...)
Any service name is valid, and clients should display any service as long as the format is right. E.g. IMPP:snapface:alice2020
is valid and should be displayed in clients even if they don't recognize a "snapface" service. This is what Contacts is doing also. You should just be careful to use the same service name as other clients, so you don't get repeated services. E.g. if Android is using gtalk
you should use the same, not googlet
.
iOS has skype
, msnim
(MSN Messenger), xmpp
(separated in the UI into GoogleTalk, Facebook and Jabber), aim
(separated in the UI into AIM and ICQ), ymsgr
(Yahoo! Messenger). It also has QQ and Gadu-Gadu under the x-apple
service name with custom labels.
Android only exports v. 2.1 vCards which doesn't support IMPP but it knows of AIM, MSN (labelled "Windows Live", Yahoo, Skype, QQ, Google Talk (labelled "Hangouts"), ICQ and Jabber. It also accepts custom service names. DAVx5 should know how to deal with this.
Clients should understand any correctly formatted IMPP line, you just have to be careful not to make a new name for services that are more or less standardized, for the others you can use any name that is recognizable. Right now the Contacts frontend already has Telegram and KiK, which aren't listed in Android or iOS but this should be fine.
@ksl1989 do you want to submit a pull request to add the missing services? :) I guess they just have to be added to the list at https://github.com/nextcloud/contacts/blob/a98247e946cbb091ffd24836f98ae2e79d6d6c52/src/models/rfcProps.js#L164-L180
Sure, that much I can do. But I'm just noting four popular services that are important for me. There may be other services that should be added, e.g. those that are by default on Android and iOS or other popular services. In the end you need to decide which ones you want selectable by default on Contacts. And it's ultimately more important to allow the user to add a custom services.
Should I just submit a PR for these four?
Another note: maybe you are already doing this but the names need to be translatable.
Should I just submit a PR for these four?
Yes please do! :) The 4 you mention are very popular so they should be in the list.
Another note: maybe you are already doing this but the names need to be translatable.
Good point – but this is something for a different issue and pull request, feel free to open one with more info like what it should be translated to, and in which languages or character sets translation is definitely needed (as e.g. brand names are usually not translated, but I assume this is about the alphabets, right?)
Yes please do! :) The 4 you mention are very popular so they should be in the list.
Done: #1559
Good point – but this is something for a different issue and pull request, feel free to open one with more info like what it should be translated to, and in which languages or character sets translation is definitely needed (as e.g. brand names are usually not translated, but I assume this is about the alphabets, right?)
You're right, this is a different issue but it is related because I'm adding Asian IMs that I know have different names in their countries of origin. That's why I thought I should mention it here.
For some languages it is an issue of transliteration to different alphabets or writing systems, but for non-alphabetic writing systems, like Chinese, the name can be quite different, not just a transliteration. E.g. "WeChat" is an English name for the Chinese app known in Chinese as 微信 Wēixìn, lit. "Micro Message", it's not a transliteration. Western brands can also have very different Chinese names. A Chinese user will expect to see 微信 in that drop-down menu.
This is not an issue of character sets, but languages. And I only know a couple languages, I can't tell you all languages in which names need to be translated. Translators will know if they should retain the English name or transliterate/translate it.
To enable translations, feel free to change the syntax of the options there from
{ id: 'QQ', name: 'QQ' },
to
{ id: 'QQ', name: t('contacts', 'QQ') },
This will make this string available for translations on transifex after this pr is merged (maybe to it in a separate pr?)
OK, I guess I can do that, but first let's just get these services added.
@ksl1989 your pull request #1559 is merged – congratulations! :) If you like, you can submit another pull request with the localization.
Describe the bug
While SIP numbers have been added recently (#1511) the app is still missing support for several of the popular IM services, including QQ and WeChat (the most popular in China and probably the World), KakaoTalk (most popular in Korea) and Line (most popular in Japan). Unlike other clients (such as Android and iOS) it also does not let the user set a custom service which would somewhat make up for the missing entries.
To Reproduce Try to add a QQ, WeChat, Line or KakaoTalk handle to a contact.
Expected behavior At least the most popular services should be found in the drop-down menu. Less common services can be added by selecting "custom".
Actual behavior IM services not available, no way to add a service not on the list.
Note that adding a vCard with IM services not on the list will work correctly, although only when using the invalid property format that NC Contacts is currently using (see #1396); but this can't be done through the app fronted. E.g.:
Will be displayed as: