You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by ju...@apache.org on 2021/10/26 05:31:03 UTC

[apisix-website] branch docs-202109 created (now d7f0f9a)

This is an automated email from the ASF dual-hosted git repository.

juzhiyuan pushed a change to branch docs-202109
in repository https://gitbox.apache.org/repos/asf/apisix-website.git.


      at d7f0f9a  docs: update blog on 2021.09

This branch includes the following new commits:

     new d7f0f9a  docs: update blog on 2021.09

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[apisix-website] 01/01: docs: update blog on 2021.09

Posted by ju...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

juzhiyuan pushed a commit to branch docs-202109
in repository https://gitbox.apache.org/repos/asf/apisix-website.git

commit d7f0f9a79148e6dc1df5ca79c42f2e91c359277f
Author: juzhiyuan <ju...@apache.org>
AuthorDate: Tue Oct 26 13:30:47 2021 +0800

    docs: update blog on 2021.09
---
 ...s-you-quickly-with-Apache-APISIX-development.md | 166 ++++++++++-----------
 website/blog/2021/09/07/how-to-use-apisix-auth.md  | 156 +++++++++----------
 ...o-contribute-to-an-OpenSource-without-coding.md | 112 +++++++-------
 website/blog/2021/09/15/weekly-report.md           |  91 +++++------
 website/blog/2021/09/30/weekly-report.md           |  89 +++++------
 5 files changed, 308 insertions(+), 306 deletions(-)

diff --git a/website/blog/2021/09/06/python-helps-you-quickly-with-Apache-APISIX-development.md b/website/blog/2021/09/06/python-helps-you-quickly-with-Apache-APISIX-development.md
index c7464a6..f13d452 100644
--- a/website/blog/2021/09/06/python-helps-you-quickly-with-Apache-APISIX-development.md
+++ b/website/blog/2021/09/06/python-helps-you-quickly-with-Apache-APISIX-development.md
@@ -1,79 +1,78 @@
 ---
-title: "Python 助你快速上手 Apache APISIX 插件开发"
-author: "帅进超"
+title: Python helps you get up to speed with Apache APISIX plug-in development
+author: Jinchao Shuai
 authorURL: "https://github.com/shuaijinchao"
 authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
 keywords:
 - Python
 - APISIX
-- APISIX Python 插件
-- APISIX Python plugin
+- Python plugin
 - apisix-python-plugin-runner
-- APISIX Python Plugin Runner 
+- APISIX Python Plugin Runner
 tags: [Practical Case]
 
 ---
 
-> 在 Apache APISIX Python Runner 之前社区中已经支持了 [Java](https://github.com/apache/apisix-java-plugin-runner)
-和 [Go](https://github.com/apache/apisix-go-plugin-runner) 语言的 Runner,今天 Python Runner
-也来了,社区中的小伙伴们在开发 Apache APISIX 的插件时又多了一种新选择。
+> The [Java](https://github.com/apache/apisix-java-plugin-runner) and [Go](https://github.com/apache/apisix-java-plugin-runner) languages have been supported in the community before the Apache APISIX Python Runner.
+and [Go](https://github.com/apache/apisix-go-plugin-runner) languages, today Python Runner
+is now available, giving the community another option for developing plugins for Apache APISIX.
 
-<!--truncate-->
+<! --truncate -->
 
-## 简介
+## Introduction
 
 ### Apache APISIX
 
-`Apache APISIX` 是一个高性能的云原生开源 API 网关,它可以对请求进行统一的拦截和治理(如:鉴权、认证、缓存、版本、熔断、审计 等等)帮助开发人员轻松的对外提供安全可靠的服务,而开发人员通过 `Apache APISIX`
-的加持只需要关注业务实现即可,省去了大量花费在通用能力上的开发与维护上的时间并且也降低了整体业务架构的复杂度。
+`Apache APISIX` is a high-performance cloud-native open-source API gateway that provides unified request interception and governance (e.g., authentication, caching, versioning, fusing, auditing, etc.) to help developers easily provide secure and reliable services to the outside world, while developers only need to focus on business implementation with `Apache APISIX`.
+saves a lot of time in developing and maintaining generic capabilities and reduces the complexity of the overall business architecture.
 
 ### Python
 
-`Python` 语言作为一个解释型的高级编程语言,它 `语法简洁易上手`、`代码可读性好` ,在 `跨平台` 、`可移植性` 、`开发效率`
-上都有很好的表现,同时作为一个高级编程语言它的封装抽象程度比较高屏蔽了很多底层细节(例如:`GC`
-)让我们在开发的过程中可以更专注应用逻辑的开发。`Python` 作为一个有 30 年历史的老牌开发语言,它的生态以及各种模块已经非常完善,我们大部分的开发和应用场景都可以从社区中找到很成熟的模块或解决方案。`Python`
-其他的优点就不再一一赘述。`Python` 的缺点也比较明显:`Python` 作为一门解释性语言,相较于 `C++` 和 `Go` 这样的编译型语言,在性能上的差距还是比较大的。
+Python is an interpreted high-level programming language with a simple syntax, good code readability, cross-platform, portability, and development efficiency.
+As a high-level programming language, it has a high degree of abstraction and shields a lot of underlying details (e.g., `GC`).
+) allows us to focus more on the development of application logic in the development process. As a 30-year old development language, Python has a well-developed ecology and various modules, and most of our development and application scenarios can be found in mature modules or solutions from the community. `Python`
+We won't go into all the other advantages. The disadvantages of `Python` are also obvious: `Python`, as an interpreted language, has a relatively large performance gap compared to compiled languages like `C++` and `Go`.
 
 ### Apache APISIX Python Runner
 
-[apache-apisix-python-runner](https://github.com/apache/apisix-python-plugin-runner) 这个项目可以理解为 `Apache APISIX`
-和 `Python`
-之间的一道桥梁,通过 `Python Runner` 可以把 `Python` 直接应用到 `APISIX` 的插件开发中,最重要的还是希望让更多对 `Apache APISIX` 和 `API 网关` 感兴趣的 `Python开发者`
-通过这个项目更多的了解使用 `Apache APISIX`,以下为 `Apache APISIX` 多语言支持的架构图。
+[apache-apisix-python-runner](https://github.com/apache/apisix-python-plugin-runner) This project can be interpreted as `Apache APISIX`
+and `Python`.
+The most important thing is to let more `Python developers` who are interested in `Apache APISIX` and `API gateways` to learn more about the use of `Apache APISIX` and `API gateways` through this project.
+The following is a diagram of the architecture of `Apache APISIX` multi-language support.
 
-![Apache APISIX work flow](/img/blog_img/2021-09-06-1.png)
+! [Apache APISIX work flow](/img/blog_img/2021-09-06-1.png)
 
-上图左边是 `Apache APISIX` 的工作流程,右边的 `Plugin Runner` 是各语言的插件运行器,本文介绍的 `apisix-python-plugin-runner` 就是支持 `Python`
-语言的 `Plugin Runner`。
+The above diagram shows the workflow of `Apache APISIX` on the left, and the `Plugin Runner` on the right is the plug-in runner for each language, the `apisix-python-plugin-runner` introduced in this article is the one that supports `Python`.
+language.
 
-当你在 `Apache APISIX` 中配置一个 `Plugin Runner` 时,`Apache APISIX` 会启动一个子进程运行 `Plugin Runner`,该子进程与 `Apache APISIX`
-进程属于同一个用户,当我们重启或重新加载 `Apache APISIX` 时,`Plugin Runner` 也将被重启。
+When you configure a `Plugin Runner` in `Apache APISIX`, `Apache APISIX` will start a child process to run the `Plugin Runner` that belongs to the same user as the `Apache APISIX`
+process belongs to the same user, and when we restart or reload `Apache APISIX`, `Plugin Runner` will also be restarted.
 
-如果你为一个给定的路由配置了 `ext-plugin-*` 插件,请求命中该路由时将触发 `Apache APISIX` 通过 `Unix Socket` 向 `Plugin Runner` 发起 `RPC` 调用。调用分为两个阶段:
+If you configure the `ext-plugin-*` plugin for a given route, a request to hit that route will trigger an `Apache APISIX` `RPC` call to the `Plugin Runner` via the `Unix Socket`. The call is split into two phases.
 
 - [ext-plugin-pre-req](https://github.com/apache/apisix/blob/master/docs/en/latest/plugins/ext-plugin-pre-req.md)
-  :在执行 `Apache APISIX` 内置插件(Lua 语言插件)之前
+  : Before executing the `Apache APISIX` built-in plugin (Lua language plugin)
 - [ext-plugin-post-req](https://github.com/apache/apisix/blob/master/docs/en/latest/plugins/ext-plugin-post-req.md)
-  :在执行 `Apache APISIX` 内置插件(Lua 语言插件)之后
+  : after executing the `Apache APISIX` plug-in (Lua language plug-in)
 
-大家可以根据需要选择并配置 `Plugin Runner` 的执行时机。
+You can choose and configure the execution timing of `Plugin Runner` as needed.
 
-`Plugin Runner` 会处理 `RPC` 调用,在其内部创建一个模拟请求,然后运行多语言编写的插件,并将结果返回给 Apache APISIX。
+The `Plugin Runner` handles the `RPC` call, creates a simulated request inside it, and then runs the multilingual plugin and returns the result to Apache APISIX.
 
-多语言插件的执行顺序是在 `ext-plugin-*` 插件配置项中定义的,像其他插件一样,它们可以被启用并在运行中重新定义。
+The execution order of multilingual plugins is defined in the `ext-plugin-*` plugin configuration entry, and like other plugins, they can be enabled and redefined on the fly.
 
-## 部署测试
+## Deployment testing
 
-### 基础运行环境
+### Base runtime environment
 
 - Apache APISIX 2.7
 - Python 3.6+
 
 `Apache APISIX`
-的安装部署本文不在过多赘述,详情请参考 [Apache APISIX 官方文档:如何构建 Apache APISIX](https://github.com/apache/apisix/blob/master/docs/en/latest/how-to-build.md)
-进行部署。
+Please refer to the [Apache APISIX official documentation: How to build Apache APISIX](https://github.com/apache/apisix/blob/master/docs/en/latest/how-to-build.md) for details. )
+To deploy.
 
-### 下载安装 Python Runner
+### Download and install Python Runner
 
 ```bash
 $ git clone https://github.com/apache/apisix-python-plugin-runner.git
@@ -81,18 +80,18 @@ $ cd apisix-python-plugin-runner
 $ make install
 ```
 
-### 配置 Python Runner
+### Configuring Python Runner
 
-#### 开发模式
+#### development mode
 
-##### 运行 Python Runner
+##### Run Python Runner
 
 ```bash
 $ cd /path/to/apisix-python-plugin-runner
 $ APISIX_LISTEN_ADDRESS=unix:/tmp/runner.sock python3 apisix/main.py start
 ```
 
-##### 修改 APISIX 配置文件
+##### Modify APISIX configuration file
 
 ```bash
 $ vim /path/to/apisix/conf/config.yaml
@@ -105,9 +104,9 @@ ext-plugin:
   path_for_test: /tmp/runner.sock
 ```
 
-#### 生产模式
+#### Production mode
 
-##### 修改 APISIX 配置文件
+##### Modify APISIX configuration file
 
 ```bash
 $ vim /path/to/apisix/conf/config.yaml
@@ -120,9 +119,9 @@ ext-plugin:
   cmd: [ "python3", "/path/to/apisix-python-plugin-runner/apisix/main.py", "start" ]
 ```
 
-#### Python Runner 配置(可选)
+#### Python Runner configuration (optional)
 
-如果需要对 `Log Level` 或 `Unix Domain Socket` 环境变量调整可以修改 `Runner` 的配置文件
+If you need to adjust the ``Log Level`` or ``Unix Domain Socket`` environment variables, you can modify the `Runner` configuration file
 
 ```bash
 $ vim /path/to/apisix-python-plugin-runner/apisix/config.yaml
@@ -131,24 +130,24 @@ socket:
 
 logging:
   level: debug # error warn info debug
-```
+debug
 
-### 启动 Python Runner
+### Start Python Runner
 
 ```bash
 $ cd /path/to/apisix
 # Start or Restart
-$ ./bin/apisix [ start | restart ]
+$ . /bin/apisix [ start | restart ]
 ```
 
-启动或重启 `APISIX` 即可,此时 `APISIX` 和 `Python Runner` 已经完成配置并启动。
+Start or restart `APISIX`, when `APISIX` and `Python Runner` have been configured and started.
 
-### 测试 Python Runner
+### Testing Python Runner
 
-#### 配置 Apache APISIX 路由及插件信息
+#### Configuring Apache APISIX Routing and Plugin Information
 
 ```bash
-# 使用默认demo插件进行测试
+### Test with the default demo plugin
 $ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
 {
   "uri": "/get",
@@ -168,11 +167,11 @@ $ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f
 }'
 ```
 
-- `plugins.ext-plugin-pre-req.conf` 为 `Runner` 插件配置,`conf` 为数组格式可以同时设置多个插件。
-- 插件配置对象中 `name` 为插件名称,该名称需要与插件代码文件和对象名称一直。
-- 插件配置对象中 `value` 为插件配置,可以为 `JSON` 字符串。
+- `plugins.ext-plugin-pre-req.conf` is the `Runner` plugin configuration, `conf` is an array format to set multiple plugins at the same time.
+- The `name` in the plugin configuration object is the name of the plugin, which should be the same as the plugin code file and object name.
+- `value` in the plugin configuration object is the plugin configuration, which can be a `JSON` string.
 
-#### 访问验证
+#### access verification
 
 ```bash
 $ curl http://127.0.0.1:9080/get -i
@@ -189,25 +188,24 @@ Server: APISIX/2.7
 
 Hello, Python Runner of APISIX
 ```
+## Plugin Development
 
-## 插件开发
-
-### 插件目录
+### Plugin directory
 
 ```bash
 /path/to/apisix-python-plugin-runner/apisix/plugins
 ```
 
-此目录中的 `.py` 文件将会被自动加载。
+The `.py` files in this directory will be loaded automatically.
 
-### 插件示例
+### Plugin example
 
 ```bash
 /path/to/apisix-python-plugin-runner/apisix/plugins/stop.py
 /path/to/apisix-python-plugin-runner/apisix/plugins/rewrite.py
 ```
 
-### 插件格式
+### Plugin format
 
 ```python
 from apisix.runner.plugin.base import Base
@@ -222,7 +220,7 @@ class Stop(Base):
             This type of plugin can customize response `body`, `header`, `http_code`
             This type of plugin will interrupt the request
         """
-        super(Stop, self).__init__(self.__class__.__name__)
+        super(Stop, self). __init__(self.__class__. __name__)
 
     def filter(self, request: Request, response: Response):
         """
@@ -233,47 +231,47 @@ class Stop(Base):
             response parameters and information
         :return:
         """
-        # 在插件中可以通过 `self.config` 获取配置信息,如果插件配置为JSON将自动转换为字典结构
+        # In the plugin you can get the configuration information through `self.config`, if the plugin configuration is JSON it will be automatically converted to a dictionary structure
         # print(self.config)
 
-        # 设置响应头信息
+        # set the response headers
         headers = request.headers
         headers["X-Resp-A6-Runner"] = "Python"
         response.headers = headers
 
-        # 设置响应体信息
+        # Set the response body information
         response.body = "Hello, Python Runner of APISIX"
 
-        # 设置响应状态码
+        # Set the response status code
         response.status_code = 201
 
-        # 通过调用 `self.stop()` 中断请求流程,此时将立即响应请求给客户端
-        # 如果未显示调用 `self.stop()` 或 显示调用 `self.rewrite()`将继续将请求
-        # 默认为 `self.rewrite()`
+        # Interrupt the request process by calling `self.stop()`, which will immediately respond to the client
+        # If `self.stop()` is not shown or if `self.rewrite()` is shown, the request will continue
+        # Default is `self.rewrite()`
         self.stop()
 ```
 
-### 插件规范及注意事项
+### Plugin specifications and considerations
 
-- 实现插件对象必须继承 `Base` 类
-- 插件必须实现 `filter` 函数
-- `filter` 函数参数只能包含 `Request` 和 `Response` 类对象作为参数
-- `Request` 对象参数可以获取请求信息
-- `Response` 对象参数可以设置响应信息
-- `self.config` 可以获取插件配置信息
-- `filter` 函数中调用 `self.stop()` 时将马上中断请求,响应数据。
-- `filter` 函数中调用 `self.rewrite()` 时,将会继续请求。
+- Plugin object implementation must inherit from the `Base` class
+- The plugin must implement the `filter` function
+- `filter` function parameters can only contain `Request` and `Response` class objects as parameters
+- `Request` object parameter can get request information
+- `Response` object parameter can set the response information
+- `self.config` can get the plugin configuration information
+- Calling `self.stop()` in the `filter` function will immediately break the request and respond to the data.
+- When `self.rewrite()` is called in the `filter` function, the request will continue.
 
-## 欢迎参与
+## Welcome to participate
 
-目前 `Apache APISIX` 各语言的 `Runner` 还处于早期开发阶段,我们会陆续完善其功能。成功的开源项目离不开大家的参与和贡献,欢迎各位参与 `Apache APISIX Runner`
-的开发,让我们一起共建 `Apache APISIX` 与各语言的桥梁。
+The `Runner` for `Apache APISIX` languages is still in the early stages of development, and we will continue to improve its functionality. A successful open source project cannot be achieved without everyone's participation and contribution, welcome to participate in `Apache APISIX Runner`.
+Let's build a bridge between `Apache APISIX` and other languages together.
 
 - [apisix-python-plugin-runner](https://github.com/apache/apisix-python-plugin-runner)
 - [apisix-go-plugin-runner](https://github.com/apache/apisix-go-plugin-runner)
 - [apisix-java-plugin-runner](https://github.com/apache/apisix-java-plugin-runner)
 
-## 相关阅读
+## Related Reading
 
-- [Go 让 Apache APISIX 如虎添翼](http://apisix.apache.org/blog/2021/08/19/go-makes-Apache-APISIX-better)
-- [如何用 Java 编写 Apache APISIX 插件](https://apisix.apache.org/blog/2021/06/21/use-Java-to-write-Apache-APISIX-plugins)
+- [Go makes Apache APISIX like a tiger](http://apisix.apache.org/blog/2021/08/19/go-makes-Apache-APISIX-better)
+- [How to write Apache APISIX plugins in Java](https://apisix.apache.org/blog/2021/06/21/use-Java-to-write-Apache-APISIX-plugins)
diff --git a/website/blog/2021/09/07/how-to-use-apisix-auth.md b/website/blog/2021/09/07/how-to-use-apisix-auth.md
index 3202434..d7a000f 100644
--- a/website/blog/2021/09/07/how-to-use-apisix-auth.md
+++ b/website/blog/2021/09/07/how-to-use-apisix-auth.md
@@ -1,157 +1,159 @@
 ---
-title: "使用 Apache APISIX 进行集中式身份认证及进阶玩法"
-author: "朱欣欣"
+title: Centralized Authentication with Apache APISIX and Advanced Play
+author: Xinxin Zhu
 authorURL: "https://github.com/starsz"
 authorImageURL: "https://avatars.githubusercontent.com/u/25628854?v=4"
 keywords: 
 - APISIX
-- 集中式身份认证
-description: 本文介绍了 Apache APISIX 的身份认证功能,从重要性和玩法使用上进行了详细介绍和细节使用。
+- Casbin
+- Authorization
+- Practical Case
+description: This article introduces the authentication feature of Apache APISIX, in terms of importance and playful use, with detailed descriptions and details on its use.
 tags: [Practical Case]
 ---
 
-> 本文介绍了 Apache APISIX 的身份认证功能,从重要性和玩法使用上进行了详细介绍。
+> This article describes the authentication features of Apache APISIX, in terms of importance and playful usage.
 
-<!--truncate-->
+<! --truncate -->
 
-身份认证在日常生活当中是非常常见的一项功能,大家平时基本都会接触到。比如用支付宝消费时的人脸识别确认、公司上班下班时的指纹/面部打卡以及网站上进行账号密码登录操作等,其实都是身份认证的场景体现。
+Authentication is a very common feature in daily life, and we all come across it in our daily lives. For example, face recognition when using Alipay, fingerprint/face clocking in and out of work, and password login on websites are all scenarios of authentication.
 
-![概念理解](https://static.apiseven.com/202108/1631004418593-0a46f949-72aa-4cd4-8f38-1988327c92d6.png)
+! [Concept Understanding](https://static.apiseven.com/202108/1631004418593-0a46f949-72aa-4cd4-8f38-1988327c92d6.png)
 
-如上图,Jack 通过账号密码请求服务端应用,服务端应用中需要有一个专门用做身份认证的模块来处理这部分的逻辑。请求处理完毕之后,如果使用 JWT Token 认证方式,服务器会反馈一个 Token 去标识这个用户为 Jack。如果登录过程中账号密码输入错误,就会导致身份认证失败。这个场景大家肯定都非常熟悉,这里就不做展开举例了。
+As shown above, Jack requests a server-side application with an account password, and the server-side application needs a module dedicated to authentication to handle this part of the logic. After the request is processed, if the JWT Token authentication method is used, the server will provide a Token to identify the user as Jack. If the account password is entered incorrectly during the login process, it will lead to authentication failure. This scenario must be very familiar to everyon [...]
 
-## 网络身份认证的意义在哪里
+## What is the significance of network authentication
 
-### 安全性
+### Security
 
-身份认证确保了后端服务的安全性,避免了未经授权的访问,从而确保数据的安全性。比如防止某些黑客攻击,以及一些恶意调用,这些都可以通过身份认证进行阻拦。
+Authentication ensures the security of back-end services and avoids unauthorized access, thus ensuring the security of data. For example, it prevents certain hacking attacks, and some malicious calls, which can be blocked by authentication.
 
-### 实用性
+### Practicality
 
-从实用性的角度考虑,它可以更方便地记录操作者或调用方。比如上班打卡其实就是通过记录「谁进行了这项操作」来统计员工上班信息。
+From the perspective of practicality, it can be more convenient to record the operator or caller. For example, clocking in at work is actually a way to record "who performed this operation" to count employees' work information.
 
-其次它可以记录访问频率及访问频次。例如记录某用户在最近几分钟中发起请求的频率和频次,可以判断这个用户活跃程度,也可以判断是否为恶意攻击等。
+Secondly, it can record the access frequency and frequency of access. For example, it can record the frequency and frequency of requests initiated by a user in the last few minutes, which can determine how active the user is, and also whether it is a malicious attack, etc.
 
-### 功能性
+### Functionality
 
-在功能层面,它通过识别身份可以对不同的身份进行不同权限的操作处理。比如在公司里,你的身份权限无法使用某些页面或服务。再细致一点,对不同身份或者不同的 API 接口调用方做一些相关技术上的限制策略,如限流限速等,以此来达到根据不同的用户(调用方)采取不同的功能限制。
+At the functional level, it can handle operations with different privileges for different identities by identifying them. For example, in a company, you cannot use certain pages or services with your identity authority. To be more detailed, it can do some related technical restriction policies for different identities or different API interface callers, such as limiting the flow and speed, etc., so as to achieve different functional restrictions according to different users (callers).
 
-## 使用 Apache APISIX 进行集中式身份认证优点
+## Benefits of centralized authentication with Apache APISIX
 
-### 从传统到新模式
+### From traditional to new model
 
-如下图所示,左侧的图为我们展示了一种比较常见的传统身份认证方法。每一个应用服务模块去开发一个单独的身份认证模块,用来支持身份认证的一套流程处理。但当服务量多了之后,就会发现这些模块的开发工作量都是非常巨大且重复的。
+As shown in the figure below, the diagram on the left shows us a more common traditional authentication approach. Each application service module goes to develop a separate authentication module that is used to support a set of process handling for authentication. But when the volume of services increases, it becomes clear that the development workload of these modules is huge and repetitive.
 
-![Apache APISIX 身份认证](https://static.apiseven.com/202108/1631004492221-0721d933-705d-4875-b956-e94a11a45135.png)
+! [Apache APISIX Authentication](https://static.apiseven.com/202108/1631004492221-0721d933-705d-4875-b956-e94a11a45135.png)
 
-这种时候,我们可以通过把这部分的开发逻辑放置到 Apache APISIX 的网关来实现统一,减少开发量。
+At such times, we can achieve unification and reduce the amount of development by placing this part of the development logic in the Apache APISIX gateway.
 
-图右所示,用户或应用方直接去请求 Apache APISIX,然后 Apache APISIX 通过识别并认证通过后,会将鉴别的身份信息传递到上游应用服务。之后上游应用服务就可以从请求头中读到这部分信息,然后进行后续相关工作的处理。
+As shown in the figure on the right, the user or application party goes directly to request Apache APISIX, and then Apache APISIX passes the authenticated identity information to the upstream application service after it has been identified and authenticated. After that, the upstream application service can read this information from the request header and then process the subsequent related work.
 
-讲完了大概流程,我们来详细罗列下。
+After the general process, let's list it in detail.
 
-### 优点一:配置收敛,统一管理
+### Benefit 1: Configuration convergence, unified management
 
-![Dashboard](https://static.apiseven.com/202108/1631004574541-87b607eb-2971-4c1d-a1d6-74cf4a5fdd42.png)
+! [Dashboard](https://static.apiseven.com/202108/1631004574541-87b607eb-2971-4c1d-a1d6-74cf4a5fdd42.png)
 
-如上图是一张 APISIX-Dashboard 的界面截图,可以看到路由、Consumer 等数据信息。这里的 Consumer 可以理解为一个应用方,比如可以为应用专门去创建一个 Consumer 并配置相关的认证插件,例如 JWT、Basic-Auth 等插件。当有新的服务出现时,我们需要再创建一个 Consumer,然后将这部分配置信息给配置到第二个应用服务上。
+The screenshot above is a screenshot of the APISIX-Dashboard interface, you can see the routing, Consumer and other data information. The Consumer here can be understood as an application party, for example, you can create a Consumer specifically for the application and configure related authentication plugins, such as JWT, Basic-Auth, etc. When there is a new service, we need to create another Consumer, and then configure this part of the configuration information to the second applicat [...]
 
-通过集中式身份认证,可以将客户配置进行收敛并统一管理,达到降低运维成本的效果。
+Through centralized authentication, we can converge and unify the customer configuration and achieve the effect of reducing the operation and maintenance cost.
 
-### 优点二:插件丰富,减少开发
+### Benefit 2: Rich plug-ins, reduced development
 
-Apache APISIX 作为一个 API 网关,目前已开启与各种插件功能的适配合作,插件库也比较丰富。目前已经可与大量身份认证相关的插件进行搭配处理,如下图所示。
+Apache APISIX, as an API gateway, is now open to cooperation with various plug-in functions for adaptation, and the plug-in library is relatively rich. At present, it can already work with a large number of authentication-related plug-ins, as shown in the following figure.
 
-![API 网关认证插件](https://static.apiseven.com/202108/1631004738218-586e84af-a5ab-4714-845d-4d71b7ba79e3.png)
+! [API Gateway Authentication Plugin](https://static.apiseven.com/202108/1631004738218-586e84af-a5ab-4714-845d-4d71b7ba79e3.png)
 
-基础认证插件比如 Key-Auth、Basic-Auth,他们是通过账号密码的方式进行认证。
+Basic authentication plug-ins such as Key-Auth, Basic-Auth, they are authenticated by way of account password.
 
-复杂一些的认证插件如 Hmac-Auth、JWT-Auth。如 Hmac-Auth 通过对请求信息做一些加密,生成一个签名。当 API 调用方将这个签名携带到 Apache APISIX 的网关 Apache APISIX 会以相同的算法计算签名,只有当签名方和应用调用方认证相同时才予以通过。
+More complex authentication plugins such as Hmac-Auth, JWT-Auth. e.g. Hmac-Auth generates a signature by doing some encryption on the request information. When the API caller carries this signature to the Apache APISIX gateway Apache APISIX calculates the signature with the same algorithm and passes it only if the signer and the application caller are authenticated the same.
 
-Authz-casbin 插件是目前 Apche APISIX 与 Casbin 社区正在进行合作开发的一个项目,它的应用原理是按照 Casbin 的规则,去处理一些基于角色的权限管控 (RBAC),进行 ACL 相关操作。
+The Authz-casbin plugin is a project currently being developed by Apche APISIX in collaboration with the Casbin community. The principle of the application is to handle role-based authority control (RBAC) and ACL-related operations according to Casbin rules.
 
-其他则是一些通用认证协议和联合第三方组件进行合作的认证协议,例如 OpenID-Connect 身份认证机制,以及 LDAP 认证等。
+Others are generic authentication protocols and collaborative authentication protocols with third-party components, such as OpenID-Connect authentication mechanism, and LDAP authentication.
 
-### 优点三:配置灵活,功能强大
+### Benefit 3: Flexible and powerful configuration
 
-功能强大该如何理解,就是 Apache APISIX 中可以针对每一个 Consumer (即调用方应用)去做不同级别的插件配置。
+How to understand powerful is that Apache APISIX can do different levels of plug-in configuration for each Consumer (i.e., caller application).
 
-![配置灵活](https://static.apiseven.com/202108/1631004783828-3dd0056c-a6aa-4ab9-b902-7bd2ca545ffe.png)
+! [Configuration flexibility](https://static.apiseven.com/202108/1631004783828-3dd0056c-a6aa-4ab9-b902-7bd2ca545ffe.png)
 
-如上图,我们创建了两个消费者 Consumer A,Consumer B。我们将 Consumer A 应用到`应用1`,则后续`应用1`的访问将会开启 Consumer A 的这部分插件,例如 IP 黑白名单,限制并发数量等。将 Consumer B 应用到`应用2` ,由于开启了 http-log 插件,则`应用2`的访问日志将会通过 HTTP 的方式发送到日志系统进行收集。
+As shown above, we have created two consumers Consumer A and Consumer B. If we apply Consumer A to `Application 1`, subsequent accesses to `Application 1` will enable this part of Consumer A's plugins, such as IP blacklisting, limiting the number of concurrency, etc. If we apply Consumer B to `Application 2`, the access log of `Application 2` will be sent to the logging system for collection via HTTP since the http-log plugin is enabled.
 
-## Apache APISIX 中身份认证的玩法
+## How to play with authentication in Apache APISIX
 
-关于 Apache APISIX 身份认证的玩法,这里为大家提供三个阶段的玩法推荐,大家仅作参考,也可以在这些基础上,进行更深度的使用和应用。
+Regarding the play of Apache APISIX authentication, here is a recommendation of three stages of play for your reference only, or you can use and apply them in more depth on the basis of these.
 
-### 初级:普通玩法
+### Primary: General play
 
-普通玩法推荐大家基于 Key-Auth、Basic-Auth、JWT- Auth 和 Hmac-Auth 进行,这些插件的使用需要与 Consumer 进行关联使用。
+Ordinary play is recommended based on Key-Auth, Basic-Auth, JWT-Auth and Hmac-Auth, the use of these plug-ins need to be associated with the use of Consumer.
 
-#### 步骤一:创建路由,配置身份认证插件
+#### Step 1: Create a route and configure the authentication plugin
 
-创建路由,配置上游为 `httpbin.org`,同时开启 `basic-auth` 插件。
+Create a route, configure the upstream as `httpbin.org` and enable the `basic-auth` plugin.
 
-![创建路由](https://static.apiseven.com/202108/1631004892467-71c93f8f-dc0e-47fe-a88f-943adb9edbff.png)
+! [Create route](https://static.apiseven.com/202108/1631004892467-71c93f8f-dc0e-47fe-a88f-943adb9edbff.png)
 
-#### 步骤二:创建消费者,配置身份信息
+#### Step 2: Create consumer and configure identity information
 
-创建消费者 foo。在消费者中,我们需要配置用户的认证信息,例如 `username` 为 foo,`password` 为 `bar`。
+Create the consumer foo. In the consumer, we need to configure the user authentication information, e.g. `username` for foo and `password` for `bar`.
 
-![创建消费者](https://static.apiseven.com/202108/1631004937828-15ac5d8f-0e45-4c3d-94e8-2b180266b379.png)
+! [Create consumer](https://static.apiseven.com/202108/1631004937828-15ac5d8f-0e45-4c3d-94e8-2b180266b379.png)
 
-#### 步骤三:应用服务携带认证信息进行访问
+#### Step 3: Application service carries authentication information for access
 
-应用携带 `username:foo` ,`password: bar` 访问 Apache APISIX。Apache APISIX 通过认证,并将请求 Authorization 请求头携带至上游 `httpbin.org` 。由于 `httpbin.org` 中 get 接口会将请求信息返回,因此我们可以在其中观察到请求头 `Authorization`。
+The application accesses Apache APISIX with `username:foo`,`password: bar`. Apache APISIX is authenticated and carries the request Authorization request header upstream to `httpbin.org`. Since the get interface in `httpbin.org` returns the request information, we can observe the request header `Authorization` in it.
 
-![请求携带](https://static.apiseven.com/202108/1631004973305-4b209f79-f7de-41a2-994e-8877a6624d99.png)
+! [Request Carry](https://static.apiseven.com/202108/1631004973305-4b209f79-f7de-41a2-994e-8877a6624d99.png)
 
-### 中级:进阶玩法
+### Intermediate: advanced play
 
-进阶模式下,是使用 Apache APISIX 与 OpenID-Connect 插件进行对接第三方认证服务。OpenID-Connect 是一种认证机制,可以采用该认证机制对接用户的用户管理系统或者用户管理服务,例如国内的 Authing 和腾讯云,国外的 Okta 和 Auth0 等。
+The advanced mode is to use Apache APISIX with the OpenID-Connect plugin to interface to third-party authentication services. openID-Connect is an authentication mechanism that can be used to interface to a user's user management system or user management services, such as Authing and Tencent Cloud in China, Okta and Auth0, etc.
 
-![第三方认证模式](https://static.apiseven.com/202108/1631005002268-7393b40e-1733-4e66-bc09-742be221efae.png)
+! [Third-party authentication mode](https://static.apiseven.com/202108/1631005002268-7393b40e-1733-4e66-bc09-742be221efae.png)
 
-具体操作如下,这里使用 Okta 云服务举例:
+The details are as follows, using Okta cloud service as an example.
 
-#### 步骤一:创建 OpenID-Connect 应用
+#### Step 1: Create OpenID-Connect application
 
-在 Okta 控制台页面创建一个支持 OpenID-Connect 的应用。
+Create an application that supports OpenID-Connect from the Okta console page.
 
-![创建](https://static.apiseven.com/202108/1631005022640-1e931b14-8175-47f3-bfb8-46e09cec616b.png)
+! [Create](https://static.apiseven.com/202108/1631005022640-1e931b14-8175-47f3-bfb8-46e09cec616b.png)
 
-#### 步骤二:创建路由,配置 OpenID-Connect 插件
+#### Step 2: Create a route and configure the OpenID-Connect plug-in
 
-创建路由,配置访问的上游地址为 httpbin.org,同时开启 openid-connect 插件,将 Okta 应用的配置填写到 openid-connect 插件中。
+Create a route, configure the upstream address to httpbin.org, and enable the openid-connect plug-in, and fill in the configuration of the Okta application into the openid-connect plug-in.
 
-![配置插件](https://static.apiseven.com/202108/1631005045489-b637ef9a-c71c-440f-ae58-a93398a4c9dd.png)
+! [Configure the plugin](https://static.apiseven.com/202108/1631005045489-b637ef9a-c71c-440f-ae58-a93398a4c9dd.png)
 
-#### 步骤三:用户访问时,会跳转至登录页面。登录完成后,上游应用获取用户信息
+#### Step 3: When the user visits, it will jump to the login page. After the login is complete, the upstream application gets the user information
 
-此时,当用户访问 Apache APISIX 时,会先重定向到 Okta 登录页面。此时需要在该页面填写 Okta 中已经存在的用户的账号密码。登陆完成之后,Apache APISIX 会将本次认证的 Access-Token,ID-Token 携带至上游,同时将本次认证的用户信息以 base64 的方式编码至 Userinfo 请求头,传递至上游。
+At this point, when the user accesses Apache APISIX, they will first be redirected to the Okta login page. At this point, you need to fill in the account password of the user that already exists in Okta. After login is completed, Apache APISIX will carry the Access-Token and ID-Token to the upstream, and encode the authenticated user information in base64 in the Userinfo request header and pass it to the upstream.
 
-![APISIX 页面](https://static.apiseven.com/202108/1631005077846-0f877a03-ddcd-46f6-a38d-f046b4700058.png)
+! [APISIX Page](https://static.apiseven.com/202108/1631005077846-0f877a03-ddcd-46f6-a38d-f046b4700058.png)
 
-## 高级:DIY 玩法
+## Advanced: DIY Play
 
-这里提供的 DIY 玩法是利用了 Serverless 插件,这款插件功能丰富,玩法也非常多。大家如果有自己的使用玩法,也欢迎在社区内进行交流。
+The DIY gameplay provided here makes use of the Serverless plugin, which is feature-rich and has a lot of ways to play. If you have your own use of play, you are also welcome to communicate in the community.
 
-具体操作流程就是将自己的代码片段通过 Serverless 插件上传到 Apache APISIX,这个过程中 Serverless 插件支持动态配置和热更新。
+The specific operation process is to upload their own code snippets through the Serverless plug-in to Apache APISIX, the process of Serverless plug-in support dynamic configuration and hot updates.
 
-### 方式一:自定义判断逻辑
+### Way 1: Custom judgment logic
 
-![判断逻辑](https://static.apiseven.com/202108/1631005112469-c04868b8-388e-4b81-abcc-d37b6a8951f5.png)
+! [Judgment Logic](https://static.apiseven.com/202108/1631005112469-c04868b8-388e-4b81-abcc-d37b6a8951f5.png)
 
-通过请求头、参数等相关信息,来进行一些判断。通过这种做法,我们可以去实现自己的一些规则,比如说结合企业内部的一些认证,或者去写一些自己的业务逻辑。
+Some judgments are made by request headers, parameters and other related information. By this approach, we can go to implement some of our own rules, such as combining some internal authentication of the enterprise, or go to write some of our own business logic.
 
-### 方式二:发起认证鉴权请求
+### Mode 2: Initiate authentication forensic request
 
-![鉴权请求](https://static.apiseven.com/202108/1631005141578-f90cf948-4913-45cd-a28e-9e697ad197fe.png)
+! [Authentication Request](https://static.apiseven.com/202108/1631005141578-f90cf948-4913-45cd-a28e-9e697ad197fe.png)
 
-通过 HTTP 库发起一个 HTTP 请求,我们可以利用第三方服务做一些认证、鉴权相关事情,然后解析返回结果。通过这种方式,我们可以做的事情就可以扩展很多。比如对接 Redis 或数据库,只要是通过 TCP 或 UDP 这种形式的,都可以通过 Serverless 插件进行尝试。
+By initiating an HTTP request through the HTTP library, we can use a third-party service to do some authentication and forensics related things and then parse the returned results. In this way, we can do a lot of things that can be extended. For example, interfacing to Redis or a database, as long as it's over TCP or UDP, can be attempted with the Serverless plugin.
 
-### 配置上传
+### Configuring uploads
 
-完成自定义代码片之后,我们创建路由,并将代码片配置到 Serverless 插件。后面再通过访问 Apache APISIX 获取相应的信息反馈,测试插件是否生效。
+After completing the custom code snippet, we create the route and configure the snippet to the Serverless plugin. Later, we will test if the plugin is working by accessing Apache APISIX and getting the appropriate feedback.
 
-![配置上传](https://static.apiseven.com/202108/1631005184917-bc620c0b-d4c6-43f5-8450-4f5b2b9549e1.png)
+! [Configure Upload](https://static.apiseven.com/202108/1631005184917-bc620c0b-d4c6-43f5-8450-4f5b2b9549e1.png)
diff --git a/website/blog/2021/09/09/how-to-contribute-to-an-OpenSource-without-coding.md b/website/blog/2021/09/09/how-to-contribute-to-an-OpenSource-without-coding.md
index 8c36589..ebf1a93 100644
--- a/website/blog/2021/09/09/how-to-contribute-to-an-OpenSource-without-coding.md
+++ b/website/blog/2021/09/09/how-to-contribute-to-an-OpenSource-without-coding.md
@@ -1,108 +1,108 @@
 ---
-title: "不写代码,如何为开源项目做贡献?"
-author: "赵若妃"
+title: How can I contribute to an open source project without writing code?
+author: Ruofei Zhao
 authorURL: "https://github.com/Serendipity96"
 authorImageURL: "https://avatars.githubusercontent.com/u/23514812?v=4"
 keywords: 
-- 开源项目
-- 贡献
-description: 本文介绍了很多不写代码为开源项目贡献的方式,可以通过写文章、做视频、对外分享、建立本地社区、积极参与社区讨论等方式参与到开源项目中。
+- Open Source
+- Contribution
+description: This article introduces many ways to contribute to open source projects without writing code. You can participate in open source projects by writing articles, making videos, sharing them externally, building local communities, and actively participating in community discussions.
 tags: [Community]
 ---
 
-> 本文介绍了很多不写代码为开源项目贡献的方式,可以通过写文章、做视频、对外分享、建立本地社区、积极参与社区讨论等方式参与到开源项目中。
+> This article describes many ways to contribute to open source projects without writing code. You can get involved in open source projects by writing articles, making videos, sharing them externally, building local communities, and participating actively in community discussions.
 
-<!--truncate-->
+<! --truncate -->
 
-笔者为开源项目贡献过几个 PR,提交过几个 issue,直到现在还清晰记得几年前第一个 PR 被 merge 时的兴奋,体验到了参与开源的乐趣。但是只停留在了 contributor 阶段,没有下文了,因为笔者后来不做研发了,**认为不熟悉代码、不能修 bug 就没有贡献的机会了。**
+I have contributed several PRs and submitted several issues to open source projects, and I still remember clearly the excitement when my first PR was merged a few years ago, and I experienced the fun of participating in open source. But only in the contributor stage, no more, because I later do not do R & D, **think not familiar with the code, can not fix the bug will not have the opportunity to contribute.**
 
-这里是有一个误区的,并非只有贡献代码、修复 bug 才是为项目做贡献。成为贡献者只能通过贡献代码的方式吗?**如果我不会写代码,并非开发者,怎样才能成为一个开源项目的贡献者,甚至晋升为 committer 呢?**
+There is a misunderstanding here, not only contributing code and fixing bugs are contributions to the project. Is the only way to become a contributor is to contribute code? **If I can't write code and I'm not a developer, how can I become a contributor to an open source project and even get promoted to committer?** If I don't know how to write code and am not a developer, how can I become a contributor to an open source project or even be promoted to committer?
 
-笔者梳理之后,发现有非常多的方式,在这里分享给大家,无论是不是开发者,都可以实践。(笔者也在实践的路上)
+After I sorted it out, I found that there are many ways to become a contributor, so I'll share them here. (The author is also on the way to practice)
 
-## 非代码方式
+## Non-code way
 
-### 写文章
+### Writing articles
 
-写文章是一个很容易被忽略的方式,我们可以通过文章来宣传、布道某个技术。比如撰写某个项目的上手指南、踩坑记录、架构设计分析、实现原理等等。
+Writing articles is an easily overlooked way to promote and evangelize a technology. For example, writing a project's induction guide, a pit-stop record, an architectural design analysis, implementation principles, etc.
 
-如果开始写文章比较困难,可以先从翻译做起,无论是中译英还是英译中,只要是对这个项目有意义的内容,都是在为它做贡献。
+If it is difficult to start writing articles, you can start with translation, either from Chinese to English or from English to Chinese, as long as the content is meaningful to the project, you are contributing to it.
 
-亦或是你观看了别人的技术实战分享,把别人的分享整理成文字版,分享到社区中,帮助更多人了解项目。
+Or if you have watched others' technical practical sharing, organize others' sharing into a text version and share it to the community to help more people understand the project.
 
-笔者还注意到,有些贡献者把文章整理成一本开发小册、或者一本专业书籍,系统地向其他人介绍某项技术。
+I have also noticed that some contributors have put together a development booklet, or a professional book, to systematically introduce a technology to others.
 
-### 制作视频
+### Making videos
 
-制作视频也是一个不错的方式。我们可以把文字的方式转换成视频,用视频的方式介绍某个开源项目,录制上手指南、踩坑记录、架构设计分析、实现原理等等。笔者也看到了很多项目采用视频的方式介绍,视频可能是动画的形式,也可能是真人讲解,无论哪一种,视频在呈现上会比文字更生动有趣一些。
+Making videos is also a good way to do this. We can convert the text into a video, introduce an open source project in a video way, record a guide, step in the record, architecture design analysis, implementation principles and so on. I also saw a lot of projects using video presentation, the video may be the form of animation, may also be a real person to explain, no matter which, the video presentation will be more vivid and interesting than the text some.
 
-不过前期剪辑视频对于新手来说工作量可能比较大。
+However, the pre-editing video for newcomers to the workload may be relatively large.
 
-### 大会分享
+### Conference sharing
 
-如果你不害羞、喜欢外分享,那么去技术大会上分享、布道开源项目也是一个很不错的选择。这对了解项目的新手可能有难度,假以时日,当我们从小白进阶成熟悉者时,去分享就比较容易达成了。分享可以锻炼自己的表达能力、逻辑思维能力,还可以锻炼自己的胆量~(也可能收获到橄榄枝)
+If you are not shy and like to share outside, then going to technical conferences to share and preach open source projects is also a very good choice. This may be difficult for newcomers who understand the project, with time, when we progress from the little white to familiar, go to share is easier to reach. Sharing can exercise their own expression skills, logical thinking skills, but also exercise their own guts ~ (may also harvest the olive branch)
 
-### 完善文档
+### Improve the documentation
 
-大多数开发者并不喜欢写文档,但是文档是其他人了解项目、上手项目的重要途径。笔者曾经的开发经历中,如果遇到一份清晰详细的文档,感觉是非常幸运的事情,上手项目会快很多。文档内容不限于启动说明,如果有架构设计、原理介绍再好不过了。
+Most developers do not like to write documentation, but documentation is an important way for other people to understand the project and get started with the project. I once in the development experience, if you encounter a clear and detailed documentation, I feel very lucky thing, get started on the project will be much faster. Documentation is not limited to start-up instructions, if there is an architectural design, the principle of the introduction is even better.
 
-我们可以为感兴趣的开源项目提交文档,甚至是修复文档,比如:
+We can submit documentation for open source projects of interest, or even fix the documentation, for example
 
-- 代码更新,文档没有同步更新
-- 修复错误的下载链接、文档链接
-- 优化文档,修改文档描述,使其更易理解
-- 提交架构设计、原理介绍文档
+- code updates, the documentation is not updated at the same time
+- fix the wrong download links, documentation links
+- Optimize the documentation, modify the description of the documentation to make it easier to understand
+- Submit architecture design, schematic documentation
 
-### 建设本地社区,组织/参与活动
+### Build local community, organize/participate in events
 
-如果你对一个项目很感兴趣,参与到本地的社区中,和志同道合的人交流、组织当地的活动,为项目发展做贡献。
+If you are interested in a project, get involved in the local community, communicate with like-minded people, organize local events, and contribute to the development of the project.
 
-如果没有本地社区,你可以作为发起人建设本地社区。笔者了解到 Apache 软件基金会鼓励大家建设 Local Community,比如 ALC Beijing。像其他的技术社区,如:KubeSphere、云原生社区都在积极发展本地社区。
+If there is no local community, you can build one as an initiator. I know that the Apache Software Foundation encourages people to build Local Communities, such as ALC Beijing, and other technical communities such as KubeSphere and Cloud Native Community are actively developing local communities.
 
-### 积极参与社区讨论
+### Actively participate in community discussions
 
-#### 活跃在 Apache mail list
+#### is active on the Apache mailing list
 
-Apache 文化鼓励大家通过邮件列表的形式讨论问题、做决策,所有的事项都要有所记录。每一个 Apache 项目都有自己专属的邮件列表,如果对项目有什么想法,社区非常鼓励大家到邮件列表讨论。
+The Apache culture encourages discussion and decision making through mailing lists, where everything is documented. Each Apache project has its own mailing list, and if you have an idea for a project, the community strongly encourages you to discuss it on the mailing list.
 
-我们可以:
+We can.
 
-- 为项目发版投票
-- 回复其他人发起的讨论,表达自己的观点
-- 发起一次讨论
+- Post a poll for a project
+- Reply to discussions started by others to express our own views
+- Start a discussion
 
-为什么是邮件列表?
+Why a mailing list?
 
-邮件列表给我的感觉很古老,笔者去了解了 Apache 软件基金会发展历史,最初基金会的创始人是通过邮件列表的方式讨论问题,难道是古老文化的保留?
+Mailing lists give me a very old-fashioned feeling. I went to learn about the history of the Apache Software Foundation, and initially the founders of the foundation discussed issues by way of mailing lists, is it a preservation of the old culture?
 
-虽然互联网发展迅速,但是世界上仍有接收图片困难、使用其他软件的困难,尽管是我们熟知的 wechat、Twitter 使用者也没有覆盖全球,但是使用邮件能够以最小门槛的方式与他人建立联系,保障全世界各地的人都能参加到社区讨论中,这就是 Apache 软件基金会保留邮件列表方式的初衷。
+Although the Internet is developing rapidly, but the world still has difficulties in receiving pictures, difficulties in using other software, although wechat, Twitter users we know also do not cover the world, but the use of mail can be the smallest threshold to establish contact with others, to ensure that people around the world can participate in community discussions, this is the original intention of the Apache Software Foundation to retain the mailing list approach.
 
-#### 活跃在 Github
+#### is active on Github
 
-Github 是开发者最常逛的网站了,大多数的开源项目都托管在 Github 上。我可以在感兴趣的项目下
+Github is the most common site for developers, and most open source projects are hosted on Github. I can
 
-- 提 issue 说出我的想法,项目的改进方向
-- 提交一个 bug report
-- review 其他小伙伴提交的 pr
+- raise an issue with my thoughts on how to improve the project
+- submit a bug report
+- review pr submitted by other partners
 
-这些都是为开源项目做贡献的方式。
+These are all ways to contribute to open source projects.
 
 #### Apache mail list vs Github
 
-有 Github 为什么还要使用邮件列表?代码托管在 Github ,看起来社区的协作工作好像都是在 Github 上完成的呀?
+Why use a mailing list when you have Github? The code is hosted on Github, and it seems like all the community collaboration is done on Github?
 
-在邮件列表里讨论问题,如果大家没有提出反对意见,可以默许为大家通过提议。如果有反对意见,大家会充分讨论,最终达成一致或搁置。
+If there are no objections to discussing an issue on the mailing list, the proposal will be approved by default. If there are objections, they will be fully discussed and eventually agreed or set aside.
 
-使用邮件列表的方式讨论,也是对 Apache 文化的认同。遵循 Apache 规则的项目,邮件列表是是社区的首要阵地,Github 是一个方便的协同工具。
+The use of mailing lists for discussion is also a way to identify with the Apache culture. For projects that follow Apache rules, the mailing list is the primary place for the community, and Github is a convenient collaborative tool.
 
-## 代码方式
+## Code approach
 
-### 贡献功能、修复 bug
+### Contribute features, fix bugs
 
-当然了,开源项目肯定是离不开代码的。如果开源项目的技术栈你很熟悉,很快就能上手贡献代码,和社区小伙伴们一起完善相关功能、修复 bug,持续贡献,成为项目 contributor,进一步提名成为 committer、PMC 是很容易的事情。大多数的贡献者都是通过提交代码的方式成为 committer 的,但是作为像笔者这样不熟悉代码的小伙伴,这一条就不适合了。
+Of course, open source projects are inseparable from the code. If you are familiar with the technology stack of an open source project, you will soon be able to contribute code, work with community partners to improve the relevant features, fix bugs, and continue to contribute, becoming a project contributor, and further nominated to become a committer, PMC is very easy to do. Most of the contributors become committer by submitting code, but as a small partner like me who is not familiar [...]
 
-这里需要注意一点,committer 是对贡献者过往贡献的肯定,不会因为未来不再贡献而去除 committer 身份,也不会因为是 committer 而有更大的权利,社区中人人平等。
+It is important to note that a committer is an affirmation of a contributor's past contributions and will not be removed as a committer because he or she will no longer contribute in the future, nor will they have greater rights because they are a committer.
 
-## 总结
+## Summary
 
-本文介绍了很多成为开源项贡献的途径,如果你有很感兴趣的开源项目却不熟悉代码,又想参与到开源社区中,写文章、做视频、对外分享、建立本地社区、积极参与社区讨论都是很不错方式哦,欢迎实践。
+If you are interested in open source projects but not familiar with the code, and want to participate in the open source community, writing articles, making videos, sharing with the public, building local communities, and actively participating in community discussions are all very good ways, welcome to practice.
diff --git a/website/blog/2021/09/15/weekly-report.md b/website/blog/2021/09/15/weekly-report.md
index fcf13cb..9552932 100644
--- a/website/blog/2021/09/15/weekly-report.md
+++ b/website/blog/2021/09/15/weekly-report.md
@@ -1,28 +1,29 @@
 ---
-title: "社区周报|新晋 committer 两位,功能亮点更新进行中"
-keywords: 
-- Apache APISIX
-- API 网关
-- contributor
-- Good first issue
-description: “独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的每周进展,方便大家参与到 Apache APISIX 社区中来。
+title: Community Weekly|Two new committers, feature highlight updates in progress
+keywords:
+  - Apache APISIX
+  - API Gateway
+  - contributor
+  - Good first issue
+description: The Apache APISIX Community Weekly Newsletter hopes to help community members better understand the weekly progress of the Apache APISIX community and facilitate your participation in the Apache APISIX community.
 tags: [Events]
 ---
-> 从 8.30 开始这两周有 33 位开发者为 Apache APISIX 提交了 130 个 commits。感谢以下小伙伴为 Apache APISIX 添砖加瓦(排名不分先后),是你们的无私付出,让 Apache APISIX 项目变得更好!
 
-<!--truncate-->
+> 33 developers have committed 130 commits to Apache APISIX in the last two weeks since 8.30. Thank you to the following people for adding to Apache APISIX (in no particular order), your selfless work makes the Apache APISIX project better!
 
-## 导语
+<! --truncate-->
 
-Apache APISIX 从开源第一天就以社区方式成长,迅速成为全世界最活跃的开源 API 网关项目。这些成就,离不开社区小伙伴们的共同奋斗。
+## Introduction
 
-“独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的每周进展,方便大家参与到 Apache APISIX 社区中来。
+Apache APISIX has grown as a community since its first day of open source and has quickly become the most active open source API gateway project in the world. These achievements could not have been achieved without the joint efforts of our community partners.
 
-我们还整理了一些适合新来社区的小伙伴们参加的 issue !感兴趣的同学们,走过路过不要错过!
+"The Apache APISIX Community Weekly Newsletter hopes to help community members better grasp the weekly progress of the Apache APISIX community and facilitate your participation in the Apache APISIX community.
 
-## 贡献者统计
+We've also put together some issues for those new to the community! If you are interested, don't miss them!
 
-从 8.30-9.12 这两周有 33 位开发者为 Apache APISIX 提交了 130 个 commits。感谢以下小伙伴为 Apache APISIX 添砖加瓦(排名不分先后),是你们的无私付出,让 Apache APISIX 项目变得更好!
+## Contributor statistics
+
+From 8.30-9.12, 33 developers submitted 130 commits to Apache APISIX, and we thank the following people for their contributions to Apache APISIX (in no particular order).
 
 ![contributor](https://static.apiseven.com/202108/1631754498946-7d655f8e-3881-4594-b029-a67189a63ffa.jpg)
 
@@ -32,10 +33,10 @@ Apache APISIX 从开源第一天就以社区方式成长,迅速成为全世界
 
 ### Issue [#4906](https://github.com/apache/apisix/issues/4906)
 
-问题描述:在启用主动健康检查功能时,用两个内部域名并增加 pass_host:node 进行测试 Apache APISIX 的负载均衡时,发现仍会路由到故障主机。
+Problem Description: When testing Apache APISIX load balancing with two internal domains and adding pass_host: node with active health check enabled, I found that it still routes to the faulty host.
 
- ```Shell
- for i in $(seq 1 1000); do curl  -H "Host: httpbin.org" ${APISIX_GATEWAY_URL}  ; done
+```Shell
+for i in $(seq 1 1000); do curl  -H "Host: httpbin.org" ${APISIX_GATEWAY_URL}  ; done
 apple
 apple
 <html>
@@ -64,7 +65,7 @@ apple
 
 ### Issue [#4945](https://github.com/apache/apisix/issues/4945)
 
-问题描述:根据相关指导文章,尝试在 M1 系统的 Macbook 上下载 Apache APISIX 2.9 版本时遇到问题。提示如下:
+Problem Description: I am having problems trying to download Apache APISIX version 2.9 on a Macbook with M1 system according to the related guide article. The prompt is as follows.
 
 ```Apache
 lualogging 1.5.2-1 depends on luasocket (3.0rc1-2 installed)
@@ -82,46 +83,46 @@ Example: luarocks install lrexlib-pcre PCRE_DIR=/usr/local
 make: *** [deps] Error 1
 ```
 
-## 近期功能特性亮点
+## Recent feature highlights
 
-- [referer-restriction 支持配置 blacklist 和 message](https://github.com/apache/apisix/pull/4916)(贡献者:okaybase)
-- [node_listen 和 admin_listen 支持更丰富的配置形式](https://github.com/apache/apisix/pull/4856)(贡献者:wayne-cheng),[补充参考](https://github.com/apache/apisix/pull/4967)
-- [admin-api 支持返回 stream 类型的插件信息](https://github.com/apache/apisix/pull/4947)(贡献者:spacewander)
-- [支持配置后退 SNI](https://github.com/apache/apisix/pull/5000)(贡献者:spacewander)
-- [proxy-mirror 支持按比例镜像请求](https://github.com/apache/apisix/pull/4965)(贡献者:okaybase)
-- [Control API 新增 dump 路由配置](https://github.com/apache/apisix/pull/5011)(贡献者:Zheaoli)
-- [dashboard 支持 Service Discovery 配置](https://github.com/apache/apisix-dashboard/pull/2081)(贡献者:bzp2010)
-- [dashboard Route 高级配置条件中支持内置参数配置](https://github.com/apache/apisix-dashboard/pull/1984)(贡献者:lookbrook)
-- [dashboard  Upstream 支持 Keepalive Pool 配置](https://github.com/apache/apisix-dashboard/pull/2117)(贡献者:bzp2010)
+- [referer-restriction support for configuring blacklist and message](https://github.com/apache/apisix/pull/4916)(contributor: okaybase)
+- [node_listen and admin_listen support richer configuration forms](https://github.com/apache/apisix/pull/4856)(contributor: wayne-cheng), [additional reference](https://github.com/) apache/apisix/pull/4967)
+- [admin-api support for returning stream type plugin information](https://github.com/apache/apisix/pull/4947)(Contributor: spacewander)
+- [Support for configuring fallback SNI](https://github.com/apache/apisix/pull/5000)(Contributed by spacewander)
+- [proxy-mirror support for scaled mirror requests](https://github.com/apache/apisix/pull/4965)(Contributor: okaybase)
+- [Control API adds dump routing configuration](https://github.com/apache/apisix/pull/5011)(Contributor: Zheaoli)
+- [dashboard Support Service Discovery Configuration](https://github.com/apache/apisix-dashboard/pull/2081)(Contributor: bzp2010)
+- [dashboard Route advanced configuration conditions support built-in parameter configuration](https://github.com/apache/apisix-dashboard/pull/1984)(contributor: lookbrook)
+- [dashboard Upstream support for Keepalive Pool configuration](https://github.com/apache/apisix-dashboard/pull/2117)(Contributor: bzp2010)
 
-Apache APISIX 的项目官网和 Github 上的 issue 上已经积累了比较丰富的文档教程和使用经验,如果您遇到问题可以翻阅文档,用关键词在 issue 中搜索,也可以参与 issue 上的讨论,提出自己的想法和实践经验。
+The Apache APISIX project website and the issue on Github have accumulated a wealth of documentation and experience, if you encounter problems you can read the documentation, search in the issue with keywords, and also participate in the discussion on the issue to put forward their ideas and practical experience.
 
-## 近期博文推荐
+## Recent Blog Posts Recommended
 
-- [Apache APISIX 社区周报 | 2021 8.23-8.29](https://mp.weixin.qq.com/s?__biz=MzI1MDU3NjQ5OA==&mid=2247486808&idx=1&sn=16ff09d4172dc61e0aa864f7a4fd40fd&chksm=e9816645def6ef53c5e41d84e70e16256a1953c177c52d960331c7ecd836cf8eeedf83bee5e4&token=733405538&lang=zh_CN%23rd)
+- [Apache APISIX Community Weekly Report | 2021 8.23-8.29](https://mp.weixin.qq.com/s?__biz=MzI1MDU3NjQ5OA==&mid=2247486808&idx=1&sn= 16ff09d4172dc61e0aa864f7a4fd40fd&chksm=e9816645def6ef53c5e41d84e70e16256a1953c177c52d960331c7ecd836cf8eeedf83bee5e4&token= 733405538&lang=zh_CN%23rd)
 
-    “独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的每周进展,方便大家参与到 Apache APISIX 社区中来。
+  "The Apache APISIX Community Weekly Report hopes to help community members better grasp the weekly progress of the Apache APISIX community and facilitate your participation in the Apache APISIX community.
 
-- [Apache APISIX 为 KubeSphere 提供更好用的网关及 K8S Ingress Controller](https://mp.weixin.qq.com/s?__biz=MzI1MDU3NjQ5OA==&mid=2247487079&idx=1&sn=136417f538c1d2d96150cfd3de66b93b&chksm=e981657adef6ec6c31ea990ec3f8887b22530dc44e6cf011c990449aea492cc3d8379668e1d6&token=733405538&lang=zh_CN%23rd)
+- [Apache APISIX Delivers a Better Gateway and K8S Ingress Controller for KubeSphere](https://mp.weixin.qq.com/s?__biz=MzI1MDU3NjQ5OA==&mid=2247487079&idx=1&sn= 136417f538c1d2d96150cfd3de66b93b&chksm=e981657adef6ec6c31ea990ec3f8887b22530dc44e6cf011c990449aea492cc3d8379668e1d6&token= 733405538&lang=zh_CN%23rd)
 
-    本文介绍了如何在 KubeSphere 中直接部署 APISIX 和 APISIX Ingress Controller 。APISIX 可通过作为网关,或 APISIX Ingress Controller 的数据面来承载业务流量。
+  This article describes how to deploy APISIX and APISIX Ingress Controller directly in KubeSphere. APISIX can be used to carry business traffic by acting as a gateway, or a data plane for APISIX Ingress Controller.
 
-- [听说你对 Apache APISIX 有话说?现在机会来了](https://mp.weixin.qq.com/s?__biz=MzI1MDU3NjQ5OA==&mid=2247487094&idx=1&sn=c86ff723205b6073811a4d9016e81bca&chksm=e981656bdef6ec7dffb2d11639af944f0a4ebc9db051c0dd940d8e7f1b8b6ae42fb8690859c0&token=733405538&lang=zh_CN%23rd)
+- [Heard you have something to say about Apache APISIX? Here's your chance](https://mp.weixin.qq.com/s?__biz=MzI1MDU3NjQ5OA==&mid=2247487094&idx=1&sn=c86ff723205b6073811a4d9016e81bca&chksm= e981656bdef6ec7dffb2d11639af944f0a4ebc9db051c0dd940d8e7f1b8b6ae42fb8690859c0&token=733405538&lang=zh_CN%23rd)
 
-    诚邀您参与 Apache APISIX 用户调研,您的反馈会直接影响我们的未来发展。我们会随机抽取 多位 幸运星,将有机会获得 Apache APISIX 社区精美小礼物哦~
+  We invite you to participate in the Apache APISIX User Survey, and your feedback will directly influence our future development. We will randomly select a number of lucky stars who will have a chance to win a small gift from the Apache APISIX community!
 
-- [使用 Apache APISIX 和 Okta 来实现身份认证](https://mp.weixin.qq.com/s?__biz=MzI1MDU3NjQ5OA==&mid=2247487572&idx=1&sn=4aebd05282442a7e067496e1ff4be7bd&chksm=e9817b49def6f25fee8a1308666c56878697c5ec02bb8a63d1a6ce0ba749d29a4135cdf927f0&token=733405538&lang=zh_CN%23rd)
+- [Using Apache APISIX and Okta for Authentication](https://mp.weixin.qq.com/s?__biz=MzI1MDU3NjQ5OA==&mid=2247487572&idx=1&sn= 4aebd05282442a7e067496e1ff4be7bd&chksm=e9817b49def6f25fee8a1308666c56878697c5ec02bb8a63d1a6ce0ba749d29a4135cdf927f0&token= 733405538&lang=zh_CN%23rd)
 
-    文章介绍如何使用 Apache APISIX 配置 Okta 认证,从传统身份认证模式切换到集中身份认证模式,摆脱多账户、多密码、重复验证等众多开发者所面临的痛点。
+  This article describes how to use Apache APISIX to configure Okta authentication to switch from traditional authentication mode to centralized authentication mode, getting rid of multiple accounts, multiple passwords, duplicate authentication and other pain points faced by many developers.
 
-## 关于 Apache APISIX
+## About Apache APISIX
 
-Apache APISIX 是一个动态、实时、高性能的开源 API 网关,提供负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。Apache APISIX 可以帮忙企业快速、安全的处理 API 和微服务流量,包括网关、Kubernetes Ingress 和服务网格等。
+Apache APISIX is a dynamic, real-time, high-performance open source API gateway that provides rich traffic management features such as load balancing, dynamic upstream, grayscale publishing, service meltdown, authentication, observability, etc. Apache APISIX helps enterprises quickly and securely handle API and microservice traffic, including gateways, Kubernetes Ingress and Service Grid.
 
-全球已有数百家企业使用 Apache APISIX 处理关键业务流量,涵盖金融、互联网、制造、零售、运营商等等,比如美国航空航天局(NASA)、欧盟的数字工厂、中国航信、中国移动、腾讯、华为、微博、网易、贝壳找房、360、泰康、奈雪的茶等。
+Apache APISIX has been used by hundreds of enterprises worldwide to handle business-critical traffic, including finance, Internet, manufacturing, retail, carriers, and more, such as NASA, the European Union's Digital Factory, China Airlines, China Mobile, Tencent, Huawei, Weibo, NetEase, Shell, 360, Taikang, and Nespresso Tea.
 
-200 余位贡献者,一同缔造了 Apache APISIX 这个世界上最活跃的开源网关项目。聪明的开发者们!快来加入这个活跃而多样化的社区,一起来给这个世界带来更多美好的东西吧!
+More than 200 contributors have come together to create Apache APISIX, the world's most active open source gateway project. Smart developers! Come join this active and diverse community and come together to bring more good things to the world!
 
 - [Apache APISIX GitHub](https://github.com/apache/apisix)
-- [Apache APISIX 官网](https://apisix.apache.org/)
-- [Apache APISIX 文档](https://apisix.apache.org/zh/docs/apisix/getting-started)
+- [Apache APISIX Website](https://apisix.apache.org/)
+- [Apache APISIX Docs](https://apisix.apache.org/zh/docs/apisix/getting-started)
diff --git a/website/blog/2021/09/30/weekly-report.md b/website/blog/2021/09/30/weekly-report.md
index 8339593..9d3e6ae 100644
--- a/website/blog/2021/09/30/weekly-report.md
+++ b/website/blog/2021/09/30/weekly-report.md
@@ -1,46 +1,47 @@
 ---
-title: "社区周报|新晋 committer 一位,功能亮点更新进行中"
+title: Community Weekly|New committer, feature highlight update in progress
 keywords:
-- Apache APISIX
-- 社区周报
-- APISIX
-- API Gateway
-- 贡献者
-description: “独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的每周进展,方便大家参与到 Apache APISIX 社区中来。
+  - Apache APISIX
+  - Community Weekly
+  - APISIX
+  - API Gateway
+  - Contributor
+description: The Apache APISIX Community Weekly Newsletter hopes to help community members better understand the weekly progress of the Apache APISIX community and facilitate your participation in the Apache APISIX community.
 tags: [Events]
 ---
-> 从 9.13 到 9.30, 有 32 位开发者为 Apache APISIX 提交了 93 个 commits。感谢这些小伙伴为 Apache APISIX 添砖加瓦,是你们的无私付出,让 Apache APISIX 项目变得更好!
-<!--truncate-->
 
-## 导语
+> From 9.13 to 9.30, 32 developers have committed 93 commits to Apache APISIX. Thank you to these folks for making the Apache APISIX project better with your selfless efforts!
+> <! --truncate-->
 
-Apache APISIX 从开源第一天就以社区方式成长,迅速成为全世界最活跃的开源 API 网关项目。这些成就,离不开社区小伙伴们的共同奋斗。
+## Introduction
 
-“独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的每周进展,方便大家参与到 Apache APISIX 社区中来。
+Apache APISIX has grown as a community since the first day of open source and has quickly become the most active open source API gateway project in the world. These achievements could not have been achieved without the joint efforts of our community partners.
 
-我们还整理了一些适合新来社区的小伙伴们参加的 issue!感兴趣的同学们,走过路过不要错过!
+"The Apache APISIX Community Weekly Newsletter hopes to help community members better grasp the weekly progress of the Apache APISIX community and facilitate your participation in the Apache APISIX community.
 
-## 贡献者统计
+We've also put together some issues for those new to the community!
 
-![本周贡献者名单](https://static.apiseven.com/202108/1632907894918-c455f40e-a175-4944-8fac-11c590d43786.jpg)
+## Contributor statistics
 
-![本周新晋贡献者](https://static.apiseven.com/202108/1632908362102-b0b665e2-f37f-4a82-b8a3-68914925b565.jpg)
+! [This week's contributor list](https://static.apiseven.com/202108/1632907894918-c455f40e-a175-4944-8fac-11c590d43786.jpg)
+
+! [New contributors this week](https://static.apiseven.com/202108/1632908362102-b0b665e2-f37f-4a82-b8a3-68914925b565.jpg)
 
 ## Good first issue
 
 ### Issue #5080
 
-**链接**:https://github.com/apache/apisix/issues/5080
+**Link**: https://github.com/apache/apisix/issues/5080
 
-**问题描述**:之前上游服务使用 IP 认证,实际的客户端 IP 是从 x-forwarded-for 请求头中获取的。现在需要改成网关 HMAC 认证,所以需要通过网关屏蔽上游 IP 认证。尝试通过代理重写插件修改 x-forwarded-for,但是没有生效:
+**Problem Description**: Previously the upstream service used IP authentication and the actual client IP was obtained from the x-forwarded-for request header. Now I need to change to gateway HMAC authentication, so I need to block upstream IP authentication through the gateway. Tried to modify x-forwarded-for via the proxy rewrite plugin, but it did not work: !
 
-![问题描述截图](https://static.apiseven.com/202108/1632799650125-14edb988-f2ad-434d-8d13-04ff3016eb5a.png)
+! [Screenshot of problem description](https://static.apiseven.com/202108/1632799650125-14edb988-f2ad-434d-8d13-04ff3016eb5a.png)
 
 ### Issue #5108
 
-**链接**:https://github.com/apache/apisix/issues/5108
+**Link**: https://github.com/apache/apisix/issues/5108
 
-**问题描述**:如下,当在路由上启用请求验证插件:" delete "
+**problem description**: as follows, when enabling the request validation plugin on a route:" delete "
 
 ```shell
 curl http://127.0.0.1:9080/apisix/admin/routes/35 -H 'X-API-KEY: xxxxxxxxxxxxxxxxxxx' -X PUT -d '
@@ -49,66 +50,66 @@ curl http://127.0.0.1:9080/apisix/admin/routes/35 -H 'X-API-KEY: xxxxxxxxxxxxxxx
     "plugins":{
         "request-validation":{
             "body_schema":{
-                "type":"object",
+                "type": "object",
                 "required":[
                     "productName",
                     "price"
                 ],
                 "properties":{
                     "productName":{
-                        "type":"string"
+                        "type": "string"
                     },
                     "price":{
-                        "type":"number"
+                        "type": "number"
                     }
                 }
             }
         }
     },
     "upstream":{
-        "service_name":"PRODUCTSSERVICE",
-        "type":"roundrobin",
-        "discovery_type":"eureka"
+        "service_name": "PRODUCTSSERVICE",
+        "type": "roundrobin",
+        "discovery_type": "eureka"
     }
 }'
 ```
 
-使用以下命令对其进行测试时,
+When testing it with the following command, the
 
 ```shell
-curl http://127.0.0.1:9080/products/create -X POST -d '{"product-Name":"Laptop","pri-ce":12345.00}'
+curl http://127.0.0.1:9080/products/create -X POST -d '{"product-Name": "Laptop", "pri-ce":12345.00}'
 ```
 
-得到以下默认信息:
+Get the following default message.
 
 ```shell
 property "price" is required
 ```
 
-## 本周功能特性亮点
+## Feature highlights of the week
 
-- [debug-mode 支持动态请求过滤](https://github.com/apache/apisix/pull/5012)(贡献者:[tzssangglass](https://github.com/tzssangglass))
+- [debug-mode support for dynamic request filtering](https://github.com/apache/apisix/pull/5012) (contributor: [tzssangglass](https://github.com/tzssangglass))
 
-- [支持注入逻辑到 APISIX 方法中](https://github.com/apache/apisix/pull/5068)(贡献者:[spacewander](https://github.com/spacewander))
+- [support for injecting logic into APISIX methods](https://github.com/apache/apisix/pull/5068) (contributor: [spacewander](https://github.com/spacewander))
 
-- [stream_route 支持在 IP 匹配中使用 CIDR](https://github.com/apache/apisix/pull/4980)(贡献者:[Zheaoli](https://github.com/Zheaoli))
+- [stream_route support for using CIDR in IP matching](https://github.com/apache/apisix/pull/4980) (Contributed by [Zheaoli](https://github.com/Zheaoli))
 
-- [hmac-auth 支持校验请求体](https://github.com/apache/apisix/pull/5038)(贡献者:[arthur-zhang](https://github.com/arthur-zhang))
+- [hmac-auth support for checksum request bodies](https://github.com/apache/apisix/pull/5038) (Contributed by [arthur-zhang](https://github.com/arthur-zhang))
 
-- [APISIX Ingress controller 集成了 cert-manager ,用户可以更方便的管理 TLS 证书,并与 APISIX Ingress 配合使用](https://github.com/apache/apisix-ingress-controller/pull/685)(贡献者:[lingsamuel](https://github.com/lingsamuel))
+- [APISIX Ingress controller integrates with cert-manager, so users can manage TLS certificates more easily and use it with APISIX Ingress](https://github.com/apache/apisix-ingress-controller/) pull/685) (Contributed by [lingsamuel](https://github.com/lingsamuel))
 
-- [- APISIX Dashboard 支持多种配置文件](https://github.com/apache/apisix-dashboard/pull/1946)(贡献者:[bzp2010](https://github.com/bzp2010))
+- [- APISIX Dashboard supports multiple profiles](https://github.com/apache/apisix-dashboard/pull/1946) (contributor: [bzp2010](https://github.com/bzp2010))
 
-## 本周博文推荐
+## Recommended blog posts for this week
 
-- [Apache APISIX 在腾讯云智能钛平台中的落地实践](http://apisix.apache.org/blog/2021/09/16/tencent-cloud):
+- [Apache APISIX Implementation Practice in Tencent Cloud Smart Titanium Platform](http://apisix.apache.org/blog/2021/09/16/tencent-cloud).
 
-  本文主要介绍了腾讯云智能钛平台使用 Apache APISIX 的企业案例,以及使用 Apache APISIX 作为产品流量网关的具体例子。
+  This article introduces the enterprise case of using Apache APISIX in Tencent Cloud Intelligent Titanium Platform, and the specific example of using Apache APISIX as a product traffic gateway.
 
-- [使用 Apache APISIX 进行集中式身份认证及进阶玩法](http://apisix.apache.org/blog/2021/09/07/how-to-use-apisix-auth)
+- [Using Apache APISIX for Centralized Authentication and Advanced Play](http://apisix.apache.org/blog/2021/09/07/how-to-use-apisix-auth)
 
-  本文介绍了 Apache APISIX 的身份认证功能,从重要性和玩法使用上进行了详细介绍和细节使用。
+  This article introduces the authentication function of Apache APISIX, in terms of importance and playful usage, with detailed introduction and detailed usage.
 
-- [基于 Apache APISIX,爱奇艺 API 网关的更新与落地实践](http://apisix.apache.org/blog/2021/09/07/iQIYI-usercase)
+- [Apache APISIX-based, Aiki API gateway update and landing practice](http://apisix.apache.org/blog/2021/09/07/iQIYI-usercase)
 
-  通过阅读本文,您可以了解到基于 Apache APISIX 网关,爱奇艺技术团队是如何进行公司架构的更新与融合,打造出全新的网关服务。
+  By reading this article, you can learn how based on Apache APISIX gateway, the Aikii technical team has updated and integrated the company's architecture to create a new gateway service.