diff --git a/translations/CONTRIBUTING.chinese_tc.md b/translations/CONTRIBUTING.chinese_tc.md new file mode 100644 index 0000000000000..b0782d562998d --- /dev/null +++ b/translations/CONTRIBUTING.chinese_tc.md @@ -0,0 +1,175 @@ +# 為 Hasura GraphQL 引擎做出貢獻 + +第一:如果您對如何開始為V2或V3做出貢獻感到沒有把握,請隨時向我們諮詢 +[Discord](https://discordapp.com/invite/hasura)在「#contrib」頻道。你也可以繼續你的 +貢獻,我們會給你回饋。別擔心,最糟糕的情況是,你會被禮貌地要求 +改變一些東西。我們感謝任何貢獻,我們不希望規則之牆阻礙這一點。 + +然而,對於那些想要更多關於如何為專案做出貢獻的指導的人,請繼續閱讀 +這份文件將涵蓋我們正在尋找的內容。透過解決以下問題,我們可以快速合併或 +你的貢獻將會增加。 + +## 目錄 + +[1. 行為準則 ](#code-of-conduct) + +[2. git倉庫概述 ](#overview) + +[3. 歡迎首次貢獻者! ](#first-timers) + +[4. 貢獻領域 ](#areas) + +[5. 貢獻方式 ](#ways) + +[6. git提交資訊 ](#commit-messages) + +[7. 翻譯 ](#translations) + + + +## 1. 行為準則 + +請關注我們的 [行為準則](code-of-conduct.chinese.md) 在對Hasura的任何貢獻的背景下。 + + + +## 2. git倉庫概述 + +[hasura/graphql-engine](https://github.com/hasura/graphql-engine) 是V2和V3的開源單倉庫Hasura版本。 + +### V2 + +這個V2部分由3個部分組成,每個部分都有自己的貢獻指南: + +1. [Server (Haskell)](server/CONTRIBUTING.md) + +2. [CLI (Go)](cli/CONTRIBUTING.md) + +3. [Console (JavaScript)](frontend/docs/generic-info.md#contributing-to-hasura-console) + +這三個元件都有一個版本,由git標籤或分支名稱和git的組合表示 提交SHA。 + +對於所有貢獻,都需要簽署貢獻者許可協議 CLA(Contributor License Agreement) +[這裡](https://cla-assistant.io/hasura/graphql-engine)在提交拉取請求之前(或之後)。如有必要機器人將 +透過PR註釋提示貢獻者簽署CLA。 + +### V3 + +V3部分完全是V3引擎,是Hasura的核心,用Rust編寫。 + +1. [V3 引擎 (Rust)](v3/CONTRIBUTING.md) + +查看 [V3 README 在這](/v3/README.md). + + + +## 3. 歡迎首次貢獻者! + +我們感謝首次貢獻者,我們很樂意幫助您開始。如有疑問,請聯絡我們! + +您發現所有問題都適合首次貢獻者[這裡](https://github.com/hasura/graphql-engine/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22). + + + +## 4. 貢獻領域 + +當然,我們感謝對Hasura所有組成部分的貢獻。然而,我們已經確定了三個領域 特別適合開源貢獻。 + +### V2 文檔 + +我們的目標是保持文件的全面性和更新性。如果您願意幫助我們這樣做,我們將感謝任何形式的貢獻: + +- 報告缺失內容 + +- 修復現有文件中的錯誤 + +- 幫助我們新增文檔 + +文件的貢獻指南可以在以下網址找到 [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md). + +### V2 社群內容 + +自從我們推出[學習頁面](https://hasura.io/learn/),我們對貢獻感到高興: + +- 修復現有學習教程中的錯誤 + +-新增教學(如果您有避免重複單字的想法,請聯絡我們) + +學習庫的README可以在[點擊此處](https://github.com/hasura/learn-graphql). + +除了學習內容,我們還確定了三種其他方式來貢獻技術社群內容: + +- [範本程式碼](https://github.com/hasura/graphql-engine/tree/master/community/boilerplates) + +- [範例應用程式](https://github.com/hasura/sample-apps/tree/main) + +- [工具](community/tools) + +如果你想透過以下方式為社群做出貢獻 + +- 寫一篇技術博客 + +- 在活動中發言 + +- 組織工作坊 + +查看我們的 [社群維基](https://github.com/hasura/graphql-engine/wiki/Community-Wiki). + +如果你有什麼要添加的,即使它與上述任何內容都無關,也可以隨時提交拉取請求。 + +### V2 CLI + +我們在CLI上遇到了一些適合開源貢獻的問題。如果你知道如何使用Go或你想透過學習使用,請查看以下內容 +[問題](https://github.com/hasura/graphql-engine/issues?q=is%3Aopen+is%3Aissue+label%3Ac%2Fcli+label%3A%22help+wanted%22). + +CLI 倉庫的 README 可以在[這裡](https://github.com/hasura/graphql-engine/tree/master/cli)找到。 + + + +## 5. 貢獻方式 + +### 回報問題 + +- 確保您針對最新發布版本進行測試。我們可能已經修復了您遇到的 bug。 + +- 提供重現問題的步驟,包括 Postgres 版本、graphql-engine 版本以及您正在運行的提供者(如 Heroku、Docker 等)。 + +- 如果相關,請包含伺服器的日誌。 + +- 建立一個 [問題](https://github.com/hasura/graphql-engine/issues/new/choose). + +### 處理一個問題 (issue) + +- 我們使用[叉庫與分支的 Git 工作流程](https://blog.scottlowe.org/2015/01/27/using-fork-branch-git-workflow/). + +- 請確保您正在進行的工作有相關問題。 + +- 如果您正在處理某個問題,請評論您這樣做是為了防止其他人重複工作。 + +- 壓縮您的提交,並在提交訊息末尾使用 `fix #` 或 `close #` 引用問題。 +例如:`resolve answers to everything (fix #42)` 或`resolve answers to everything, fix #42` + +- 在提交拉取請求之前,將主分支與您的分支進行變基。 + + + +## 6. git提交訊息 + +- 第一行應為更改的摘要,且不超過 50 個字符,後面可以跟著一個可選的正文,詳細說明更改內容。有關編寫良好提交信息的更多信息,請參考 + [此連結](https://github.com/erlang/otp/wiki/writing-good-commit-messages) + +- 使用命令式現在式(imperative present tense): "add/fix/change", not "added/fixed/changed" nor "adds/fixes/changes". + +- 不要將摘要行的第一個字母大寫。 + +- 不要在摘要行的末尾加上句號/點(.)。 + + + +## 7. 翻譯 + +本文檔有以下翻譯版本: + +- [French 🇫🇷](translations/CONTRIBUTING.french.md) + +(致謝:部分章節改編自 https://github.com/PostgREST/postgrest/blob/master/.github/CONTRIBUTING.md) diff --git a/translations/README.chinese_tc.md b/translations/README.chinese_tc.md new file mode 100644 index 0000000000000..04b94043d13ee --- /dev/null +++ b/translations/README.chinese_tc.md @@ -0,0 +1,207 @@ +# Hasura GraphQL引擎 + +[![文檔](https://img.shields.io/badge/docs-v1.0-brightgreen.svg?style=flat)](https://hasura.io/docs) +[![CircleCI](https://circleci.com/gh/hasura/graphql-engine.svg?style=shield)](https://circleci.com/gh/hasura/graphql-engine) + + + + + +Hasura GraphQL 應用程式 **Postgres 應用程式 API**,回應資料庫事件的 [**Webhook觸發器**](../event-triggers.md)。 + +Hasura 已建立 GraphQL 的 Postgres 版本、新版本的 Postgres 和新版本的 GraphQL。 + +請參閱 [hasura.io](https://hasura.io) 和 [文件](https://hasura.io/docs) 以了解更多內容。 + +------------------ + +![Hasura GraphQL 引擎示範](../assets/demo.gif) + +------------------ + +![Hasura GraphQL 引擎即時性示範](../assets/realtime.gif) + +------------------- + +## 特性 + +* **強大的查詢功能**:內建過濾,分頁,模式搜索,批量插入,更新,刪除 +* **即時**:透過訂閱將任何 GraphQL 查詢轉換為即時查詢 +* **繪製圖表**:透過單一GraphQL端點存取其他負責業務邏輯的GraphQL端點 ([了解更多](../remote-schemas.md)) +* **Webhooks與Serverless函數**: 在發生Postgres插入/更新/刪除事件時觸發函數 ([了解更多](../event-triggers.md)) +* **使用現有的資料庫**:關於 PostgresGraphQL API +* **細粒度的存取控制**:與您的認證系統整合的動態存取控制(例如auth0,firebase-auth) +* **效能與低記憶體佔用**:約15MB的docker映像;〜50MB RAM @ 1000請求/秒; 多核心友好 +* **管理介面和模式遷移**: 管理介面和受Rails 模式的遷移 +* **Postgres** ❤️: 支援Postgres資料類型(PostGIS / geo-location 等),將表格視圖轉換為*圖*,透過GraphQL變更觸發儲存函數或流程 + +請造訪 [hasura.io](https://hasura.io) 和 [文件](https://hasura.io/docs) 以了解更多 + +## 目錄 + +**目錄** + +- [快速開始](#快速開始) +- [一鍵部署到Heroku](#一鍵部署到Heroku) +- [其他配置方法](#其他配置方法) +- [架構](#架構) +- [客戶端工具](#客戶端工具) +- [新增業務邏輯](#新增業務邏輯) +- [端點Schema](#端點Schema) +- [透過資料庫事件觸發Webhooks](#透過資料庫事件觸發Webhooks) +- [演示](#演示) +- [即時應用](#即時應用) +- [影片](#影片) +- [支援與故障排除](#支援與故障排除) +- [貢獻](#貢獻) +- [品牌資料](#品牌資料) +- [許可證](#許可證) +- [翻譯](#翻譯) + + + +## + +### 一鍵到部署Heroku + +部署到 Heroku 正在嘗試 Hasura 最快的方法 + +1.點擊以下按鈕,在有免費Postgres附加元件的Heroku上設定GraphQL引擎: + +[![部署到Heroku](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/hasura/graphql-engine-heroku) + +2.打開Hasura控制台 + +造訪 `https://.herokuapp.com` (*更換 \<應用程式名稱\> 使用您的應用程式名稱*) 開啟管理控制台。 + +3.進行第一個GraphQL查詢 + +### + +以下一鍵式配置選項的說明: + +| **基礎設施建設** | **一鍵式連結** | **附加資訊** | +|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| DigitalOcean | [![部署到 DigitalOcean](https://graphql-engine-cdn.hasura.io/img/create_hasura_droplet_200px.png)](https://marketplace.digitalocean.com/apps/hasuraactionaction=deploy&refcode=c4d9092m"pignc [文件](https://hasura.io/docs/latest/graphql/core/guides/deployment/digital-ocean-one-click.html#hasura-graphql-engine-digitalocean-one-click-app) | +| Azure | [![部署到Azure](http://azuredeploy.net/deploybutton.png)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3a%2f%2f raw.githubusercontent.com%2fhasura%2fgraphql-engine%2fmaster%2finstall-manifests%2fazure-container-with-pg%2fazuredeploy.json) | [文檔](https://hasura.io/docs/latest/graphql/core/guides/deployment/azure-container-instances-postgres.html) | + +### 其它部署方法 + +關於基於 Docker 的部署和其它高級配置選項,請參閱 [部署指南](https://hasura.io/docs/latest/graphql/core/getting-started/index.html) 或者 +[安裝清單](../install-manifests)。 + +## 架構 + +Hasura GraphQL 引擎位於 Postgres 資料庫實例的前端,並且可以接受來自客戶端應用程式的 GraphQL 調用。您可以將其設定為與現有的身份驗證系統一同使用,並可根據驗證系統中的動態變數來實現欄位級別的存取控制。 + +您還可以合併遠端的 GraphQL Schema,以提供統一的 GraphQL API。 + +![Hasura GraphQL 引擎架構](../assets/hasura-arch.svg) + +## 客戶端工具 + +Hasura 可與任何 GraphQL 客戶端一起使用。我們建議使用 [Apollo Client](https://github.com/apollographql/apollo-client)。 +請參見 [awesome-graphql](https://github.com/chentsulin/awesome-graphql) 瞭解其他客戶端工具。 + +## 添加商業邏輯 + +GraphQL Engine 提供了易用、可擴展、高效能的方式將自定義業務邏輯插入後端。 + +### 遠端 Schema + +您可以在遠端 Schema 中編寫自定義的 resolver,然後與 Hasura 基於 Postgres 的 GraphQL Schema 合併。適用於實現支付 API 或查詢資料庫中不存在的資料等場景 - [閱讀更多](../remote-schemas.md)。 + +### 透過資料庫事件觸發 Webhooks + +新增基於資料庫事件觸發的非同步業務邏輯。 +非常適合通知、來源於 Postgres 的資料處理流程或非同步任務處理 +[閱讀更多](../event-triggers.md)。 + +### 衍生資料或資料處理 + +在 Postgres 中處理資料或套用業務邏輯來匯出另一套可由 GraphQL Engine 處理的資料集 - [閱讀更多](https://hasura.io/docs/latest/graphql/core/queries/derived-data.html)。 + +## 示範 + +請造訪 [hasura/sample-apps](https://github.com/hasura/sample-apps/tree/main) 目錄以查看所有示範專案 + +### 即時應用 + +- 使用 React 建構的群聊應用,包含輸入中指示器、線上用戶與新訊息通知 + - [試用連結](https://realtime-chat.demo.hasura.io/) + - [教學說明](https://github.com/hasura/sample-apps/tree/main/realtime-chat) + - [瀏覽 API](https://realtime-chat.demo.hasura.io/console) + +- 即時位置追蹤應用,展示行駛中車輛持續變更的 GPS 座標並於地圖上移動 + - [試用連結](https://realtime-location-tracking.demo.hasura.io/) + - [教學說明](https://github.com/hasura/sample-apps/tree/main/realtime-location-tracking) + - [瀏覽 API](https://realtime-location-tracking.demo.hasura.io/console) + +- 即時儀表板,用於聚合不斷變化的資料 + - [試用連結](https://realtime-poll.demo.hasura.io/) + - [教學說明](https://github.com/hasura/sample-apps/tree/main/realtime-poll) + - [瀏覽 API](https://realtime-poll.demo.hasura.io/console) + +### 影片 + +* [為自託管 GitLab 實例新增 GraphQL](https://www.youtube.com/watch?v=a2AhxKqd82Q) (*3:44 分鐘*) +* [基於 Auth0 與 GraphQL 後端的 Todo 應用](https://www.youtube.com/watch?v=15ITBYnccgc) (*4:00 分鐘*) +* [整合 GitLab 身份驗證的 GraphQL 實作](https://www.youtube.com/watch?v=m1ChRhRLq7o) (*4:05 分鐘*) +* [千萬次騎行位置資料的儀表板(PostGIS、Timescale)](https://www.youtube.com/watch?v=tsY573yyGWA) (*3:06 分鐘*) + + +## 支援與故障排除 + +文件與社群將幫助您解決大多數問題。如果您遇到錯誤或需要聯繫我們,可以透過以下任一方式與我們聯繫: +* 支援與回饋:[Discord](https://discord.gg/vBPpJkS) +* 問題與錯誤追蹤:[GitHub issues](https://github.com/hasura/graphql-engine/issues) +* 關注產品更新:[HasuraHQ Twitter](https://twitter.com/hasurahq) +* 與我們對話:[網站即時聊天](https://hasura.io) + +我們致力於在社群中營造開放且友善的環境。請參閱 [行為準則](../code-of-conduct.md)。 + +若您要回報安全性問題,請參考 [此文件](../SECURITY.md)。 + +## 貢獻 + +請參考我們的 [貢獻指南](../CONTRIBUTING.md) 以了解更多細節。 + +## 品牌素材 + +您可以在 [assets/brand](../assets/brand) 資料夾中找到 Hasura 的品牌素材(如 Logo、吉祥物、Powered-by 徽章等)。歡迎在您的應用程式/網站等地方使用它們!若能在您的 Hasura 應用中看到 "Powered by Hasura" 徽章,我們將感到非常開心。❤️ + +
+ + +
+ +```html + + + + + + + + + +``` + +## 許可證 + +核心 GraphQL 引擎使用 [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0) (Apache-2.0)。 + +所有**其他內容**([`server`](../server), [`cli`](../cli) 和 +[`console`](../console) 目錄) 使用 [MIT 許可證](../LICENSE-community). +其中包括 [`docs`](../docs) 和 [`community`](../community) 目錄。 + +## 翻譯 + +自述文件 + +- [日文:jp:](../translations/README.japanese.md) (:pray: [@moksahero](https://github.com/moksahero)) +- [法文:fr:](../translations/README.french.md) (:pray: [@l0ck3](https://github.com/l0ck3)) +- [中文:cn:](../translations/README.chinese.md) (:pray: [@jagreetdg](https://github.com/jagreetdg) & [@johnbanq](https://github.com/johnbanq)) + + +可以在[這裡](../translations)找到其他文件的翻譯 diff --git a/translations/README.md b/translations/README.md index dd69f9668d9ff..6718f45656ea4 100644 --- a/translations/README.md +++ b/translations/README.md @@ -2,9 +2,9 @@ | File | Language | |-----------------|---------------| -| Readme | [:uk: English](../README.md) │ [:fr: Français](README.french.md) │ [:jp: 日本語](README.japanese.md) │ [🇬🇷 Ελληνικά](README.greek.md) │ [🇲🇽 Spanish](README.mx_spanish.md) │ [:brazil: Português](README.portuguese_br.md) │ [🇩🇪 Deutsch](README.german.md) │ [:ru: Русский](README.russian.md) │ [:indonesia: Indonesian](README.indonesian.md) │ [:bosnia_herzegovina: Bosnian](README.bosnian.md) │ [:cn: 中文](README.chinese.md) │ [:tr: Türkçe](README.turkish.md) │ [:kr: 한국어](README.korean.md) -| Event Triggers | [:uk: English](../event-triggers.md) │ [:fr: Français](event-triggers.french.md) │ [:cn: 中文](event-triggers.chinese.md) -| Remote Schemas | [:uk: English](../remote-schemas.md) │ [:fr: Français](remote-schemas.french.md) │ [:india: Hindi](remote-schemas.hindi.md) │ [:india: Kannada](remote-schemas.kannada.md) -| Contributing | [:uk: English](../CONTRIBUTING.md) │ [:fr: Français](CONTRIBUTING.french.md) │ [:cn: 中文](CONTRIBUTING.chinese.md) -| Security | [:uk: English](../SECURITY.md) │ [:fr: Français](SECURITY.french.md) │ [:india: Hindi](SECURITY.hindi.md)│ [:india: Kannada](SECURITY.kannada.md) -| Code of Conduct | [:uk: English](../code-of-conduct.md) │ [:fr: Français](code-of-conduct.french.md)│ [:cn: 中文](code-of-conduct.chinese.md) +| Readme | [:uk: English](../README.md) │ [:fr: Français](README.french.md) │ [:jp: 日本語](README.japanese.md) │ [🇬🇷 Ελληνικά](README.greek.md) │ [🇲🇽 Spanish](README.mx_spanish.md) │ [:brazil: Português](README.portuguese_br.md) │ [🇩🇪 Deutsch](README.german.md) │ [:ru: Русский](README.russian.md) │ [:indonesia: Indonesian](README.indonesian.md) │ [:bosnia_herzegovina: Bosnian](README.bosnian.md) │ [:cn: 中文](README.chinese.md) │ [:tr: Türkçe](README.turkish.md) │ [:kr: 한국어](README.korean.md) │ [:hong_kong: 繁體中文](README.chinese_tc.md) +| Event Triggers | [:uk: English](../event-triggers.md) │ [:fr: Français](event-triggers.french.md) │ [:cn: 中文](event-triggers.chinese.md) │ [:hong_kong: 繁體中文](event-triggers.chinese_tc.md) +| Remote Schemas | [:uk: English](../remote-schemas.md) │ [:fr: Français](remote-schemas.french.md) │ [:india: Hindi](remote-schemas.hindi.md) │ [:india: Kannada](remote-schemas.kannada.md) │ [:hong_kong: 繁體中文](remote-schemas.chinese_tc.md) +| Contributing | [:uk: English](../CONTRIBUTING.md) │ [:fr: Français](CONTRIBUTING.french.md) │ [:cn: 中文](CONTRIBUTING.chinese.md) | [:cn: 繁體中文](CONTRIBUTING.chinese_tc.md) +| Security | [:uk: English](../SECURITY.md) │ [:fr: Français](SECURITY.french.md) │ [:india: Hindi](SECURITY.hindi.md)│ [:india: Kannada](SECURITY.kannada.md) | [:hong_kong: 繁體中文](SECURITY.chinese_tc.md) +| Code of Conduct | [:uk: English](../code-of-conduct.md) │ [:fr: Français](code-of-conduct.french.md)│ [:cn: 中文](code-of-conduct.chinese.md) | [:hong_kong: 繁體中文](code-of-conduct.chinese_tc.md) diff --git a/translations/SECURITY.chinese_tc.md b/translations/SECURITY.chinese_tc.md new file mode 100644 index 0000000000000..3e84d53748f35 --- /dev/null +++ b/translations/SECURITY.chinese_tc.md @@ -0,0 +1,38 @@ +## 回報漏洞 + +我們非常感謝向 Hasura 社群報告漏洞的安全研究人員和使用者。所有報告都會由一組社區志工和 Hasura 團隊進行徹底調查。 + +若要通報安全問題,請透過電子郵件將所有細節發送至 [security@hasura.io](mailto:security@hasura.io),並附上所有必要的資訊。 + +### 何時應該回報漏洞? + +- 您認為您發現了 Hasura GraphQL 引擎或相關組件中的潛在安全漏洞。 +- 您不確定漏洞如何影響 Hasura GraphQL 引擎。 +- 您認為您發現了 Hasura GraphQL 引擎所依賴的其他專案中的漏洞(例如,Heroku、Docker 等)。 +- 您想要報告任何其他可能危害 Hasura GraphQL 引擎使用者的安全風險。 + +### 何時不應該回報漏洞? + +- 您需要協助調整 Hasura GraphQL 引擎組件的安全性。 +- 您需要協助套用與安全相關的更新。 +- 您的問題與安全無關。 + +## 安全漏洞回應 + +每個報告都會在 3 個工作天內得到專案維護者和安全團隊的確認和分析。 + +報告者將在問題分析和解決的每個階段(初步評估 -> 修復 -> 發布)保持更新。 + +## 公共揭露時間 + +公共揭露日期由 Hasura 產品安全團隊和漏洞提交者協商確定。一旦用戶緩解措施可用,我們更傾向於儘早完全揭露漏洞。當漏洞或修復尚未完全理解、解決方案未經充分測試,或需要與供應商協調時,披露可能會延遲。披露的時間框架通常從立即開始(特別是如果漏洞已經公開)到幾週。報告到公開揭露的時間框架通常為 7 天。 Hasura GraphQL 引擎的維護者和安全團隊將最終決定披露日期。 + +(某些部分靈感來源並經過改編自 [https://github.com/kubernetes/website/blob/master/content/en/docs/reference/issues-security/security.md](https://github.com/kubernetes/website/blob/master/content/en/docue + +## 翻譯 + +此文件提供以下語言的翻譯版本: + +- [French :fr:](../translations/SECURITY.french.md) +- [Hindi :india:](../translations/SECURITY.hindi.md) +- [Malayalam :india:](../translations/SECURITY.malayalam.md) \ No newline at end of file diff --git a/translations/code-of-conduct.chinese_tc.md b/translations/code-of-conduct.chinese_tc.md new file mode 100644 index 0000000000000..b06a0d616be08 --- /dev/null +++ b/translations/code-of-conduct.chinese_tc.md @@ -0,0 +1,61 @@ +# Hasura GraphQL 引擎社群行為準則 + +## 我們的承諾 + +為了創造一個開放和包容的環境,作為貢獻者和維護者, +我們承諾讓所有人都能在參與我們的計畫和社區時享受無騷擾的體驗, +無論其年齡、體型、殘疾、種族、性別特徵、性別認同和表達、經驗程度、 +教育背景、社會經濟狀況、國籍、個人外表、種族、宗教信仰或性別認同與取向。 + +## 我們的標準 + +有助於創造正向環境的行為範例 +包括: + +* 使用歡迎、包容和性別中立的語言 (例: 使用 of "Hey guys", + 你可以使用 "Hey folks" 或 "Hey all") +* 尊重不同的觀點與經驗 +* 欣然地接受建設性的批評 +* 關注社區的最佳利益 +* 對其他社區成員表現出同情心 + +參與者不可接受的行為包括 + +* 使用性語言或圖像以及不受歡迎的性關注或挑逗 +* 惡意挑逗、侮辱/貶損評論以及人身或政治攻擊 +* 公開或私下騷擾 +* 未經明確許可發布他人的私人訊息,例如實際或電子地址 +* 在專業環境中可合理視為不當的其他行為 + +## 我們的責任 + + +專案維護者有責任明確可接受行為的標準,並應針對任何不可接受的行為採取適當且公平的糾正措施。 + +專案維護者有權利和責任刪除、編輯或拒絕不符合本行為準則的評論、提交、程式碼、wiki 編輯、問題和其他貢獻, +或暫時或永久禁止任何貢獻者做出他們認為不適當、威脅、冒犯或有害的其他行為。 + +## 範圍 + +本行為準則適用於個人代表項目或其社區時的項目空間和公共空間。 +代表項目或社區的範例包括使用官方項目電子郵件地址、透過官方社交媒體帳戶發布帖子 +或在線上或線下活動中擔任指定代表。專案維護者可以進一步定義和澄清專案的代表身分。 + +## 執行 + +可以透過 community@hasura.io 聯繫專案團隊來報告辱罵、騷擾或其他不可接受的行為。 +所有投訴都將被審查和調查,並將根據情況做出必要和適當的回應。專案團隊有義務對事件報告者保密。 +具體執行政策的更多細節可能會單獨發布。 不真誠遵守或執行行為準則的專案維護者可能會面臨由專案領導層其他成員決定的暫時或永久的後果。 + +## 署名 + +本行為準則改編自 貢獻者公約, 版本 1.4, +[英文版](https://www.contributor-covenant.org/version/1/4/code-of-conduct.html) +[繁體中文版](https://www.contributor-covenant.org/zh-tw/version/1/4/code-of-conduct/) +[首頁](https://www.contributor-covenant.org) + +## Translations + +本文檔有以下翻譯版本: + +- [French :fr:](code-of-conduct.french.md) diff --git a/translations/event-triggers.chinese_tc.md b/translations/event-triggers.chinese_tc.md new file mode 100644 index 0000000000000..632ddd1fd3e4d --- /dev/null +++ b/translations/event-triggers.chinese_tc.md @@ -0,0 +1,105 @@ +# Postgres上的事件觸發器 + +使用Hasura GraphQL引擎的事件觸發器在資料庫事件上觸發webhooks。 + +![Event triggers demo](../assets/event-triggers.gif) + +## 重點 + +* **建立反應式和非同步應用程式/功能**: 觸發非同步無伺服器或雲端功能,以降低伺服器基礎結構成本並簡化開發者的 DevOps 工作。 + +* **原子和可靠**: 使用本機Postgres觸發器,資料庫上的每個相關操作都被視為事件。即使Hasura故障而關閉或正在更新,事件也會被捕獲並儘快交付,並保證*至少一次*。您甚至可以配置傳遞策略,如“max_retries”和“retry_interval”。 + +* **可擴展性**: 事件觸發系統是橫向可擴展的-如果你需要處理更多的事件,只需投入更多的資源! + +* **適用於現有的即時資料庫**: 將其指向現有的Postgres資料庫,以立即監聽資料中的變更並呼叫webhooks。 + +* **可觀察性和監控準備就緒**: 產生的事件會自動附加一個事件 ID,而 Hasura 發出的結構化日誌可讓您輕鬆使用您喜歡的工具,在生產環境中運行基於事件驅動的後端。 ([觀看](https://youtu.be/WOPA52r3bzU) 使用概述 [Honeycomb](https://honeycomb.io/)). + + +## 快速入門: + +### 在Heroku上一鍵部署 + +最簡單嘗試事件觸發器的方法是透過Heroku。 + +1. 點選以下按鈕,並使用免費的Postgres外掛程式在Heroku上部署GraphQL引擎: + + [![Deploy to Heroku](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/hasura/graphql-engine-heroku) + +2. 打開Hasura控制台 + + 造訪 `https://.herokuapp.com` (*將 \ 替換為您的應用程式名稱*) 開啟管理控制台。 + +3. 設定你的第一個事件觸發器和webhook + + 建立表, 配置要用作觸發器的資料庫更新,並透過在表中新增行立即呼叫webhook。 遵循此教學 [簡單指南](https://hasura.io/docs/latest/graphql/core/getting-started/first-event-trigger.html). + +### 其他部署方法 + +用於基於Docker的部署和高級配置選項, 訪問 [部署指南](https://hasura.io/docs/latest/graphql/core/getting-started/index.html). + +### 示範 (*30 秒*) + +[![Create an event-trigger and webhook in 60 seconds](https://img.youtube.com/vi/EaTUVWnDCvA/0.jpg)](https://www.youtube.com/watch?v=EaTUVWnDCvA) + +[在60秒內建立事件觸發器和webhook](https://youtu.be/EaTUVWnDCvA) + +### Serverless樣板程式碼 + +使用其中一個 [serverless觸發器樣板程式碼](community/boilerplates/event-triggers) 部署webhook +它可以捕獲資料庫事件。 +無伺服器/雲端功能平台的樣板: + +* [AWS Lambda](community/boilerplates/event-triggers/aws-lambda) +* [Google Cloud Functions](community/boilerplates/event-triggers/google-cloud-functions) +* [Azure Functions](community/boilerplates/event-triggers/azure-functions) +* [Zeit Now](community/boilerplates/event-triggers/zeit-now) + +## 系統架構 + +![Event triggers architecture](.././assets/event-triggers-arch.png) + +## 演示及教學: 建構響應式和非同步應用/功能 + +### 通知 + +根據資料庫事件觸發推播通知和電子郵件。嘗試下面的示範和教程,看看當用戶插入一些資料時,瀏覽器推播通知是如何觸發的: + +* [觀看示範](https://www.youtube.com/watch?v=nuSHkzE2-zo) +* [嘗試運行](https://serverless-push.demo.hasura.io/) +* [教學](https://github.com/hasura/sample-apps/tree/main/serverless-push) + + + + +### 資料轉換 (ETL) + +將資料轉換並載入到外部資料儲存中。請參閱下面的演示和教程,了解如何轉換Postgres資料以建立和填充Algolia索引: + +* [觀看示範](https://youtu.be/kWVEBWdEVAA) +* [嘗試運行](https://serverless-etl.demo.hasura.io/) +* [教學](https://github.com/hasura/sample-apps/tree/main/serverless-etl) + +### 使用即時GraphQL為非同步後端建立反應式使用者體驗 + +透過GraphQL訂閱和即時查詢,可以輕鬆地將事件驅動和非同步資訊傳播到UI客戶端。 + +![Reactive apps architecture](.././assets/reactive-apps-arch.png) + +**觀看**: [建立具有非同步後端的響應式應用程式](https://youtu.be/kTSOxRrtCeI) (*04:15 分鐘*) + +## 翻譯 + +本文檔有以下翻譯版本: + +- [French :fr:](translations/event-triggers.french.md) \ No newline at end of file diff --git a/translations/live-queries.chinese_tc.md b/translations/live-queries.chinese_tc.md new file mode 100644 index 0000000000000..62e80a982e026 --- /dev/null +++ b/translations/live-queries.chinese_tc.md @@ -0,0 +1,162 @@ +# 借助 GraphQL 承載 100萬活動訂閱(即時查詢) + +Hasura 是基於 Postgres資料庫的 GraphQL 引擎,提供可控制權限的開箱即用的 GraphQL API。請至 [hasura.io](https://hasura.io/) 和 [github.com/hasura/graphql-engine](https://github.com/hasura/graphql-engine) 了解更多。 + +Hasura 可為用戶端提供即時查詢(基於 GraphQL 訂閱)。例如,一個外送應用程式使用即時查詢顯示某特定使用者的訂單即時狀態。 + +本文檔描述 Hasura 的架構,闡述它是如何支撐百萬個並發即時查詢的。 + +##### 目錄 +- [結論](#結論) +- [GraphQL 與訂閱](#GraphQL-與訂閱) +- [實作 GraphQL 即時查詢](#實作-GraphQL-即時查詢) + - [再取得 GraphQL 查詢結果](#再取得-GraphQL-查詢結果) + - [Hasura 的方法](#Hasura-的方法) +- [測試](#測試) +- [本方法的優勢](#本方法的優點) + +## 結論 + +**設定:** 每個用戶端(Web 或 行動應用程式)以認證令牌登入並訂閱一個即時查詢結果。資料存放於 Postgres 資料庫。每秒鐘更新 Postgres 資料庫中的一百萬行數據,並確保推送一個新查詢結果到客戶端。 Hasura 是 GraphQL API 的提供者(包含授權)。 + +**測試:** Hasura 可以並發處理多少個客戶端的實作訂閱? Hasura 是否可以縱向或橫向效能伸縮擴展? + + + +![single-instance-results](https://storage.googleapis.com/graphql-engine-cdn.hasura.io/img/subscriptions-images/images2/single-instance-fs8.png) + +|單例配置| 活動即時查詢數量 | CPU 平均負載 | +|--------|----------------|--------------| +| 1xCPU, 2GB RAM | 5000 | 60% | +| 2xCPU, 4GB RAM | 10000 | 73% | +| 4xCPU, 8GB RAM | 20000 | 90% | + +results-horizo​​ntally-scaled + +當一百萬個即時查詢的時候,Postgres 的負載不超過 28%,連接數峰值在 850 左右。 + +關於配置的說明: +- AWS RDS postgres, Fargate, 使用 ELB 的預設配置,無任何微調 +- RDS Postgres: 16xCPU, 64GB RAM, Postgres 11 +- Hasura 運行在 Fargate (4xCPU, 8GB RAM per instance) ,採用預設配置 + +## GraphQL 與訂閱 + +GraphQL 讓應用程式開發者輕鬆地從 API 中精確地取得他們想要的資料。 + +例如,我們要創建一個外帶應用程式。 Postgres 的架構看起來像這樣: + +postgres schema for food delivery app + +## 本方法的優勢 + +Hasura 讓即時查詢觸手可及。查詢的概念很容易擴展到即時查詢,而不需要使用 GraphQL 的開發人員做任何額外工作。這對我們來說是最重要的。 + +1. 功能特性豐富的即時查詢,全面支援 Postgres operators/aggregations/views/functions 等 +2. 性能可估 +3. 效能可縱向與橫向伸縮擴展 +4. 可運行於所有雲端、資料庫供應商平台 + +## 未來展望 + +減少 Postgres 負載,通過: + +1. 映射事件到即時查詢 +2. 結果集的增量計算 \ No newline at end of file diff --git a/translations/remote-schemas.chinese_tc.md b/translations/remote-schemas.chinese_tc.md new file mode 100644 index 0000000000000..fe536bd78aafc --- /dev/null +++ b/translations/remote-schemas.chinese_tc.md @@ -0,0 +1,89 @@ +# 遠端模式(Remote Schemas) + +Hasura 為您提供具有授權和存取控制的 CRUD + 即時 GraphQL API。然而,在許多情況下,您需要編寫包含自訂邏輯的 API(查詢、變更)。例如,實作支付 API,或查詢資料庫中不存在的資料。 + +Hasura 具備合併遠端 GraphQL 模式並提供統一 GraphQL API 的能力。可以將其視為自動化的模式合併。您只需建立自己的 GraphQL 服務,並將其 HTTP 端點提供給 Hasura。您的 GraphQL 服務可以使用任何程式語言或框架編寫。 + +遠端模式適用於下列場景: + +* 自訂變更(*例如:在插入資料之前執行驗證*) +* 支援支付等功能,並提供一致的介面來存取它們,例如:即透過 GraphQL 引擎的 API 進行 +* 從其他來源取得不同的資料(*例如:從天氣 API 或另一個資料庫*) + +為了支援自訂業務邏輯,您需要建立一個自訂的 GraphQL 伺服器(請參閱 [boilerplates](community/boilerplates/remote-schemas))並將其模式與 GraphQL 引擎的模式合併。 + +![遠端模式架構](../assets/remote-schemas-arch.png) + +## 演示 (*40 秒*) + +[![合併遠端模式的影片示範](https://img.youtube.com/vi/eY4n9aPsi0M/0.jpg)](https://www.youtube.com/watch?v=eY4n9aPsi0M) + +[合併遠端 GraphQL 模式(YouTube 連結)](https://youtu.be/eY4n9aPsi0M) + +[新增遠端模式](https://youtu.be/01t4t2t4q1c) + +## 快速入門 + +嘗試遠端模式最快的方式是透過 Heroku。 + +1. 點擊以下按鈕,將 GraphQL 引擎與免費的 Postgres 外掛程式一起部署到 Heroku: + + [![部署到 Heroku](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/hasura/graphql-engine-heroku) + +2. 打開 Hasura 控制台 + + 請造訪 `https://.herokuapp.com`(*將 \ 替換為您的應用程式名稱*)以開啟管理控制台。 + +3. 合併您的第一個遠端模式並查詢它 + + 在管理控制台中,開啟 ``Remote Schemas`` 標籤頁並點選 ``Add`` 按鈕。填寫以下資訊: + * 遠端模式名稱:``countries`` (*此遠端模式的別名*)。 +* GraphQL 伺服器 URL:``https://countries.trevorblades.com/`` (*一個公共的 GraphQL API,我們將用它快速查看此功能;由 [@trevorblades](https://github.com/trevorblades) 維護*)。 +* 忽略其餘的設定設定並點選 ``Add Remote Schema`` 按鈕。 + +前往 ``GraphQL`` 標籤頁並執行以下查詢 (*將其貼上到左側的查詢視窗並點擊* ▶️ *(播放) 按鈕*): + + ```graphql + { + countries { + emoji + name + languages { + name + native + } + } + } + ``` + + 您可以使用 ``GraphQL`` 介面右上角的 ``Docs`` 瀏覽器來探索遠端模式中的 GraphQL 類型。 + +## 模板 + +適用於流行語言/框架的自訂 GraphQL 伺服器的範本可用。 + +* [常規範本](community/boilerplates/graphql-servers),可以部署到任何地方。 +* [無伺服器範本](https://github.com/hasura/graphql-serverless),可部署至 AWS Lambda 等無伺服器平台。 + +請注意,更多語言、框架、無伺服器平台等的模板正在不斷更新,社群貢獻非常歡迎。 + +## 注意事項 + +**當前的限制**: + +* 命名規則:類型名稱和節點名稱在所有合併的模式中必須是唯一的(區分大小寫)。在接下來的幾個版本中,將支援合併名稱和結構相同的類型。 +* 來自不同 GraphQL 伺服器的節點無法在同一個查詢/變更(query/mutation)中使用。所有頂層節點必須來自同一個 GraphQL 伺服器。 +* 不支援遠端 GraphQL 伺服器的訂閱(subscription)。 + +這些限制將在後續版本中內解決 + +## 📄 文檔 + +閱讀完整[文件](https://hasura.io/docs/latest/graphql/core/remote-schemas/index.html) + +## 翻譯 + +此文件提供以下翻譯版本: + +- [French :fr:](translations/remote-schemas.french.md) +- [Hindi :india:](translations/remote-schemas.hindi.md) \ No newline at end of file