Skip to content

Conversation

@arnavgogia20
Copy link

Summary

Add initial Spanish (es) locale support to the Kmesh website.

Details

  • Introduces Spanish locale scaffolding using the existing i18n setup
  • Adds initial translations for core entry pages
  • Keeps scope intentionally minimal to allow incremental improvements

Related Issue

Closes #265

@netlify
Copy link

netlify bot commented Jan 10, 2026

Deploy Preview for kmesh-net ready!

Name Link
🔨 Latest commit 5fbc593
🔍 Latest deploy log https://app.netlify.com/projects/kmesh-net/deploys/6962bc3a488bb40008598cdd
😎 Deploy Preview https://deploy-preview-266--kmesh-net.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@kmesh-bot kmesh-bot requested a review from nlgwcy January 10, 2026 11:49
@kmesh-bot
Copy link
Collaborator

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign jayesh9747 for approval. For more information see the Kubernetes Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@gemini-code-assist
Copy link

Summary of Changes

Hello @arnavgogia20, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly expands the Kmesh website's internationalization capabilities by adding full Spanish language support. It integrates the new locale into the Docusaurus framework and provides a foundational set of Spanish translations across the site's main content areas, making the website accessible to a broader audience.

Highlights

  • Spanish Locale Support: Introduced initial Spanish (es) locale support to the Kmesh website, enabling content to be displayed in Spanish.
  • Configuration Updates: Modified docusaurus.config.js to include 'es' in the supported locales and search languages, and adjusted broken link handling to 'warn'.
  • Comprehensive Spanish Translations: Added numerous new JSON translation files and Markdown documentation pages for various sections of the website, including application layer features, architecture, community guidelines, developer guides, performance metrics, setup instructions, and transport layer details, all translated into Spanish.
  • Kmesh V1.2.0 Release Blog: Included a new blog post announcing the Kmesh v1.2.0 release, detailing core enhancements, bug fixes, and community contributions.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces Spanish (es) locale support to the Kmesh website, which is a great addition for Spanish-speaking users. The changes correctly configure Docusaurus for the new locale and add the necessary file structure. The change to set onBrokenLinks to warn is also a good practice when scaffolding a new language. However, a significant portion of the content, including UI strings in JSON files and most of the documentation markdown files, remains untranslated and is currently in English. While this might be an intentional first step, it's important to complete these translations to provide a consistent and useful experience. I've left specific comments on some of the files with untranslated or incorrect content.

Comment on lines +377 to +404
"theme.blog.authorsList.pageTitle": {
"message": "Authors",
"description": "The title of the authors page"
},
"theme.blog.authorsList.viewAll": {
"message": "View All Authors",
"description": "The label of the link targeting the blog authors page"
},
"theme.blog.author.noPosts": {
"message": "This author has not written any posts yet.",
"description": "The text for authors with 0 blog post"
},
"theme.contentVisibility.unlistedBanner.title": {
"message": "Página sin clasificar",
"description": "The unlisted content banner title"
},
"theme.contentVisibility.unlistedBanner.message": {
"message": "Esta página está sin clasificar. Los motores de búsqueda no la indexaran, y solo los usuarios con el enlace directo podrán acceder a esta.",
"description": "The unlisted content banner message"
},
"theme.contentVisibility.draftBanner.title": {
"message": "Draft page",
"description": "The draft content banner title"
},
"theme.contentVisibility.draftBanner.message": {
"message": "This page is a draft. It will only be visible in dev and be excluded from the production build.",
"description": "The draft content banner message"
},

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Several keys in this translation file are not translated to Spanish. For example, theme.blog.authorsList.pageTitle, theme.blog.authorsList.viewAll, theme.blog.author.noPosts, theme.contentVisibility.draftBanner.title, and theme.contentVisibility.draftBanner.message still have English messages. Please translate these to provide a complete experience for Spanish-speaking users.

  "theme.blog.authorsList.pageTitle": {
    "message": "Autores",
    "description": "The title of the authors page"
  },
  "theme.blog.authorsList.viewAll": {
    "message": "Ver todos los autores",
    "description": "The label of the link targeting the blog authors page"
  },
  "theme.blog.author.noPosts": {
    "message": "Este autor aún no ha escrito ninguna publicación.",
    "description": "The text for authors with 0 blog post"
  },
  "theme.contentVisibility.unlistedBanner.title": {
    "message": "Página sin clasificar",
    "description": "The unlisted content banner title"
  },
  "theme.contentVisibility.unlistedBanner.message": {
    "message": "Esta página está sin clasificar. Los motores de búsqueda no la indexaran, y solo los usuarios con el enlace directo podrán acceder a esta.",
    "description": "The unlisted content banner message"
  },
  "theme.contentVisibility.draftBanner.title": {
    "message": "Página de borrador",
    "description": "The draft content banner title"
  },
  "theme.contentVisibility.draftBanner.message": {
    "message": "Esta página es un borrador. Solo será visible en desarrollo y se excluirá de la compilación de producción.",
    "description": "The draft content banner message"
  },

Comment on lines +1 to +70
{
"version.label": {
"message": "Next",
"description": "The label for version current"
},
"sidebar.tutorialSidebar.category.Setup": {
"message": "Setup",
"description": "The label for category Setup in sidebar tutorialSidebar"
},
"sidebar.tutorialSidebar.category.Architecture": {
"message": "Architecture",
"description": "The label for category Architecture in sidebar tutorialSidebar"
},
"sidebar.tutorialSidebar.category.Performance": {
"message": "Performance",
"description": "The label for category Performance in sidebar tutorialSidebar"
},
"sidebar.tutorialSidebar.category.Transport layer": {
"message": "Transport layer",
"description": "The label for category Transport layer in sidebar tutorialSidebar"
},
"sidebar.tutorialSidebar.category.Application Layer": {
"message": "Application Layer",
"description": "The label for category Application Layer in sidebar tutorialSidebar"
},
"sidebar.tutorialSidebar.category.Developer Guide": {
"message": "Developer Guide",
"description": "The label for category Developer Guide in sidebar tutorialSidebar"
},
"sidebar.tutorialSidebar.category.Kmeshctl Usage": {
"message": "Kmeshctl Usage",
"description": "The label for category Kmeshctl Usage in sidebar tutorialSidebar"
},
"sidebar.tutorialSidebar.category.Kmeshctl Usage.link.generated-index.description": {
"message": "Kmesh command line tools to operate and debug Kmesh",
"description": "The generated-index page description for category Kmeshctl Usage in sidebar tutorialSidebar"
},
"sidebar.tutorialSidebar.category.Kmeshctl Authz": {
"message": "Kmeshctl Authz",
"description": "The label for category Kmeshctl Authz in sidebar tutorialSidebar"
},
"sidebar.tutorialSidebar.category.Kmeshctl Authz.link.generated-index.description": {
"message": "Manage xdp authz eBPF program for Kmesh's authz offloading",
"description": "The generated-index page description for category Kmeshctl Authz in sidebar tutorialSidebar"
},
"sidebar.tutorialSidebar.category.Kmeshctl Waypoint": {
"message": "Kmeshctl Waypoint",
"description": "The label for category Kmeshctl Waypoint in sidebar tutorialSidebar"
},
"sidebar.tutorialSidebar.category.Kmeshctl Waypoint.link.generated-index.description": {
"message": "A group of commands used to manage waypoint configuration",
"description": "The generated-index page description for category Kmeshctl Waypoint in sidebar tutorialSidebar"
},
"sidebar.tutorialSidebar.category.Tests": {
"message": "Tests",
"description": "The label for category Tests in sidebar tutorialSidebar"
},
"sidebar.tutorialSidebar.category.website": {
"message": "website",
"description": "The label for category website in sidebar tutorialSidebar"
},
"sidebar.tutorialSidebar.category.Community": {
"message": "Community",
"description": "The label for category Community in sidebar tutorialSidebar"
},
"sidebar.tutorialSidebar.category.kmeshctl": {
"message": "kmeshctl",
"description": "The label for category kmeshctl in sidebar tutorialSidebar"
}
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Almost all category labels and descriptions in this file are untranslated. For a proper Spanish localization, these should be translated. For example, Setup should be Configuración, Architecture should be Arquitectura, etc. Please translate all the English strings in this file.

Comment on lines +300 to +385
## Test Service Entry Configuration

After configuring the Service Entry, we can verify that it works correctly through the following tests:

### 1. Basic Connectivity Test

Test access to the virtual external service:

```bash
kubectl exec deploy/sleep -- curl -s http://kmesh-fake.com/headers
```

You should see a response from the httpbin service, notice that the Host header has changed to our defined virtual hostname:

```json
{
"headers": {
"Accept": "*/*",
"Host": "kmesh-fake.com",
"User-Agent": "curl/8.16.0"
}
}
```

### 2. Detailed Request Information Verification

Get complete request information:

```bash
kubectl exec deploy/sleep -- curl -s http://kmesh-fake.com/get
```

The output shows the request was successfully routed to the httpbin service:

```json
{
"args": {},
"headers": {
"Accept": "*/*",
"Host": "kmesh-fake.com",
"User-Agent": "curl/8.16.0"
},
"origin": "10.244.1.6",
"url": "http://kmesh-fake.com/get"
}
```

### 3. HTTP Status Code Test

Test different HTTP status code responses:

```bash
# Test normal status code
kubectl exec deploy/sleep -- curl -s http://kmesh-fake.com/status/200

# Test specific status code and display the return code
kubectl exec deploy/sleep -- curl -s -o /dev/null -w "%{http_code}\n" http://kmesh-fake.com/status/418
```

The second command should return the HTTP status code:

```txt
418
```

### 4. Response Header Check

Check complete response header information:

```bash
kubectl exec deploy/sleep -- curl -IsS http://kmesh-fake.com/headers
```

You should see response headers containing Envoy proxy and routing information:

```txt
HTTP/1.1 200 OK
server: envoy
date: Wed, 08 Oct 2025 07:51:51 GMT
content-type: application/json
content-length: 78
access-control-allow-origin: *
access-control-allow-credentials: true
x-envoy-upstream-service-time: 1
x-envoy-decorator-operation: httpbin.default.svc.cluster.local:8000/*
```

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This section 'Test Service Entry Configuration' is a duplicate of the section from lines 95-180. Please remove this duplicated content.

@@ -0,0 +1,102 @@
---
sidebar_position: 5

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The sidebar_position is set to 5, which conflicts with try-service-entry.md in the same directory. Please assign a unique position to avoid ordering issues in the sidebar.

Comment on lines +1 to +325
---
title: Quick Start
description: This guide lets you quickly install Kmesh.
sidebar_position: 1
---

# Quick Start Guide

This guide lets you quickly install Kmesh.

## Prerequisites

Before installing Kmesh, ensure your environment meets the following requirements:

| Requirement | Version | Notes |
| ----------- | ------- | --------------------- |
| Kubernetes | 1.26+ | Tested on 1.26-1.29 |
| Istio | 1.22+ | Tested on 1.22-1.25 (ambient mode required) |
| Helm | 3.0+ | For helm installation |
| Memory | 4GB+ | Recommended minimum |
| CPU | 2 cores | Recommended minimum |
| Kernel | 5.10+ | For eBPF support |

## Preparation

Kmesh needs to run on a Kubernetes cluster. Kubernetes 1.26+ are currently supported. We recommend using [kind](https://kind.sigs.k8s.io/docs/user/quick-start/) to quickly provide a Kubernetes cluster (We provide a [document](develop-with-kind/) for developing and deploying Kmesh using kind). Of course, you can also use [minikube](https://minikube.sigs.k8s.io/docs/) and other ways to create Kubernetes clusters.

Currently, Kmesh makes use of [istio](https://istio.io/) as its control plane. Before installing Kmesh, please install the Istio control plane. We recommend installing istio ambient mode because Kmesh `dual-engine` mode need it. For details, see [ambient mode istio](https://istio.io/latest/docs/ops/ambient/getting-started/).

You can view the results of istio installation using the following command:

```shell
kubectl get po -n istio-system
NAME READY STATUS RESTARTS AGE
istio-cni-node-xbc85 1/1 Running 0 18h
istiod-5659cfbd55-9s92d 1/1 Running 0 18h
ztunnel-4jlvv 1/1 Running 0 18h
```

> **Note**: To use waypoint you need to install the Kubernetes Gateway API CRDs, which don't come installed by default on most Kubernetes clusters:

```shell
kubectl get crd gateways.gateway.networking.k8s.io &> /dev/null || \
{ kubectl kustomize "github.com/kubernetes-sigs/gateway-api/config/crd/experimental?ref=444631bfe06f3bcca5d0eadf1857eac1d369421d" | kubectl apply -f -; }
```

### Only install Istiod

Installing ambient mode istio by above steps will install additional istio components.

The process of installing only `istiod` as the control plane for Kmesh is provided next.

#### Install Istio CRDs

```shell
helm repo add istio https://istio-release.storage.googleapis.com/charts
helm repo update
```

To install the chart with the release name `istio-base`:

```shell
kubectl create namespace istio-system
helm install istio-base istio/base -n istio-system
```

#### Install Istiod

To install the chart with the release name `istiod`:

```shell
helm install istiod istio/istiod --namespace istio-system --version 1.24.0 --set pilot.env.PILOT_ENABLE_AMBIENT=true
```

> **Important:** Must set `pilot.env.PILOT_ENABLE_AMBIENT=true`. otherwise Kmesh will not be able to establish grpc links with istiod! If you want to use the Waypoint feature, you should use the istio version 1.23 ~ 1.25.

After installing istiod, it's time to install Kubernetes Gateway API CRDs.

```shell
kubectl get crd gateways.gateway.networking.k8s.io &> /dev/null || \
{ kubectl kustomize "github.com/kubernetes-sigs/gateway-api/config/crd/experimental?ref=444631bfe06f3bcca5d0eadf1857eac1d369421d" | kubectl apply -f -; }
```

## Install Kmesh

We offer several ways to install Kmesh:

### Option 1: Install from OCI Registry (Recommended)

You can install Kmesh directly from the GitHub Container Registry without cloning the repository:

```shell
helm install kmesh oci://ghcr.io/kmesh-net/kmesh-helm --version x.y.z -n kmesh-system --create-namespace
```

- Replace `x.y.z` with your desired version from [kmesh-helm packages](https://github.com/orgs/kmesh-net/packages/container/package/kmesh-helm):
- For stable releases, use a version like `v1.1.0`.
- For pre-releases, use a version like `v1.1.0-alpha`.
- Omit the `--version` flag to install the latest version (not recommended for production).

### Option 2: Install from Helm

```shell
helm install kmesh ./deploy/charts/kmesh-helm -n kmesh-system --create-namespace
```

### Option 3: Install from Helm Chart Archive

```shell
helm install kmesh ./kmesh-helm-<version>.tgz -n kmesh-system --create-namespace
```

- Download the `kmesh-helm-<version>.tgz` archive from [GitHub Releases](https://github.com/kmesh-net/kmesh/releases). Replace `<version>` in the command above with the version you downloaded (e.g., `v1.1.0`).

### Option 4: Install from Yaml

```shell
kubectl create namespace kmesh-system
kubectl apply -f ./deploy/yaml/
```

You can confirm the status of Kmesh with the following command:

```shell
kubectl get pod -n kmesh-system
NAME READY STATUS RESTARTS AGE
kmesh-v2frk 1/1 Running 0 18h
```

View the running status of Kmesh service:

```log
time="2024-04-25T13:17:40Z" level=info msg="bpf Start successful" subsys=manager
time="2024-04-25T13:17:40Z" level=info msg="controller Start successful" subsys=manager
time="2024-04-25T13:17:40Z" level=info msg="dump StartServer successful" subsys=manager
time="2024-04-25T13:17:40Z" level=info msg="start write CNI config\n" subsys="cni installer"
time="2024-04-25T13:17:40Z" level=info msg="kmesh cni use chained\n" subsys="cni installer"
time="2024-04-25T13:17:41Z" level=info msg="Copied /usr/bin/kmesh-cni to /opt/cni/bin." subsys="cni installer"
time="2024-04-25T13:17:41Z" level=info msg="kubeconfig either does not exist or is out of date, writing a new one" subsys="cni installer"
time="2024-04-25T13:17:41Z" level=info msg="wrote kubeconfig file /etc/cni/net.d/kmesh-cni-kubeconfig" subsys="cni installer"
time="2024-04-25T13:17:41Z" level=info msg="cni config file: /etc/cni/net.d/10-kindnet.conflist" subsys="cni installer"
time="2024-04-25T13:17:41Z" level=info msg="command Start cni successful" subsys=manager
```

## Verify Installation

After installing Kmesh, verify all components are functioning correctly:

### 1. Verify Core Components

Check Kmesh pod status:

```shell
kubectl get pod -n kmesh-system
NAME READY STATUS RESTARTS AGE
kmesh-v2frk 1/1 Running 0 18h
```

Check Istio components:

```shell
kubectl get pods -n istio-system
NAME READY STATUS RESTARTS AGE
istiod-5659cfbd55-9s92d 1/1 Running 0 18h
```

### 2. Verify Pod Integration

Deploy a test pod and verify Kmesh annotation:

```shell
kubectl describe po <pod-name> | grep Annotations
Annotations: kmesh.net/redirection: enabled
```

### 3. Verify Service Connectivity

Test service access using the sleep pod:

```shell
kubectl exec sleep-7656cf8794-xjndm -c sleep -- curl -IsS "http://httpbin:8000/status/200"
```

Expected response should show HTTP 200 OK status.

### 4. Verify Kmesh Service Logs

Check for successful initialization messages:

```shell
kubectl logs -n kmesh-system $(kubectl get pods -n kmesh-system -o jsonpath='{.items.metadata.name}')
```

Look for these key messages:

- "bpf Start successful"
- "controller Start successful"
- "dump StartServer successful"
- "command Start cni successful"

### 5. Verify CNI Configuration

Check CNI binary installation:

```shell
ls -l /opt/cni/bin/kmesh-cni
```

Verify CNI configuration:

```shell
cat /etc/cni/net.d/kmesh-cni-kubeconfig
```

## Change Kmesh Start Mode

Kmesh supports two start up modes: `dual-engine` and `kernel-native`.

The specific mode to be used is defined in deploy/charts/kmesh-helm/values.yaml, and we can modify the startup parameters in that file.

```yaml
......
containers:
kmeshDaemonArgs: "--mode=dual-engine --enable-bypass=false"
......
```

We can use the following command to make the modification:

```shell
sed -i 's/--mode=dual-engine/--mode=kernel-native/' deploy/charts/kmesh-helm/values.yaml
```

## Deploy the Sample Applications

Kmesh can manage pods in a namespace with a label `istio.io/dataplane-mode=Kmesh`, and meanwhile the pod should have no `istio.io/dataplane-mode=none` label.

```shell
# Enable Kmesh for the specified namespace
kubectl label namespace default istio.io/dataplane-mode=Kmesh
```

Apply the following configuration to deploy sleep and httpbin:

```shell
kubectl apply -f ./samples/httpbin/httpbin.yaml

kubectl apply -f ./samples/sleep/sleep.yaml
```

Check the applications status:

```shell
kubectl get pod
NAME READY STATUS RESTARTS AGE
httpbin-65975d4c6f-96kgw 1/1 Running 0 3h38m
sleep-7656cf8794-8tp9n 1/1 Running 0 3h38m
```

You can confirm if a pod is managed by Kmesh by looking at the pod's annotation.

```shell
kubectl describe po httpbin-65975d4c6f-96kgw | grep Annotations

Annotations: kmesh.net/redirection: enabled
```

## Test Service Access

After the applications have been manage by Kmesh, we can test that they can still communicate successfully.

```shell
kubectl exec sleep-7656cf8794-xjndm -c sleep -- curl -IsS "http://httpbin:8000/status/200"

HTTP/1.1 200 OK
Server: gunicorn/19.9.0
Date: Sun, 28 Apr 2024 07:31:51 GMT
Connection: keep-alive
Content-Type: text/html; charset=utf-8
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Content-Length: 0
```

Note: 10.244.0.21 is the IP of httpbin

## Clean Up

If you don't want to use Kmesh to manage the application anymore, you can remove the labels from the namespace.

```shell
kubectl label namespace default istio.io/dataplane-mode-
kubectl delete pod httpbin-65975d4c6f-96kgw sleep-7656cf8794-8tp9n
kubectl describe pod httpbin-65975d4c6f-h2r99 | grep Annotations

Annotations: <none>
```

### Delete Kmesh

If you installed Kmesh using any of the Helm options above:

```shell
helm uninstall kmesh -n kmesh-system
kubectl delete ns kmesh-system
```

If you installed Kmesh using yaml:

```shell
kubectl delete -f ./deploy/yaml/
```

To remove the sleep and httpbin applications:

```shell
kubectl delete -f samples/httpbin/httpbin.yaml
kubectl delete -f samples/sleep/sleep.yaml
```

If you installed the Gateway API CRDs, remove them:

```shell
kubectl kustomize "github.com/kubernetes-sigs/gateway-api/config/crd/experimental?ref=444631bfe06f3bcca5d0eadf1857eac1d369421d" | kubectl delete -f -
```

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This documentation file is for the Spanish locale (es), but the content is in English. To provide a proper internationalization experience, this file should be translated into Spanish. This applies to all other new markdown documentation files added under the i18n/es/ directory in this pull request.

sidebar title message translation

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…er/traffic-shifting-ads.md


change the file name

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
@kmesh-bot
Copy link
Collaborator

Keywords which can automatically close issues and at(@) or hashtag(#) mentions are not allowed in commit messages.

The list of commits with invalid commit messages:

  • a583dbc Update i18n/es/docusaurus-plugin-content-blog/options.json
  • 5fbc593 Update i18n/es/docusaurus-plugin-content-docs/current/application-layer/traffic-shifting-ads.md
Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

docs: add Spanish (es) translation support for the website

2 participants