今天想說重新 review 一次目前所學的 Django 內容 就新開了一個資料夾並且從頭來過 一模一樣的重建一次藉此來複習並熟練
結果在 migrate
的階段噴出錯誤說找不到 zh-TW
OSError: No translation files found for default language zh-TW.
我立刻打開 settings.py
看了看感覺我的設置沒甚麼錯誤阿
LANGUAGE_CODE = 'zh-TW'
TIME_ZONE = 'Asia/Taipei'
傻傻的我還跑去更新也沒用
python -m pip install --upgrade pip
pip install --upgrade django
傻傻的我又跑去亂猜 zh-tw
zh_tw
zh_TW
也沒用
看來真的必須面對問題,認真google一下
發現大部份老舊的文章都是使用 zh-TW
但為什麼現在不行了呢?!
後來在老舊的文章底下發現有"最近"的使用者留言說要改用 zh-Hant
雖然到此已經得到最終正確解答了,但好奇心使然,想要先理解原因之後,才會繼續動下去!
繼續從 Django Document 追有關 LANGUAGE_CODE
的資訊並找到了
Settings|Django
進去看到 list of language identifiers
想說太棒了有清單!!
馬上 Ctrl+F 找 zh-TW
一下就成功找到了
咦? 奇怪了...明明在清單中 zh-TW
沒有被砍掉阿,那怎麼噴錯誤訊息說找不到呢?
無奈看來只能認真慢慢看英文在講甚麼了
還好看沒多久就了解到以前使用的 zh-TW
其實分成兩段意義
前段的 zh
是語系,由 ISO 639 訂定
後段的 TW
是國家,由 ISO 3166 訂定
還有一些較特別的4個字節如 zh-Hant
代表中文-漢繁體,由 ISO 15924 訂定
經由 ISO 後面接的數字可想而知,國際制定的標準日益更新
所以 zh-TW
在新版 Django 已經 deprecated 了
最後看了看維基上的 ISO 15924 了解到以前是使用「語系」與「國家」來分類 但現在使用更好的分類方式是「語系」與「書寫方式」
code | Remark |
---|---|
Hira |
平假名 |
Kana |
片假名 |
Hrkt |
日文假名(平假名+片假名) |
Jpan |
日文(漢字+平假名+片假名) |
Hani |
漢字 |
Hans |
簡體漢字 |
Hant |
繁體漢字 |
PS:migrate
終於過了! 當下真是滿滿的成就感阿!
no pain no gain
you saved me🙇♂️🙇♂️🙇♂️