開始為 Weblate 貢獻代碼

要理解 Weblate 源代碼,請查看 Weblate 源代碼Weblate 前端Weblate 內部

Starting with the codebase

要讓你自己熟悉 Weblate 代碼庫,那麼請查看標記為 good first issue 的那些 bug。

本地運行 Weblate

開始 Weblate 開發的最舒適的方法是按照 Installing from sources。它將給您一個帶有可編輯的 Weblate 源代碼的虛擬環境。

  1. Clone the Weblate source code:

    git clone https://github.com/WeblateOrg/weblate.git
    cd weblate
    
  2. Create a virtualenv:

    virtualenv .venv
    .venv/bin/activate
    
  3. 安裝 Weblate(這需要一些系統依賴,見 Installing from sources):

    pip install -e .
    
  1. 安裝用於開發的所有依賴性:

    pip install -r requirements-dev.txt
    
  2. Start a development server:

    weblate runserver
    
  3. 取決於配置,你也許想啟動 Celery workers:

    ./weblate/examples/celery start
    
  4. 要運行測試 (更多細節見 本地測試):

    . scripts/test-database
    ./manage.py test
    

在 Docker 中本地運行 Weblate

如果你已經安裝了 Docker 和 Docker -compose,你就可以啟動開發環境,只需運行:

./rundev.sh

它將新建 Docker 影響並啟動它。 Weblate 運行在 <http://127.0.0.1:8080/> 上,並且你可以以 admin 為用戶名, admin 為密碼來登錄。新的安裝是空的,所以您會想要以 添加翻譯項目和組件 來繼續。

對此,Dockerfiledocker-compose.yml 位於本地的 dev-docker 目錄中。

The script also accepts some parameters, to execute tests, run it with the test parameter and then specify any test parameters, for example running only tests in the weblate.machine module:

./rundev.sh test --failfast weblate.machine

備註

小心在運行測試前您的 Docker 容易活動並運行。您可以通過運行 docker ps 命令來檢查。

To display the logs:

./rundev.sh logs

為了停止後台容器,運行:

./rundev.sh stop

運行沒有任何參數的腳本將重建 Docker 容器並重啟動它。

備註

這不是用於生產的合適設置,因它包括幾個不安全的小技巧,但它們會使開發更容易。

Bootstrapping your devel instance

您會想要使用 import_demo 來新建演示翻譯,並且使用 createadmin 來創建一名管理用戶。

使用 PyCharm 為 Weblate 編寫代碼

PyCharm 是 Python 的著名 IDE,這裡有一些幫助你在其中建立你的 Weblate 項目的指南。

考慮到你剛剛將 GitHub 存儲庫複製到一個文件夾中,只需使用 PyCharm 打開它。一旦 IDE 打開,第一步要做的是指定你想要使用的解釋器:

../_images/pycharm-1.png

可以或者選擇讓 PyCharm 為您創建 virtualenv(虛擬環境),或者選擇已經存在的:

../_images/pycharm-2.png

一旦設置了解釋程序不要忘記安裝依賴:要么通過控制台(IDE的控制台默認情況下會直接使用你的 virtualenv),或者當你得到一個關於缺少依賴項的警告時通過接口。

第二步是設置正確的信息來在 PyCharm 中原生使用 Django:理念是能夠立即觸發 IDE 中的單元測試。為此,你需要指定該 Django 項目的根路徑及其設置路徑:

../_images/pycharm-3.png

要小心,Django project root`(Dejango 項目的根)是代碼庫的實際根目錄,而不是 Weblate 子目錄。關於設置,你可以使用來自代碼庫的 :file:`weblate/settings_test.py,你也可以創建自己的設置並在那裡設置它。

最後一步是運行服務器,並將斷點放置在代碼中而能夠調試它。這通過新建新的 Django Server 配置來完成:

../_images/pycharm-4.png ../_images/pycharm-5.png

提示

小心被稱為 :guilabel:`No reload`的屬性:如果你修改文件,它會阻止服務器被實時重新加載。這允許保留現有的調試器斷點,而它們通常會在重新加載服務器時被丟棄。