Ask Your Question

Why language code changed by itself?

asked 2016-12-25 18:56:54 -0500

AaronHuang's avatar

updated 2016-12-25 19:23:02 -0500

Someday I found that I cann't voteup for somebody. Although the upvote sign turned green, but his karma doesn't go up.

In, I have

LANGUAGES = (('zh-TW', 'Chinese'),)

And I found that in the database, the repute table's language code changed by it self to lowercase after some day.

image description

Does anyone know how to fix this?
Why it set the language_code to 'zh-tw' for my language_code is 'zh-TW'?

edit retag flag offensive close merge delete


@AaronHuang what was the solution?

Evgeny's avatar Evgeny  ( 2017-03-02 14:53:09 -0500 )edit

First, I set `LANGUAGE_CODE = 'zh-tw'` and `LANGUAGES = (('zh-tw', 'Chinese'),)` in ``. And then, I change the existing `zh-TW` language code in the database table (`repute`, `askbot_post`, `askbot_thread`) to `zh-tw`. It seems to solve the problem.

AaronHuang's avatar AaronHuang  ( 2017-03-02 23:18:14 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2017-02-24 11:31:50 -0500

gopalraha's avatar

This is a strange thing.

But According to Django:

zh_TW is a Locale Name: The language part is always in lower case and the country part in upper case. The separator is an underscore.

zh-tw is a Language Codes: It is generally represented in lower case, but the HTTP Accept-Language header is case-insensitive. The separator is a dash.

It is better to user those codes with all lower case (eg. zh-tw)

more info is available at Official Django Documentation.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools



Asked: 2016-12-25 18:56:54 -0500

Seen: 2,344 times

Last updated: Feb 24 '17