Natural

           

          Django 國際化

          Django 1.5
          Python 2.7.3

              國際化支持,網(wǎng)上一搜詳細的例子很多。本以為是一個簡單的case,結(jié)果折騰了好幾個小時卻百撕不得騎姐!!最終去翻看官方教程,總算找到解決方案。

              簡單說下如何國際化支持(以中文國際化為例):(詳情參閱:http://djangobook.py3k.cn/2.0/chapter19/)

              對 Django 中 Python 代碼進行國際化主要用到 ugettext(),gettext_noop(),gettext_lazy() 和 ungettext() 等函數(shù);模板中則使用trans、blocktrans標簽。

          國際化步驟:
              1.在你的App 目錄下創(chuàng)建 locale 目錄,并運行“django-admin.py makemessages -l zh_CN”產(chǎn)生 locale/zh_CN/LC_MESSAGES/django.po 文件。它會自動搜索目錄下所有需要國際化的內(nèi)容,生成一個清單文件(django.po),然后打開該文件,加上對應(yīng)的中文翻譯即可。
              2.運行“django-admin.py compilemessages”命令,生成一個django.mo文件,這是真正在運行時所調(diào)用的。

          按照教程所說,django運行時會根據(jù)算法自動找到該文件,然而遇到的問題是它沒有被找到。顯示的依然是默認的英文。
          Django使用以下算法尋找翻譯:

              首先,Django在該視圖所在的應(yīng)用程序文件夾中尋找 locale 目錄。 若找到所選語言的翻譯,則加載該翻譯。

              第二步,Django在項目目錄中尋找 locale 目錄。 若找到翻譯,則加載該翻譯。

              最后,Django使用 django
          /conf/locale 目錄中的基本翻譯。
          估計這個問題與我的項目的目錄結(jié)構(gòu)有關(guān),app沒有直接在項目的根目錄下,而是中間多了一個目錄apps。(感興趣的可參考一下:django最佳實踐:項目布局
          翻看了下官方文擋,總算找到了解決辦法:
          在項目的settings.py配置文件中,添加LOCALE_PATHS變量,把locale目錄添加到其中(官方鏈接)。
          LOCALE_PATHS = (
              
          '/home/www/project/common_files/locale',
              
          '/var/local/translations/locale'
          )

          在django1.5下,國際化默認是支持的,并不需要像各教程所說那樣在配置文件中添加相應(yīng)的中間件(默認已經(jīng)加上了)。如果你發(fā)現(xiàn)你的國際化資源文件沒有被載入,那就去上面這個變量中添加locale路徑吧。

          posted on 2013-05-10 16:24 此號已被刪 閱讀(630) 評論(0)  編輯  收藏 所屬分類: Python

          導航

          統(tǒng)計

          常用鏈接

          留言簿(8)

          隨筆分類(83)

          隨筆檔案(78)

          文章檔案(2)

          相冊

          收藏夾(7)

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 藁城市| 平泉县| 泸州市| 临泉县| 固安县| 浦北县| 彭阳县| 高阳县| 勐海县| 临夏县| 辽宁省| 孟津县| 文登市| 博爱县| 阆中市| 临漳县| 宜川县| 大名县| 左贡县| 蓬安县| 永泰县| 二手房| 长寿区| 嘉荫县| 曲松县| 柳林县| 全州县| 左权县| 湄潭县| 昌黎县| 聊城市| 彭阳县| 天长市| 永城市| 富宁县| 仲巴县| 昂仁县| 咸阳市| 兴仁县| 伊吾县| 峨眉山市|