From 59db9b7abab5f97f0d03f47933824daa55deac45 Mon Sep 17 00:00:00 2001 From: userAdityaa Date: Tue, 12 Aug 2025 12:29:21 +0530 Subject: [PATCH] frontend: MapView: Build MapView for Gateway API --- .../src/components/gateway/ClassDetails.tsx | 5 ++- .../resourceMap/details/KubeNodeDetails.tsx | 13 ++++++ .../resourceMap/kubeIcon/img/gateway.svg | 14 +++++++ .../sources/definitions/relations.tsx | 42 +++++++++++++++++++ .../sources/definitions/sources.tsx | 29 +++++++++++++ frontend/src/i18n/locales/de/app.json | 6 +-- frontend/src/i18n/locales/en/app.json | 6 +-- frontend/src/i18n/locales/es/app.json | 6 +-- frontend/src/i18n/locales/fr/app.json | 6 +-- frontend/src/i18n/locales/hi/app.json | 6 +-- frontend/src/i18n/locales/it/app.json | 6 +-- frontend/src/i18n/locales/ja/app.json | 6 +-- frontend/src/i18n/locales/ko/app.json | 6 +-- frontend/src/i18n/locales/pt/app.json | 6 +-- frontend/src/i18n/locales/ta/app.json | 6 +-- frontend/src/i18n/locales/zh-tw/app.json | 6 +-- frontend/src/i18n/locales/zh/app.json | 6 +-- 17 files changed, 137 insertions(+), 38 deletions(-) create mode 100644 frontend/src/components/resourceMap/kubeIcon/img/gateway.svg diff --git a/frontend/src/components/gateway/ClassDetails.tsx b/frontend/src/components/gateway/ClassDetails.tsx index 584103dd0d8..33708475b38 100644 --- a/frontend/src/components/gateway/ClassDetails.tsx +++ b/frontend/src/components/gateway/ClassDetails.tsx @@ -20,8 +20,9 @@ import GatewayClass, { KubeGatewayClass } from '../../lib/k8s/gatewayClass'; import { ConditionsTable, DetailsGrid } from '../common/Resource'; import SectionBox from '../common/SectionBox'; -export default function GatewayClassDetails() { - const { name } = useParams<{ name: string }>(); +export default function GatewayClassDetails(props: { name?: string }) { + const params = useParams<{ name: string }>(); + const { name = params.name } = props; const { t } = useTranslation(['glossary', 'translation']); return ( diff --git a/frontend/src/components/resourceMap/details/KubeNodeDetails.tsx b/frontend/src/components/resourceMap/details/KubeNodeDetails.tsx index 445a037ffaf..fac82fadf22 100644 --- a/frontend/src/components/resourceMap/details/KubeNodeDetails.tsx +++ b/frontend/src/components/resourceMap/details/KubeNodeDetails.tsx @@ -25,6 +25,12 @@ import CustomResourceDefinitionDetails from '../../crd/Details'; import CronJobDetails from '../../cronjob/Details'; import DaemonSetDetails from '../../daemonset/Details'; import EndpointDetails from '../../endpoints/Details'; +import BackendTLSPolicyDetails from '../../gateway/BackendTLSPolicyDetails'; +import GatewayClassDetails from '../../gateway/ClassDetails'; +import GatewayDetails from '../../gateway/GatewayDetails'; +import GRPCRouteDetails from '../../gateway/GRPCRouteDetails'; +import HTTPRouteDetails from '../../gateway/HTTPRouteDetails'; +import ReferenceGrantDetails from '../../gateway/ReferenceGrantDetails'; import HpaDetails from '../../horizontalPodAutoscaler/Details'; import IngressClassDetails from '../../ingress/ClassDetails'; import IngressDetails from '../../ingress/Details'; @@ -91,6 +97,13 @@ const kindComponentMap: Record< IngressClass: IngressClassDetails, CustomResourceDefinition: CustomResourceDefinitionDetails, crd: CustomResourceDefinitionDetails, + Gateway: GatewayDetails, + GatewayClass: GatewayClassDetails, + HTTPRoute: HTTPRouteDetails, + GRPCRoute: GRPCRouteDetails, + ReferenceGrant: ReferenceGrantDetails, + BackendTLSPolicy: BackendTLSPolicyDetails, + XBackendTrafficPolicy: BackendTLSPolicyDetails, }; export const canRenderDetails = (maybeKind: string) => diff --git a/frontend/src/components/resourceMap/kubeIcon/img/gateway.svg b/frontend/src/components/resourceMap/kubeIcon/img/gateway.svg new file mode 100644 index 00000000000..22b967e9b8d --- /dev/null +++ b/frontend/src/components/resourceMap/kubeIcon/img/gateway.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/frontend/src/components/resourceMap/sources/definitions/relations.tsx b/frontend/src/components/resourceMap/sources/definitions/relations.tsx index d7f41acdaf8..4e21efddac8 100644 --- a/frontend/src/components/resourceMap/sources/definitions/relations.tsx +++ b/frontend/src/components/resourceMap/sources/definitions/relations.tsx @@ -15,13 +15,18 @@ */ import { useMemo } from 'react'; +import BackendTLSPolicy from '../../../../lib/k8s/backendTLSPolicy'; +import BackendTrafficPolicy from '../../../../lib/k8s/backendTrafficPolicy'; import ConfigMap from '../../../../lib/k8s/configMap'; import CustomResourceDefinition from '../../../../lib/k8s/crd'; import CronJob from '../../../../lib/k8s/cronJob'; import DaemonSet from '../../../../lib/k8s/daemonSet'; import Deployment from '../../../../lib/k8s/deployment'; import Endpoints from '../../../../lib/k8s/endpoints'; +import Gateway from '../../../../lib/k8s/gateway'; +import GatewayClass from '../../../../lib/k8s/gatewayClass'; import HPA from '../../../../lib/k8s/hpa'; +import HTTPRoute from '../../../../lib/k8s/httpRoute'; import Ingress from '../../../../lib/k8s/ingress'; import Job from '../../../../lib/k8s/job'; import { KubeObject, KubeObjectClass } from '../../../../lib/k8s/KubeObject'; @@ -221,6 +226,38 @@ const jobToCronJob = makeRelation(Job, CronJob, (job, cronJob) => job.metadata.ownerReferences?.find(owner => owner.uid === cronJob.metadata.uid) ); +const gatewayToGatewayClass = makeRelation( + Gateway, + GatewayClass, + (gateway, gatewayClass) => gateway.spec.gatewayClassName === gatewayClass.metadata.name +); + +const httpRouteToGateway = makeRelation(HTTPRoute, Gateway, (httpRoute, gateway) => + httpRoute.spec.parentRefs?.find(ref => ref.name === gateway.metadata.name) +); + +const httpRouteToService = makeRelation(HTTPRoute, Service, (httpRoute, service) => + httpRoute.spec.rules?.find(rule => + rule.backendRefs?.find(backend => backend.name === service.metadata.name) + ) +); + +const backendTLSPolicyToService = makeRelation( + BackendTLSPolicy, + Service, + (tlsPolicy, service) => + tlsPolicy.spec.targetRef?.name === service.metadata.name && + tlsPolicy.spec.targetRef?.kind === 'Service' +); + +const backendTrafficPolicyToService = makeRelation( + BackendTrafficPolicy, + Service, + (trafficPolicy, service) => + trafficPolicy.spec.targetRef?.name === service.metadata.name && + trafficPolicy.spec.targetRef?.kind === 'Service' +); + export function useGetAllRelations(): Relation[] { const staticRelations = [ configMapUsedInPods, @@ -244,6 +281,11 @@ export function useGetAllRelations(): Relation[] { podToOwner, repliaceSetToOwner, jobToCronJob, + gatewayToGatewayClass, + httpRouteToGateway, + httpRouteToService, + backendTLSPolicyToService, + backendTrafficPolicyToService, ]; const crdRelations = useGetCRToOwnerRelations(); diff --git a/frontend/src/components/resourceMap/sources/definitions/sources.tsx b/frontend/src/components/resourceMap/sources/definitions/sources.tsx index 637abb2411b..78622ecc282 100644 --- a/frontend/src/components/resourceMap/sources/definitions/sources.tsx +++ b/frontend/src/components/resourceMap/sources/definitions/sources.tsx @@ -16,13 +16,19 @@ import { Icon } from '@iconify/react'; import React, { useMemo } from 'react'; +import BackendTLSPolicy from '../../../../lib/k8s/backendTLSPolicy'; +import BackendTrafficPolicy from '../../../../lib/k8s/backendTrafficPolicy'; import ConfigMap from '../../../../lib/k8s/configMap'; import CRD from '../../../../lib/k8s/crd'; import CronJob from '../../../../lib/k8s/cronJob'; import DaemonSet from '../../../../lib/k8s/daemonSet'; import Deployment from '../../../../lib/k8s/deployment'; import Endpoints from '../../../../lib/k8s/endpoints'; +import Gateway from '../../../../lib/k8s/gateway'; +import GatewayClass from '../../../../lib/k8s/gatewayClass'; +import GRPCRoute from '../../../../lib/k8s/grpcRoute'; import HPA from '../../../../lib/k8s/hpa'; +import HTTPRoute from '../../../../lib/k8s/httpRoute'; import Ingress from '../../../../lib/k8s/ingress'; import IngressClass from '../../../../lib/k8s/ingressClass'; import Job from '../../../../lib/k8s/job'; @@ -31,6 +37,7 @@ import MutatingWebhookConfiguration from '../../../../lib/k8s/mutatingWebhookCon import NetworkPolicy from '../../../../lib/k8s/networkpolicy'; import PersistentVolumeClaim from '../../../../lib/k8s/persistentVolumeClaim'; import Pod from '../../../../lib/k8s/pod'; +import ReferenceGrant from '../../../../lib/k8s/referenceGrant'; import ReplicaSet from '../../../../lib/k8s/replicaSet'; import Role from '../../../../lib/k8s/role'; import RoleBinding from '../../../../lib/k8s/roleBinding'; @@ -174,6 +181,28 @@ export function useGetAllSources(): GraphSource[] { // leases ], }, + { + id: 'gateway-beta', + label: 'Gateway (beta)', + icon: ( + + ), + isEnabledByDefault: false, + sources: [ + makeKubeSource(GatewayClass), + makeKubeSource(Gateway), + makeKubeSource(HTTPRoute), + makeKubeSource(GRPCRoute), + makeKubeSource(ReferenceGrant), + makeKubeSource(BackendTLSPolicy), + makeKubeSource(BackendTrafficPolicy), + ], + }, ]; if (CustomResourceDefinition !== null) { diff --git a/frontend/src/i18n/locales/de/app.json b/frontend/src/i18n/locales/de/app.json index 694cbf30338..433bce700fd 100644 --- a/frontend/src/i18n/locales/de/app.json +++ b/frontend/src/i18n/locales/de/app.json @@ -41,11 +41,11 @@ "Help": "Hilfe", "Documentation": "Dokumentation", "Open an Issue": "Ein Problem melden", - "Invalid URL": "Ungültige URL", - "Application opened with an invalid URL: {{ url }}": "Anwendung mit einer ungültigen URL geöffnet: {{ url }}", "Another process is running": "Ein anderer Prozess läuft", "Looks like another process is already running. Continue by terminating that process automatically, or quit?": "Es sieht so aus, als ob bereits ein anderer Prozess läuft. Fortfahren, indem Sie diesen Prozess automatisch beenden, oder beenden?", "Continue": "Weiter", "Failed to quit the other running process": "Konnte den anderen laufenden Prozess nicht beenden", - "Could not quit the other running process, PIDs: {{ process_list }}. Please stop that process and relaunch the app.": "Konnte den anderen laufenden Prozess nicht beenden, PIDs: {{ process_list }}. Bitte stoppen Sie diesen Prozess und starten Sie die App neu." + "Could not quit the other running process, PIDs: {{ process_list }}. Please stop that process and relaunch the app.": "Konnte den anderen laufenden Prozess nicht beenden, PIDs: {{ process_list }}. Bitte stoppen Sie diesen Prozess und starten Sie die App neu.", + "Invalid URL": "Ungültige URL", + "Application opened with an invalid URL: {{ url }}": "Anwendung mit einer ungültigen URL geöffnet: {{ url }}" } diff --git a/frontend/src/i18n/locales/en/app.json b/frontend/src/i18n/locales/en/app.json index 3843cdcfd67..c96b783b930 100644 --- a/frontend/src/i18n/locales/en/app.json +++ b/frontend/src/i18n/locales/en/app.json @@ -41,11 +41,11 @@ "Help": "Help", "Documentation": "Documentation", "Open an Issue": "Open an Issue", - "Invalid URL": "Invalid URL", - "Application opened with an invalid URL: {{ url }}": "Application opened with an invalid URL: {{ url }}", "Another process is running": "Another process is running", "Looks like another process is already running. Continue by terminating that process automatically, or quit?": "Looks like another process is already running. Continue by terminating that process automatically, or quit?", "Continue": "Continue", "Failed to quit the other running process": "Failed to quit the other running process", - "Could not quit the other running process, PIDs: {{ process_list }}. Please stop that process and relaunch the app.": "Could not quit the other running process, PIDs: {{ process_list }}. Please stop that process and relaunch the app." + "Could not quit the other running process, PIDs: {{ process_list }}. Please stop that process and relaunch the app.": "Could not quit the other running process, PIDs: {{ process_list }}. Please stop that process and relaunch the app.", + "Invalid URL": "Invalid URL", + "Application opened with an invalid URL: {{ url }}": "Application opened with an invalid URL: {{ url }}" } diff --git a/frontend/src/i18n/locales/es/app.json b/frontend/src/i18n/locales/es/app.json index a3235d00607..f32f7793c16 100644 --- a/frontend/src/i18n/locales/es/app.json +++ b/frontend/src/i18n/locales/es/app.json @@ -41,11 +41,11 @@ "Help": "Ayuda", "Documentation": "Documentación", "Open an Issue": "Abrir un incidente", - "Invalid URL": "URL inválida", - "Application opened with an invalid URL: {{ url }}": "Aplicación abierta con una URL inválida: {{ url }}", "Another process is running": "Un otro proceso está corriendo", "Looks like another process is already running. Continue by terminating that process automatically, or quit?": "Parece que ya hay un otro proceso corriendo. Continuar y terminar el proceso automaticamente ou salir?", "Continue": "Continuar", "Failed to quit the other running process": "Fallo al quitar el otro proceso en ejecución", - "Could not quit the other running process, PIDs: {{ process_list }}. Please stop that process and relaunch the app.": "No se ha podido terminar el otro proceso, PIDs: {{ process_list }}. Por favor, termine el otro proceso y vuelva a lanzar la aplicación." + "Could not quit the other running process, PIDs: {{ process_list }}. Please stop that process and relaunch the app.": "No se ha podido terminar el otro proceso, PIDs: {{ process_list }}. Por favor, termine el otro proceso y vuelva a lanzar la aplicación.", + "Invalid URL": "URL inválida", + "Application opened with an invalid URL: {{ url }}": "Aplicación abierta con una URL inválida: {{ url }}" } diff --git a/frontend/src/i18n/locales/fr/app.json b/frontend/src/i18n/locales/fr/app.json index 183d9440630..0f6648846db 100644 --- a/frontend/src/i18n/locales/fr/app.json +++ b/frontend/src/i18n/locales/fr/app.json @@ -41,11 +41,11 @@ "Help": "Aide", "Documentation": "Documentation", "Open an Issue": "Ouvrir un problème", - "Invalid URL": "URL invalide", - "Application opened with an invalid URL: {{ url }}": "Application ouverte avec une URL invalide : {{ url }}", "Another process is running": "Un autre processus est en cours", "Looks like another process is already running. Continue by terminating that process automatically, or quit?": "Il semble qu'un autre processus soit déjà en cours. Continuer en terminant ce processus automatiquement, ou quitter ?", "Continue": "Continuer", "Failed to quit the other running process": "Échec de la fermeture de l'autre processus en cours", - "Could not quit the other running process, PIDs: {{ process_list }}. Please stop that process and relaunch the app.": "Impossible de quitter l'autre processus en cours, PIDs : {{ process_list }}. Veuillez arrêter ce processus et relancer l'application." + "Could not quit the other running process, PIDs: {{ process_list }}. Please stop that process and relaunch the app.": "Impossible de quitter l'autre processus en cours, PIDs : {{ process_list }}. Veuillez arrêter ce processus et relancer l'application.", + "Invalid URL": "URL invalide", + "Application opened with an invalid URL: {{ url }}": "Application ouverte avec une URL invalide : {{ url }}" } diff --git a/frontend/src/i18n/locales/hi/app.json b/frontend/src/i18n/locales/hi/app.json index b9a752ea30e..81efde17521 100644 --- a/frontend/src/i18n/locales/hi/app.json +++ b/frontend/src/i18n/locales/hi/app.json @@ -41,11 +41,11 @@ "Help": "सहायता", "Documentation": "दस्तावेज़ीकरण", "Open an Issue": "एक इशू खोलें", - "Invalid URL": "अमान्य URL", - "Application opened with an invalid URL: {{ url }}": "अनुप्रयोग एक अमान्य URL के साथ खोला गया: {{ url }}", "Another process is running": "एक अन्य प्रक्रिया चल रही है", "Looks like another process is already running. Continue by terminating that process automatically, or quit?": "लगता है कि एक अन्य प्रक्रिया पहले से ही चल रही है। उस प्रक्रिया को स्वचालित रूप से समाप्त करके जारी रखें, या बाहर निकलें?", "Continue": "जारी रखें", "Failed to quit the other running process": "अन्य चल रही प्रक्रिया से बाहर निकलने में विफल", - "Could not quit the other running process, PIDs: {{ process_list }}. Please stop that process and relaunch the app.": "अन्य चल रही प्रक्रिया से बाहर नहीं निकल सका, PIDs: {{ process_list }}। कृपया उस प्रक्रिया को रोकें और ऐप को फिर से लॉन्च करें।" + "Could not quit the other running process, PIDs: {{ process_list }}. Please stop that process and relaunch the app.": "अन्य चल रही प्रक्रिया से बाहर नहीं निकल सका, PIDs: {{ process_list }}। कृपया उस प्रक्रिया को रोकें और ऐप को फिर से लॉन्च करें।", + "Invalid URL": "अमान्य URL", + "Application opened with an invalid URL: {{ url }}": "अनुप्रयोग एक अमान्य URL के साथ खोला गया: {{ url }}" } diff --git a/frontend/src/i18n/locales/it/app.json b/frontend/src/i18n/locales/it/app.json index 84234d0d4e4..dd8eba2d7b9 100644 --- a/frontend/src/i18n/locales/it/app.json +++ b/frontend/src/i18n/locales/it/app.json @@ -41,11 +41,11 @@ "Help": "Aiuto", "Documentation": "Documentazione", "Open an Issue": "Segnala un Problema", - "Invalid URL": "URL Non Valido", - "Application opened with an invalid URL: {{ url }}": "Applicazione avviata con un URL non valido: {{ url }}", "Another process is running": "Un altro processo è in esecuzione", "Looks like another process is already running. Continue by terminating that process automatically, or quit?": "Sembra che un altro processo sia già in esecuzione. Vuoi continuare terminando automaticamente quel processo o uscire?", "Continue": "Continua", "Failed to quit the other running process": "Impossibile terminare l'altro processo in esecuzione", - "Could not quit the other running process, PIDs: {{ process_list }}. Please stop that process and relaunch the app.": "Impossibile terminare l'altro processo in esecuzione, PID: {{ process_list }}. Ferma quel processo e riavvia l'app." + "Could not quit the other running process, PIDs: {{ process_list }}. Please stop that process and relaunch the app.": "Impossibile terminare l'altro processo in esecuzione, PID: {{ process_list }}. Ferma quel processo e riavvia l'app.", + "Invalid URL": "URL Non Valido", + "Application opened with an invalid URL: {{ url }}": "Applicazione avviata con un URL non valido: {{ url }}" } diff --git a/frontend/src/i18n/locales/ja/app.json b/frontend/src/i18n/locales/ja/app.json index ffcf9afcfe5..7f0929ddbda 100644 --- a/frontend/src/i18n/locales/ja/app.json +++ b/frontend/src/i18n/locales/ja/app.json @@ -41,11 +41,11 @@ "Help": "ヘルプ", "Documentation": "ドキュメント", "Open an Issue": "問題を報告", - "Invalid URL": "無効な URL", - "Application opened with an invalid URL: {{ url }}": "無効な URL でアプリケーションが開かれました: {{ url }}", "Another process is running": "別のプロセスが実行中です", "Looks like another process is already running. Continue by terminating that process automatically, or quit?": "別のプロセスが既に実行されているようです。そのプロセスを自動的に終了して続行しますか、それとも終了しますか?", "Continue": "続行", "Failed to quit the other running process": "他の実行中のプロセスの終了に失敗しました", - "Could not quit the other running process, PIDs: {{ process_list }}. Please stop that process and relaunch the app.": "他の実行中のプロセス PID: {{ process_list }} を終了できませんでした。そのプロセスを停止してアプリを再起動してください。" + "Could not quit the other running process, PIDs: {{ process_list }}. Please stop that process and relaunch the app.": "他の実行中のプロセス PID: {{ process_list }} を終了できませんでした。そのプロセスを停止してアプリを再起動してください。", + "Invalid URL": "無効な URL", + "Application opened with an invalid URL: {{ url }}": "無効な URL でアプリケーションが開かれました: {{ url }}" } diff --git a/frontend/src/i18n/locales/ko/app.json b/frontend/src/i18n/locales/ko/app.json index 8435f729759..8c6e6c89b66 100644 --- a/frontend/src/i18n/locales/ko/app.json +++ b/frontend/src/i18n/locales/ko/app.json @@ -41,11 +41,11 @@ "Help": "도움말", "Documentation": "문서", "Open an Issue": "이슈 열기", - "Invalid URL": "잘못된 URL", - "Application opened with an invalid URL: {{ url }}": "잘못된 URL로 애플리케이션이 열렸습니다: {{ url }}", "Another process is running": "다른 프로세스가 실행 중입니다", "Looks like another process is already running. Continue by terminating that process automatically, or quit?": "이미 다른 프로세스가 실행 중인 것 같습니다. 해당 프로세스를 자동으로 종료하고 계속하시겠습니까, 아니면 종료하시겠습니까?", "Continue": "계속", "Failed to quit the other running process": "다른 실행 중인 프로세스를 종료하지 못했습니다", - "Could not quit the other running process, PIDs: {{ process_list }}. Please stop that process and relaunch the app.": "다른 실행 중인 프로세스를 종료할 수 없습니다. PID: {{ process_list }}. 해당 프로세스를 종료한 후 앱을 다시 실행하세요." + "Could not quit the other running process, PIDs: {{ process_list }}. Please stop that process and relaunch the app.": "다른 실행 중인 프로세스를 종료할 수 없습니다. PID: {{ process_list }}. 해당 프로세스를 종료한 후 앱을 다시 실행하세요.", + "Invalid URL": "잘못된 URL", + "Application opened with an invalid URL: {{ url }}": "잘못된 URL로 애플리케이션이 열렸습니다: {{ url }}" } diff --git a/frontend/src/i18n/locales/pt/app.json b/frontend/src/i18n/locales/pt/app.json index 28cb3bc02c2..c397bfc10c3 100644 --- a/frontend/src/i18n/locales/pt/app.json +++ b/frontend/src/i18n/locales/pt/app.json @@ -41,11 +41,11 @@ "Help": "Ajuda", "Documentation": "Documentação", "Open an Issue": "Abrir um incidente", - "Invalid URL": "URL inválido", - "Application opened with an invalid URL: {{ url }}": "Aplicação aberta com um URL inválido: {{ url }}", "Another process is running": "Há outro processo em execução", "Looks like another process is already running. Continue by terminating that process automatically, or quit?": "Parece que há outro processo em execução. Continuar com a eliminação automática desse processo ou sair?", "Continue": "Continuar", "Failed to quit the other running process": "Falha ao eliminar o outro processo em execução", - "Could not quit the other running process, PIDs: {{ process_list }}. Please stop that process and relaunch the app.": "Não foi possível eliminar o outro processo em execução. PIDs: {{ process_list }}. Por favor pare esse processo e reinicie o programa." + "Could not quit the other running process, PIDs: {{ process_list }}. Please stop that process and relaunch the app.": "Não foi possível eliminar o outro processo em execução. PIDs: {{ process_list }}. Por favor pare esse processo e reinicie o programa.", + "Invalid URL": "URL inválido", + "Application opened with an invalid URL: {{ url }}": "Aplicação aberta com um URL inválido: {{ url }}" } diff --git a/frontend/src/i18n/locales/ta/app.json b/frontend/src/i18n/locales/ta/app.json index e3092b1c15d..f2f835fe4b7 100644 --- a/frontend/src/i18n/locales/ta/app.json +++ b/frontend/src/i18n/locales/ta/app.json @@ -41,11 +41,11 @@ "Help": "உதவி", "Documentation": "ஆவணப்படுத்தல்", "Open an Issue": "ஒரு இஷ்யூவைத் திற", - "Invalid URL": "தவறான URL", - "Application opened with an invalid URL: {{ url }}": "பயன்பாடு தவறான URL உடன் திறக்கப்பட்டது: {{ url }}", "Another process is running": "மற்றொரு ப்ராசஸ் இயங்குகிறது", "Looks like another process is already running. Continue by terminating that process automatically, or quit?": "மற்றொரு ப்ராசஸ் ஏற்கனவே இயங்குவது போல் தெரிகிறது. அந்த ப்ராசஸை தானாகவே முடிப்பதன் மூலம் தொடரவா, அல்லது வெளியேறவா?", "Continue": "தொடர்க", "Failed to quit the other running process": "மற்ற இயங்கும் ப்ராசஸிலிருந்து வெளியேற முடியவில்லை", - "Could not quit the other running process, PIDs: {{ process_list }}. Please stop that process and relaunch the app.": "மற்ற இயங்கும் ப்ராசஸிலிருந்து வெளியேற முடியவில்லை, PIDs: {{ process_list }}. தயவுசெய்து அந்த ப்ராசஸை நிறுத்தி பயன்பாட்டை மீண்டும் தொடங்கவும்." + "Could not quit the other running process, PIDs: {{ process_list }}. Please stop that process and relaunch the app.": "மற்ற இயங்கும் ப்ராசஸிலிருந்து வெளியேற முடியவில்லை, PIDs: {{ process_list }}. தயவுசெய்து அந்த ப்ராசஸை நிறுத்தி பயன்பாட்டை மீண்டும் தொடங்கவும்.", + "Invalid URL": "தவறான URL", + "Application opened with an invalid URL: {{ url }}": "பயன்பாடு தவறான URL உடன் திறக்கப்பட்டது: {{ url }}" } diff --git a/frontend/src/i18n/locales/zh-tw/app.json b/frontend/src/i18n/locales/zh-tw/app.json index 639ddc5672a..e6ea32a4e8d 100644 --- a/frontend/src/i18n/locales/zh-tw/app.json +++ b/frontend/src/i18n/locales/zh-tw/app.json @@ -41,11 +41,11 @@ "Help": "", "Documentation": "", "Open an Issue": "", - "Invalid URL": "", - "Application opened with an invalid URL: {{ url }}": "", "Another process is running": "", "Looks like another process is already running. Continue by terminating that process automatically, or quit?": "", "Continue": "", "Failed to quit the other running process": "", - "Could not quit the other running process, PIDs: {{ process_list }}. Please stop that process and relaunch the app.": "" + "Could not quit the other running process, PIDs: {{ process_list }}. Please stop that process and relaunch the app.": "", + "Invalid URL": "", + "Application opened with an invalid URL: {{ url }}": "" } diff --git a/frontend/src/i18n/locales/zh/app.json b/frontend/src/i18n/locales/zh/app.json index 5a13188e5c3..a6831142828 100644 --- a/frontend/src/i18n/locales/zh/app.json +++ b/frontend/src/i18n/locales/zh/app.json @@ -41,11 +41,11 @@ "Help": "帮助", "Documentation": "文档", "Open an Issue": "提交问题", - "Invalid URL": "非法的URL", - "Application opened with an invalid URL: {{ url }}": "应用程序打开了一个非法URL: {{ url }}", "Another process is running": "另一个进程正在运行", "Looks like another process is already running. Continue by terminating that process automatically, or quit?": "似乎另外一个进程正在运行中。自动终止该进程并继续,还是退出?", "Continue": "继续", "Failed to quit the other running process": "退出运行中的进程失败", - "Could not quit the other running process, PIDs: {{ process_list }}. Please stop that process and relaunch the app.": "无法退出运行中的进程,PIDs: {{ process_list }}。请手动关闭进程并重启应用" + "Could not quit the other running process, PIDs: {{ process_list }}. Please stop that process and relaunch the app.": "无法退出运行中的进程,PIDs: {{ process_list }}。请手动关闭进程并重启应用", + "Invalid URL": "非法的URL", + "Application opened with an invalid URL: {{ url }}": "应用程序打开了一个非法URL: {{ url }}" }