版本控制整合

Weblate currently supports Git (with extended support for GitHub pull requests, GitLab merge requests, Gitea pull requests, Gerrit, Subversion and Bitbucket Server pull requests) and Mercurial as version control back-ends.

訪問存儲庫

WebLate必須訪問您要使用的VCS存儲庫。使用公開的存儲庫,您只需輸入正確的URL(例如 https://github.com/WeblateOrg/weblate.git ),但對於私人存儲庫或推送URL,設置更複雜並且需要驗證。

從託管的Weberate訪問存儲庫

對於託管的Web2,有一個專用推送用戶在Github,Bitbucket,Codeberg和Gitlab上註冊(帶有Username:Guilabel:“Webleate”,電子郵件“”託管“@ WebLate.org``和,名稱:Guilabel:Bublate Push用戶)。您需要將此用戶添加為協作者,並為存儲庫提供適當的權限(只讀對於克隆也可以,按下寫入)。根據服務和組織設置,這會立即發生,或者需要在Webleate方面確認。

:圭冊:Github上的“Webleate”用戶在五分鐘內自動接受邀請函。在其他服務可能需要手動處理,所以請耐心等待。

曾經:圭冊:“WebBlate”用戶已添加,您可以配置:ref:“組件 - repo`和:ref:component-push`使用ssh協議(例如``git@github.com:weblateorg / weberate.git`)。

SSH 倉儲

訪問私有倉儲的最常用方法是基於 SSH。授權公共 Weblate SSH 密鑰(請參閱 Weblate SSH 密鑰)以這種方式訪問上游倉儲。

警告

在 Github 上,每個密鑰只能用一次,見 GitHub repositories從託管的Weberate訪問存儲庫

Weblate 還會在首次連接時存儲主機密鑰指紋,並且在以後進行更改時將無法連接到主機(請參閱 驗證 SSH 主機密鑰)。

如需調整,請從 Weblate 管理介面進行:

_images/ssh-keys.png

Weblate SSH 密鑰

Weblate 公鑰對瀏覽 About 頁面的所有用戶可見。

管理員可以在管理界面登錄頁面的連接部分(從 SSH keys)生成或顯示 Weblate 當前使用的公共密鑰。

備註

相應的私有 SSH 密鑰當前無法使用密碼,因此請確保已受到良好的保護。

提示

對生成的私有 Weblate SSH 密鑰進行備份。

驗證 SSH 主機密鑰

Weblate 在第一次訪問時自動存儲SSH主機密鑰,並記住它們以備將來使用。

如果要在連接到倉儲之前對密鑰指紋進行驗證,請從管理界面的同一部分 :guilabel: 『 add host key 『 添加你要訪問的服務器的 SSH 主機密鑰。輸入您要訪問的主機名(例如 gitlab.com),然後按 Submit。驗證其指紋與您添加的服務器匹配。

帶指紋的添加鍵顯示在確認消息中:

_images/ssh-keys-added.png

GitHub repositories

可以訪問通過SSH(參見:ref:`SSH-REPOS),但在需要訪問多個存儲庫的情況下,您將在允許的SSH密鑰使用情況下擊中GitHub限制(因為每個鍵只能使用一次)。

如果:ref:`component-push_branch`未設置,則項目被叉,並通過叉子推出的變化。如果設置,則將更改推送到上游存儲庫和所選分支。

對於較小的部署,請使用HTTPS身份驗證使用個人訪問令牌和GitHub帳戶,參見“創建用於命令行使用”的訪問令牌。

對於更大的設置,通常更好地為Web2RETE創建專用用戶,將其分配它在Webleate中生成的公共SSH密鑰(請參閱:Ref:“WebLate-Ssh-key`)並授予您訪問要轉換的所有存儲庫的訪問權限。這種方法也用於託管的Weberate,有專門的:圭冊:“WebLate”用戶為此。

Weblate internal URLs

通過引用其放置在不同組件之間共享一個存儲庫設置,作為其他(鏈接)組件的“Web2:// Project / Component``”這種方式鏈接組件使用Main(參考)組件的VCS存儲庫配置。

警告

刪除主組件也會刪除鏈接組件。

如果在創建組件時,WebBlate會自動調整存儲庫URL,如果它找到具有匹配的存儲庫設置的組件。您可以在組件配置的最後一步中覆蓋這一點。

Reasons to use this:

  • 保存服務器上的磁盤空間,存儲庫僅存儲一次。

  • 使更新更快,只更新一個存儲庫。

  • 只有單一導出的存儲庫,具有WebLate翻譯(請參閱:ref:“Git-Exporter”)。

  • 某些附加元件可以在共享一個存儲庫的多個組件上運行,例如 匯併 Git 提交

HTTPS repositories

要訪問受保護的HTTPS存儲庫,請在URL中包含用戶名和密碼。別擔心,Webleate會在URL向用戶顯示URL時剝離此信息(如果允許查看存儲庫URL)。

例如,添加了具有身份驗證的GitHub URL可能看起來像:https:// user:your_access_token @ github.com / weblateorg / webbleate.git

備註

如果您的用戶名或密碼包含特殊字符,那麼必須是URL編碼的,例如``https://user%40example.com:%24password%23 @ bitbucket.org / …``。

Using proxy

如果需要使用代理服務器訪問HTTP / HTTPS VCS存儲庫,請配置VCS以使用它。

這可以使用“http_proxy``”,“https_proxy``和```````````````````````````````或者通過在VCS配置中執行它,例如:

git config --global http.proxy http://user:password@proxy.example.com:80

備註

代理設定需要在使用者使用 Weblate 下完成設定。(參閱: 文件系統權限)並設置 ``HOME=$DATA_DIR/home``(請參閱: DATA_DIR),否則 Weblate 將無法透過 Git 執行它。

Git

提示

Weblate needs Git 2.12 or newer.

也參考

請參閱:ref:“VCS-REPOS”用於如何訪問不同類型的存儲庫的信息。

Git 使用強制推送

這表現得比很像Git本身,唯一的區別是它總是強制推動。這僅在使用單獨的存儲庫進行翻譯的情況下。

警告

謹慎使用,因為這很容易導致上游存儲庫中的丟失。

Customizing Git configuration

Web2Rate用“Home = $ Data_Dir / Home``”調用所有VCS命令(參見:設置:data_dir),因此需要在``data_dir / home / .git``中編輯用戶配置。

Git remote helpers

您還可以使用Git`Reary Helpers`_另外支持其他版本控制系統,但準備好調試問題,這可能會導致。

此時,在Github上的單獨存儲庫中提供了Bazaar和Mercurial的助手:“Git-remote-Hg`_和`git-remote-bzr`_。手動下載並將其放在搜索路徑中(例如:文件:〜/ bin)。確保安裝了相應的版本控制系統。

安裝這些已安裝後,此類遙控器可用於在WebLate中指定存儲庫。

使用 Bazaar 來複製在 Launchpad 上的 gnuhello 專案

bzr::lp:gnuhello

hello 倉儲在 selenic.com 上使用 Mercurial

hg::http://selenic.com/repo/hello

警告

使用Git遠程幫助程序的不便例如使用Mercurial,遠程幫助器有時會在推送更改時創建新的提示。

GitHub pull requests

在 2.3 版本新加入.

這在:Ref:“GCS-Git”中添加了一個薄層:使用“github api`_”以允許將翻譯更改推換為拉請求,而不是直接推向存儲庫。

:ref:“VCS-GIT”將更改直接轉到存儲庫,而參考:ref:“VCS-GitHub”創建拉出請求。僅訪問Git存儲庫不需要後者。

You need to configure API credentials (GITHUB_CREDENTIALS) in the Weblate settings to make this work. Once configured, you will see a GitHub option when selecting 版本控制系統.

GitLab merge requests

在 3.9 版本新加入.

這只需在:ref:“VCS-GIT”上使用“GITLAB API”_使用“GITLAB API”允許將翻譯更改為合併請求,而不是直接推送到存儲庫。

不需要將此用於訪問Git存儲庫,普通:ref:“VCS-GIT”運行相同,唯一的區別是如何處理推送存儲庫。使用:ref:“VCS-Git”更改直接推送到存儲庫,而ref:`vcs-gitlab`創建合併請求。

You need to configure API credentials (GITLAB_CREDENTIALS) in the Weblate settings to make this work. Once configured, you will see a GitLab option when selecting 版本控制系統.

Gitea pull requests

在 4.12 版本新加入.

This just adds a thin layer atop Git using the Gitea API to allow pushing translation changes as pull requests instead of pushing directly to the repository.

There is no need to use this to access Git repositories, ordinary Git works the same, the only difference is how pushing to a repository is handled. With Git changes are pushed directly to the repository, while Gitea pull requests creates pull requests.

You need to configure API credentials (GITEA_CREDENTIALS) in the Weblate settings to make this work. Once configured, you will see a Gitea option when selecting 版本控制系統.

Bitbucket Server pull requests

在 4.16 版本新加入.

This just adds a thin layer atop Git using the Bitbucket Server API to allow pushing translation changes as pull requests instead of pushing directly to the repository.

警告

This does not support Bitbucket Cloud API.

There is no need to use this to access Git repositories, ordinary Git works the same, the only difference is how pushing to a repository is handled. With Git changes are pushed directly to the repository, while Bitbucket Server pull requests creates pull request.

You need to configure API credentials (BITBUCKETSERVER_CREDENTIALS) in the Weblate settings to make this work. Once configured, you will see a Bitbucket Server option when selecting 版本控制系統.

Pagure merge requests

在 4.3.2 版本新加入.

這只是在:REF中添加了一個薄層:ref:`VCS-GIT`使用`PAGURE API`_允許將翻譯更改為合併請求,而不是直接推送到存儲庫。

不需要將此用於訪問Git存儲庫,普通:ref:“VCS-GIT”運行相同,唯一的區別是如何處理推送存儲庫。使用:ref:“VCS-Git”更改直接推向存儲庫,而參考:ref:“VCS-PAGURE”:“VCS-PAGURE”創建合併請求。

You need to configure API credentials (PAGURE_CREDENTIALS) in the Weblate settings to make this work. Once configured, you will see a Pagure option when selecting 版本控制系統.

Gerrit

在 2.2 版本新加入.

使用 git-review 工具加入一層審查層 Git,如透過 Gerrit 審查所有推送來的翻譯變更,而不是將翻譯變更直接推送到專案倉儲。

GERRIT文檔有關於設置此類存儲庫所需的配置的詳細信息。

Mercurial

在 2.1 版本新加入.

Mercurial是另一個您可以直接在Webleate中使用的VC。

備註

它應該與任何Mercurial版本合作,但有時對命令行界面有時不兼容,可打破WebBlate集成。

也參考

請參閱:ref:“VCS-REPOS”用於如何訪問不同類型的存儲庫的信息。

Subversion

在 2.8 版本新加入.

Weberate使用`git-svn`_與`subversion`_存儲庫進行交互。它是一個perl腳本,它允許git客戶端使用subversion,使用戶能夠維護內部存儲庫的完整克隆並在本地提交。

備註

WebLate嘗試自動檢測Subversion存儲庫佈局 - 它支持具有標準佈局的分支或存儲庫的直接URL(分支/,標記/和中繼/)。有關此內容的更多信息將在“git-svn文檔<https://git-scm.com/docs/git-svn#documentation/git-svn.txt—-tdlayout>`_中找到。如果您的存儲庫沒有標準佈局並且您遇到錯誤,請嘗試在存儲庫URL中包含分支名稱並將分支為空。

在 2.19 版本變更: 在此之前,僅支持使用標準佈局的存儲庫。

Subversion credentials

Weberate希望您在前面接受證書(如果需要,您的憑據)。它將查看將它們插入:設置:data_dir`目錄。使用“SVN”(使用“$ HOME”環境變量設置為:設置:`DATA_DIR

# Use DATA_DIR as configured in Weblate settings.py, it is /app/data in the Docker
HOME=${DATA_DIR}/home svn co https://svn.example.com/example

也參考

DATA_DIR

Local files

Git

提示

Underneath, this uses Git. It requires Git installed and allows you to switch to using Git natively with full history of your translations.

在 3.8 版本新加入.

Webleate也可以在沒有遠程VCS的情況下運行。通過上傳它們導入初始翻譯。稍後您可以通過文件上載替換單個文件,或直接從Weberate添加轉換字串(目前僅適用於單語翻譯)。

在後台,WebBlate為您創建一個Git存儲庫,並跟踪所有更改。如果您稍後決定使用VCS存儲翻譯,則您已經在Webleate中擁有存儲庫可以基於您的集成。