1

Why language code changed by itself?
 

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

In settings.py, I have

LANGUAGE_CODE = 'zh-TW'
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'?

To enter a block of code:

  • enter empty line after your previous text
  • paste or type the code
  • select the code and press the button above
Preview: (hide)
AaronHuang's avatar
113
AaronHuang
asked 8 years ago, updated 8 years ago

Comments

@AaronHuang what was the solution?

Evgeny's avatar Evgeny (8 years ago)

First, I set `LANGUAGE_CODE = 'zh-tw'` and `LANGUAGES = (('zh-tw', 'Chinese'),)` in `settings.py`. 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 (8 years ago)
see more comments

1 Answer

2

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.

To enter a block of code:

  • enter empty line after your previous text
  • paste or type the code
  • select the code and press the button above
Preview: (hide)
gopalraha's avatar
332
gopalraha
answered 8 years ago
link

Comments

see more comments