-
Notifications
You must be signed in to change notification settings - Fork 150
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow usernames with non-English characters #2140
Comments
(by franku) "... Unicode characters have always been accepted when using Python 3. Django 1.10 officially added Unicode support in usernames, keeping the ASCII-only behavior on Python 2." See: https://docs.djangoproject.com/en/1.11/ref/contrib/auth/#django.contrib.auth.models.User.username So the switch to python 3 will accept a wide range of additional characters. Tested 'ß' in usernames, also polish characters in the python3 branch. But we need to change the database encoding to fully support unicode (e.g. chinese characters), which means the length of text columns shrinks and thus there is a possibility to loose some of text in old entries. So this has to be done carefully. |
(by stonerl) Here is a list of things to do first:
We must be sure that usernames are accessible by others; for wispering, warning & kicking. Otherwise, a user could just choose a name that other can't type and non of the above mentioned would be possible. That's why I'm currently limiting the possible characters for usernames in widelands. Enabling this will be much work. We should also make sure that we do not enable support for this on the website without having the code in widelands in place. |
(by franku)
FYI: django's default is to permit spaces in usernames. |
(by franku) |
(by stonerl) |
(by gunchleoc) It would also be really cool if we had a team chat in-game. So, start this project with a redesign of the chat UI? |
(by stonerl)
I guess... :) |
(by gunchleoc) |
@frankystone Could our Django handle this now? I don't expect this to happen for Build 21, but it would be nice to know. |
Django should be able to handle this. The problem is the Database encoding. The Database uses the encoding utf8 (mysql specific), which stores up to 3 bytes for a character. To support all possible unicode code points, we have to convert the columns in the database to use the encoding utf8mb4 (mysql specific), which uses up to 4 bytes for a character. Characters which uses more than 3 bytes are all below the Basic Multilingual Plane ('0 BMP'), see https://en.wikipedia.org/wiki/Unicode_block. These are e.g. emojis and Caucasian Albanian. May some diacritical signs uses also more than 4 bytes. |
We currently only allow a subset of ASCII in usernames. It would be nice if speakers of languages other than English were more free in their choice, e.g. allow them to add äßé or a Username in Cyrillic or Chinese script.
See also the website bug 1784693 "Using Unicode literals cause a server error"
Imported from Launchpad using lp2gh.
The text was updated successfully, but these errors were encountered: