diff --git a/web/src/assets/images/language_flags/de.svg b/web/src/assets/images/language_flags/de.svg
new file mode 100644
index 0000000000..c62ecc03f9
--- /dev/null
+++ b/web/src/assets/images/language_flags/de.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/web/src/assets/images/language_flags/es.svg b/web/src/assets/images/language_flags/es.svg
new file mode 100644
index 0000000000..5d353e12af
--- /dev/null
+++ b/web/src/assets/images/language_flags/es.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/web/src/assets/images/language_flags/fr.svg b/web/src/assets/images/language_flags/fr.svg
new file mode 100644
index 0000000000..0617190537
--- /dev/null
+++ b/web/src/assets/images/language_flags/fr.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/web/src/assets/images/language_flags/it.svg b/web/src/assets/images/language_flags/it.svg
new file mode 100644
index 0000000000..850e58782c
--- /dev/null
+++ b/web/src/assets/images/language_flags/it.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/web/src/assets/images/language_flags/ja.svg b/web/src/assets/images/language_flags/ja.svg
new file mode 100644
index 0000000000..0376d29859
--- /dev/null
+++ b/web/src/assets/images/language_flags/ja.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/web/src/assets/images/language_flags/ko.svg b/web/src/assets/images/language_flags/ko.svg
new file mode 100644
index 0000000000..80bcba8466
--- /dev/null
+++ b/web/src/assets/images/language_flags/ko.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/web/src/assets/images/language_flags/nl.svg b/web/src/assets/images/language_flags/nl.svg
new file mode 100644
index 0000000000..1dfbb79ba6
--- /dev/null
+++ b/web/src/assets/images/language_flags/nl.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/web/src/assets/images/language_flags/pt.svg b/web/src/assets/images/language_flags/pt.svg
new file mode 100644
index 0000000000..c219fb538e
--- /dev/null
+++ b/web/src/assets/images/language_flags/pt.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/web/src/components/alerts/add.vue b/web/src/components/alerts/add.vue
index 07bc88f5fc..166c15a21b 100644
--- a/web/src/components/alerts/add.vue
+++ b/web/src/components/alerts/add.vue
@@ -408,13 +408,24 @@ export default defineComponent({
{
token: "comment",
foreground: "ffa500",
+ background: "FFFFFF",
fontStyle: "italic underline",
},
- { token: "comment.js", foreground: "008800", fontStyle: "bold" },
- { token: "comment.css", foreground: "0000ff" }, // will inherit fontStyle from `comment` above
+ {
+ token: "comment.js",
+ foreground: "008800",
+ fontStyle: "bold",
+ background: "FFFFFF",
+ },
+ { token: "comment.css", foreground: "0000ff", background: "FFFFFF" }, // will inherit fontStyle from `comment` above
],
colors: {
"editor.foreground": "#000000",
+ "editor.background": "#FFFFFF",
+ "editorCursor.foreground": "#000000",
+ "editor.lineHighlightBackground": "#FFFFFF",
+ "editorLineNumber.foreground": "#000000",
+ "editor.border": "#FFFFFF",
},
});
editorobj = monaco.editor.create(editorRef.value, {
@@ -532,7 +543,7 @@ export default defineComponent({
this.beingUpdated = true;
this.disableColor = "grey-5";
this.formData = this.modelValue;
- this.formData.destination = this.modelValue.destination[0]
+ this.formData.destination = this.modelValue.destination[0];
}
streamService
diff --git a/web/src/components/dashboards/QueryEditor.vue b/web/src/components/dashboards/QueryEditor.vue
index dd99c68f15..e61ea6916e 100644
--- a/web/src/components/dashboards/QueryEditor.vue
+++ b/web/src/components/dashboards/QueryEditor.vue
@@ -22,8 +22,8 @@ export default defineComponent({
},
readOnly: {
type: Boolean,
- default: false
- }
+ default: false,
+ },
},
emits: ["update-query", "run-query", "update:query"],
setup(props, { emit }) {
@@ -185,11 +185,11 @@ export default defineComponent({
rules: [{ token: "comment", background: "FF0000" }],
colors: {
"editor.foreground": "#000000",
- "editor.background": "#F7F7F7",
+ "editor.background": "#fafafa",
"editorCursor.foreground": "#000000",
- "editor.lineHighlightBackground": "#000000",
- "editorLineNumber.foreground": "#000000",
- "editor.border": "#000000",
+ "editor.lineHighlightBackground": "#FFFFFF",
+ "editorLineNumber.foreground": "#ececec",
+ "editor.border": "#ececec",
},
});
@@ -271,7 +271,7 @@ export default defineComponent({
seedSearchStringFromSelection: "never",
},
minimap: { enabled: false },
- readOnly: props.readOnly
+ readOnly: props.readOnly,
});
editorObj.onDidChangeModelContent((e: any) => {
@@ -287,7 +287,6 @@ export default defineComponent({
},
"ctrlenter"
);
-
});
const setValue = (value: string) => {
@@ -295,16 +294,22 @@ export default defineComponent({
};
// update readonly when prop value changes
- watch(() => props.readOnly, () => {
- editorObj.updateOptions({ readOnly: props.readOnly })
- })
+ watch(
+ () => props.readOnly,
+ () => {
+ editorObj.updateOptions({ readOnly: props.readOnly });
+ }
+ );
// update readonly when prop value changes
- watch(() => props.query, () => {
- if(props.readOnly) {
- editorObj.getModel().setValue(props.query)
+ watch(
+ () => props.query,
+ () => {
+ if (props.readOnly) {
+ editorObj.getModel().setValue(props.query);
+ }
}
- })
+ );
return {
editorRef,
diff --git a/web/src/components/logBarChart.vue b/web/src/components/logBarChart.vue
index b158fd3261..c645a57ce8 100644
--- a/web/src/components/logBarChart.vue
+++ b/web/src/components/logBarChart.vue
@@ -79,7 +79,7 @@ export default defineComponent({
) => {
trace.x = x;
trace.y = y;
- layout.title.text = params.title;
+ layout.title.text = params.title || "";
trace.unparsed_x = params.unparsed_x_data;
Plotly.redraw("plotly_chart");
};
diff --git a/web/src/layouts/MainLayout.vue b/web/src/layouts/MainLayout.vue
index 32d37de5fc..49983d9f41 100644
--- a/web/src/layouts/MainLayout.vue
+++ b/web/src/layouts/MainLayout.vue
@@ -323,6 +323,46 @@ export default defineComponent({
code: "zh-cn",
icon: "img:" + getImageURL("images/language_flags/zh-cn.svg"),
},
+ {
+ label: "French",
+ code: "fr",
+ icon: "img:" + getImageURL("images/language_flags/fr.svg"),
+ },
+ {
+ label: "Spanish",
+ code: "es",
+ icon: "img:" + getImageURL("images/language_flags/es.svg"),
+ },
+ {
+ label: "German",
+ code: "de",
+ icon: "img:" + getImageURL("images/language_flags/de.svg"),
+ },
+ {
+ label: "Italian",
+ code: "it",
+ icon: "img:" + getImageURL("images/language_flags/it.svg"),
+ },
+ {
+ label: "Japanese",
+ code: "ja",
+ icon: "img:" + getImageURL("images/language_flags/ja.svg"),
+ },
+ {
+ label: "Korean",
+ code: "ko",
+ icon: "img:" + getImageURL("images/language_flags/ko.svg"),
+ },
+ {
+ label: "Dutch",
+ code: "nl",
+ icon: "img:" + getImageURL("images/language_flags/nl.svg"),
+ },
+ {
+ label: "Portuguese",
+ code: "pt",
+ icon: "img:" + getImageURL("images/language_flags/pt.svg"),
+ },
];
const local = ref(getLocale());
diff --git a/web/src/locales/index.ts b/web/src/locales/index.ts
index 6c8412282d..deec910a04 100644
--- a/web/src/locales/index.ts
+++ b/web/src/locales/index.ts
@@ -20,6 +20,14 @@ import { getLanguage } from "../utils/cookies";
import zhLocale from "./languages/zh.json";
import enLocale from "./languages/en.json";
import trLocale from "./languages/tr.json";
+import deLocale from "./languages/de.json";
+import esLocale from "./languages/es.json";
+import frLocale from "./languages/fr.json";
+import itLocale from "./languages/it.json";
+import jaLocale from "./languages/ja.json";
+import koLocale from "./languages/ko.json";
+import nlLocale from "./languages/nl.json";
+import ptLocale from "./languages/pt.json";
const messages = {
@@ -32,6 +40,30 @@ const messages = {
"tr-turk": {
...trLocale,
},
+ "de": {
+ ...deLocale,
+ },
+ "es": {
+ ...esLocale,
+ },
+ "fr": {
+ ...frLocale,
+ },
+ "it": {
+ ...itLocale,
+ },
+ "ja": {
+ ...jaLocale,
+ },
+ "ko": {
+ ...koLocale,
+ },
+ "nl": {
+ ...nlLocale,
+ },
+ "pt": {
+ ...ptLocale,
+ },
};
export const getLocale = () => {
diff --git a/web/src/locales/languages/de.json b/web/src/locales/languages/de.json
new file mode 100644
index 0000000000..76912ef907
--- /dev/null
+++ b/web/src/locales/languages/de.json
@@ -0,0 +1,309 @@
+{
+ "search": {
+ "selectIndex": "Wähle „Zuerst streamen“",
+ "typeSearch": "Geben Sie hier Ihre Suchanfrage ein",
+ "searchField": "Suche nach einem Feld",
+ "maxRecords": "Max. Anzahl zurückzugekehrter Datensätze",
+ "searchResult": "Ergebnisse der Suche",
+ "resultsFound": "Ergebnisse gefunden",
+ "timestamp": "Zeitstempel",
+ "source": "_quelle",
+ "noResult": "Kein Ergebnis",
+ "syntaxGuide": "Leitfaden zur Syntax",
+ "recordsPerPage": "Datensätze pro Seite",
+ "showing": "Zeigt",
+ "of": "von",
+ "rowDetail": "Angaben zur Quelle",
+ "sourceName": "Name",
+ "sourceValue": "Wert",
+ "searchStream": "Stream suchen",
+ "showQueryLabel": "Anfrage",
+ "showFieldLabel": "Felder",
+ "showHistogramLabel": "Histogramm",
+ "sqlModeLabel": "SQL-Modus"
+ },
+ "menu": {
+ "home": "Zuhause",
+ "about": "Über",
+ "user": "Nutzer",
+ "index": "Streams",
+ "search": "Logs",
+ "template": "Vorlage",
+ "signOut": "Abmelden",
+ "account": "Konto",
+ "feedback": "Rückmeldung",
+ "zincSearch": "Zinksuche",
+ "documentation": "Dokumente",
+ "tickets": "Fahrkarte",
+ "organizations": "Organisationen",
+ "function": "Funktionen",
+ "ingestion": "Verschlucken",
+ "metrics": "Metriken",
+ "slack": "Hilfe",
+ "dashboard": "Dashboards",
+ "alerts": "Warnmeldungen",
+ "openapi": "OpenAPI",
+ "docs": "Dokumente"
+ },
+ "about": {
+ "name": "Zink",
+ "introduction": "Beobachtbarkeit vereinfacht."
+ },
+ "login": {
+ "userid": "Benutzer-ID",
+ "userEmail": "Benutzer-E-Mail",
+ "signIn": "Loggen Sie sich ein",
+ "signUp": "Melde dich an",
+ "password": "Passwort",
+ "cnfpassword": "Bestätigen Sie das Passwort",
+ "singnInWithGoogle": "Weiter mit Google"
+ },
+ "user": {
+ "header": "Mitglied der Organisation",
+ "id": "Benutzer-ID",
+ "name": "Nutzername",
+ "role": "Rolle",
+ "CREATED": "ERSTELLT",
+ "UPDATED": "AKTUALISIERT",
+ "password": "Passwort",
+ "repassword": "Passwort erneut bestätigen",
+ "addOrUpdate": "Benutzer hinzufügen/aktualisieren",
+ "editUser": "Benutzer aktualisieren",
+ "add": "Nutzer hinzufügen",
+ "search": "Benutzer suchen",
+ "createdAt": "Aktualisiert am",
+ "updatedAt": "Erstellt am",
+ "status": "Status",
+ "ID": "id",
+ "email": "E-Mail",
+ "cognitoSub": "Cognito_SUB",
+ "firstName": "Vorname",
+ "lastName": "Nachname",
+ "actions": "Aktionen",
+ "memberCreated": "Mitglied erstellt",
+ "memberUpdated": "Mitglied aktualisiert",
+ "updateRole": "Rolle aktualisieren",
+ "orgMemberId": "Mitglieds-ID der Organisation",
+ "view": "Ansicht",
+ "update": "Aktualisieren",
+ "delete": "Löschen",
+ "confirmDeleteHead": "Nutzer löschen",
+ "confirmDeleteMsg": "Möchten Sie diesen Benutzer wirklich löschen?",
+ "cancel": "Stornieren",
+ "save": "Speichern",
+ "ok": "Okay",
+ "updatenotallowed": "Update für Besitzer nicht erlaubt",
+ "sendInvite": "Einladung senden",
+ "inviteByEmail": "Per E-Mail einladen. Mehrere E-Mails, getrennt durch ein Semikolon (;)",
+ "inviteByEmailHint": "Für das Hinzufügen eines Mitglieds wird Ihnen ein anteiler Betrag in Rechnung gestellt.",
+ "admin": "Administrator",
+ "member": "Mitglied",
+ "changePassword": "Passwort ändern",
+ "oldPassword": "Altes Passwort",
+ "newPassword": "Neues Passwort"
+ },
+ "ticket": {
+ "header": "Tickets für den Support",
+ "add": "Ticket hinzufügen",
+ "save": "Speichern",
+ "update": "Aktualisieren",
+ "delete": "Ticket löschen",
+ "search": "Ticket suchen",
+ "subject": "Betreff",
+ "description": "Beschreibung",
+ "id": "Ticket-ID",
+ "createdAt": "Erstellt am",
+ "updatedAt": "Aktualisiert am",
+ "status": "Status",
+ "comments": "Kommentare",
+ "addComments": "Kommentare hinzufügen",
+ "attachments": "Anlagen",
+ "noDataErrorMsg": "Keine Daten verfügbar",
+ "createTicket": "Ticket erstellen",
+ "updateTicket": "Ticket aktualisieren",
+ "inputTextHolder": "Tippe hier",
+ "selectHolder": "Wählen",
+ "cancel": "Stornieren"
+ },
+ "organization": {
+ "header": "Organisationen",
+ "orgName": "Name der Organisation",
+ "createOrganization": "Organisation erstellen",
+ "updateOrganization": "Organisation aktualisieren",
+ "nameHolder": "Geben Sie hier den Namen ein",
+ "add": "Organisation hinzufügen",
+ "save": "Speichern",
+ "cancel": "Stornieren",
+ "delete": "Organisation löschen",
+ "search": "Organisation suchen",
+ "subject": "Betreff",
+ "description": "Beschreibung",
+ "id": "Organisations-ID",
+ "createdAt": "Erstellt am",
+ "updatedAt": "Aktualisiert am",
+ "status": "Status",
+ "invite": "Teamkollege einladen",
+ "name": "Name",
+ "type": "Typ",
+ "owner": "Besitzer",
+ "created": "Erstellt",
+ "actions": "Aktionen",
+ "emailLabel": "Geben Sie die E-Mail-ID ein",
+ "emailHolder": "Geben Sie hier die E-Mail-ID ein",
+ "note": "Hinweis: Drücken Sie die Eingabetaste, um mehrere Teammitglieder hinzuzufügen.",
+ "identifier": "Identifier",
+ "copyapikey": "API-Schlüssel kopieren",
+ "getapikey": "API-Schlüssel abrufen",
+ "role": "Rolle",
+ "nameRequired": "Name ist erforderlich"
+ },
+ "template": {
+ "header": "Vorlagen",
+ "add": "Vorlage hinzufügen",
+ "search": "Vorlage für die Suche"
+ },
+ "logStream": {
+ "header": "Streams",
+ "search": "Stream suchen",
+ "name": "Name",
+ "docNum": "Dokument Nr.",
+ "storageSize": "Aufgenommene Daten",
+ "compressedSize": "Komprimierte Größe",
+ "time": "Zeit",
+ "storageType": "Art des Speichers",
+ "shardNum": "Shard-Nummer",
+ "schemaHeader": "Stream-Detail",
+ "streamSettings": "Stream-Einstellungen",
+ "streamPartitionKey": "Partitionsschlüssel",
+ "streamftsKey": "Volltext-Suchschlüssel",
+ "delete": "Löschen",
+ "deleteIndex": "Stream löschen",
+ "confirmDeleteHead": "Stream löschen",
+ "confirmDeleteMsg": "Bist du sicher, dass du diesen Stream löschen möchtest?",
+ "cancel": "Stornieren",
+ "ok": "Okay",
+ "docsCount": "Anzahl Dokumente",
+ "mapping": "Kartierung",
+ "propertyName": "Name der Immobilie",
+ "propertyType": "Art der Immobilie",
+ "type": "Typ",
+ "refreshStats": "Statistiken aktualisieren",
+ "updateSettings": "Einstellungen aktualisieren"
+ },
+ "function": {
+ "header": "Funktionen",
+ "add": "Neue Funktion erstellen",
+ "search": "Suchfunktion",
+ "name": "Name",
+ "function": "Detail der Funktion",
+ "save": "Speichern",
+ "jsfunction": "Funktion",
+ "stream_name": "Name des Streams",
+ "order": "Bestellung",
+ "ingest": "Funktioniert Ingest Time?",
+ "actions": "Aktionen",
+ "cancel": "Stornieren",
+ "addTitle": "Funktion hinzufügen",
+ "updateTitle": "Funktion aktualisieren",
+ "delete": "Löschen",
+ "ok": "Okay",
+ "type": "Art der Funktion",
+ "showQuery": "Funktioniert Ingest Time?"
+ },
+ "confirmDialog": {
+ "cancel": "Stornieren",
+ "ok": "Okay"
+ },
+ "ingestion": {
+ "header": "Verschlucken",
+ "passwordLabel": "Token zurücksetzen"
+ },
+ "dashboard": {
+ "header": "Dashboards",
+ "add": "Dashboard hinzufügen",
+ "save": "Speichern",
+ "cancel": "Stornieren",
+ "delete": "Dashboard löschen",
+ "search": "Dashboard durchsuchen",
+ "name": "Name des Dashboards",
+ "typeDesc": "Typbeschreibung des Dashboards",
+ "createdashboard": "Neues Dashboard erstellen",
+ "nameHolder": "Geben Sie den Namen des neuen Dashboards ein",
+ "typeHolder": "Geben Sie die Typbeschreibung des neuen Dashboards ein"
+ },
+ "panel": {
+ "header": "Paneel",
+ "add": "Panel hinzufügen",
+ "save": "Speichern",
+ "cancel": "Stornieren",
+ "delete": "Panel löschen",
+ "search": "Panel „Suchen“",
+ "name": "Name des Panels",
+ "typeDesc": "Beschreibung",
+ "createdashboard": "Neues Panel erstellen",
+ "nameHolder": "Geben Sie den Namen des neuen Panels ein",
+ "typeHolder": "Geben Sie die Typbeschreibung des neuen Panels ein",
+ "editPanel": "Bedienfeld bearbeiten"
+ },
+ "alerts": {
+ "header": "Warnmeldungen",
+ "add": "Warnung hinzufügen",
+ "search": "Suchwarnung",
+ "name": "Name",
+ "function": "Einzelheiten der Warnung",
+ "save": "Speichern",
+ "sql": "Anfrage",
+ "realTime": "Echtzeit",
+ "scheduled": "Geplant",
+ "duration": "Dauer, für die die Warnung ausgewertet wird",
+ "condition": "Zustand",
+ "interval": "Häufigkeit, mit der die Warnung ausgewertet wird",
+ "delayNotificationUntil": "Benachrichtigung verzögern bis, nach einer Benachrichtigung",
+ "destination": "Reiseziel",
+ "stream_name": "Name des Streams",
+ "actions": "Aktionen",
+ "cancel": "Stornieren",
+ "addTitle": "Warnung hinzufügen",
+ "updateTitle": "Warnung aktualisieren",
+ "delete": "Löschen"
+ },
+ "home": {
+ "streams": "Streams",
+ "totalDataIngested": "Gesamtzahl der aufgenommenen Daten",
+ "view": "Mehr anzeigen>>",
+ "queryFunctions": "Funktionen abfragen",
+ "ingestFunctions": "Funktionen aufnehmen",
+ "scheduledAlert": "Geplante Benachrichtigungen",
+ "rtAlert": "Benachrichtigungen in Echtzeit",
+ "noData": "Keine Daten aufgenommen",
+ "findIngestion": "Finden Sie heraus, wie Sie Logs aufnehmen können >>",
+ "ingestionMsg": "Sieht so aus, als ob Sie keine Daten in die ausgewählte Organisation aufgenommen haben. Es gibt verschiedene Möglichkeiten, wie Daten wie Fluentbit aufgenommen werden können.",
+ "inestedInSearch": "Testen Sie Logs Search",
+ "searchInDemoOrg": "Sie können die Suchmöglichkeiten erkunden, indem Sie zur Demo-Organisation wechseln. Um zur Demo-Organisation zu wechseln, wählen Sie „Demo-Organisation“ über das Drop-down-Menü für die Organisation aus. Wir erfassen ständig Dummy-Daten in die Demo-Organisation."
+ },
+ "billing": {
+ "header": "Nutzung und Abrechnung",
+ "plans": "Pläne",
+ "subtitle": "Einfache, transparente Preisgestaltung",
+ "individuals": "Für Einzelpersonen",
+ "startups": "Für Startups",
+ "basic": "Grundlegend",
+ "pro": "Profi",
+ "whatIsIncluded": "Was ist enthalten",
+ "subscribed": "Abonniert",
+ "getStarted": "Fangen Sie an",
+ "paymentMethod": "Zahlungsmethode",
+ "invoiceHistory": "Verlauf der Rechnungen",
+ "generatedAt": "Generiert am",
+ "details": "Einzelheiten",
+ "amount": "Betrag",
+ "amountPaid": "Gezahlter Betrag",
+ "amountDue": "Fälliger Betrag",
+ "dueDate": "Fälligkeitsdatum",
+ "status": "Status",
+ "action": "Aktion",
+ "usage": "Verwendungszweck",
+ "manageCards": "Karten verwalten",
+ "subscriptionCheckout": "Abonnement-Checkout"
+ }
+}
\ No newline at end of file
diff --git a/web/src/locales/languages/es.json b/web/src/locales/languages/es.json
new file mode 100644
index 0000000000..f26e8b2dbf
--- /dev/null
+++ b/web/src/locales/languages/es.json
@@ -0,0 +1,309 @@
+{
+ "search": {
+ "selectIndex": "Primero selecciona Stream",
+ "typeSearch": "Escriba aquí su consulta de búsqueda",
+ "searchField": "Buscar un campo",
+ "maxRecords": "Cantidad máxima de registros a devolver",
+ "searchResult": "Resultados de búsqueda",
+ "resultsFound": "Resultados encontrados",
+ "timestamp": "marca de tiempo",
+ "source": "_fuente",
+ "noResult": "Sin resultado",
+ "syntaxGuide": "Guía de sintaxis",
+ "recordsPerPage": "Registros por página",
+ "showing": "Mostrando",
+ "of": "de",
+ "rowDetail": "Detalles de la fuente",
+ "sourceName": "Nombre",
+ "sourceValue": "Valor",
+ "searchStream": "Secuencia de búsqueda",
+ "showQueryLabel": "Consulta",
+ "showFieldLabel": "Campos",
+ "showHistogramLabel": "Histograma",
+ "sqlModeLabel": "Modo SQL"
+ },
+ "menu": {
+ "home": "Casa",
+ "about": "Sobre",
+ "user": "Usuarios",
+ "index": "Corrientes",
+ "search": "Registros",
+ "template": "Plantilla",
+ "signOut": "Cerrar sesión",
+ "account": "Cuenta",
+ "feedback": "Retroalimentación",
+ "zincSearch": "Búsqueda de zinc",
+ "documentation": "Documentos",
+ "tickets": "Boleto",
+ "organizations": "Organizaciones",
+ "function": "Funciones",
+ "ingestion": "Ingestión",
+ "metrics": "Métricas",
+ "slack": "Ayudar",
+ "dashboard": "Cuadros de mando",
+ "alerts": "Alertas",
+ "openapi": "API abierta",
+ "docs": "Documentos"
+ },
+ "about": {
+ "name": "Zinc",
+ "introduction": "Observabilidad simplificada."
+ },
+ "login": {
+ "userid": "ID de usuario",
+ "userEmail": "Correo electrónico del usuario",
+ "signIn": "Iniciar sesión",
+ "signUp": "Inscríbase",
+ "password": "Contraseña",
+ "cnfpassword": "Confirme la contraseña",
+ "singnInWithGoogle": "Continuar con Google"
+ },
+ "user": {
+ "header": "Miembro de la organización",
+ "id": "ID de usuario",
+ "name": "Nombre de usuario",
+ "role": "Función",
+ "CREATED": "CREADO",
+ "UPDATED": "ACTUALIZADO",
+ "password": "Contraseña",
+ "repassword": "Vuelva a confirmar la contraseña",
+ "addOrUpdate": "Añadir/actualizar usuario",
+ "editUser": "Actualizar usuario",
+ "add": "Agregar usuario",
+ "search": "Buscar usuario",
+ "createdAt": "Actualizado en",
+ "updatedAt": "Creado en",
+ "status": "Estado",
+ "ID": "carné",
+ "email": "Correo",
+ "cognitoSub": "Cognito_sub",
+ "firstName": "Nombre de pila",
+ "lastName": "Apellido",
+ "actions": "Acciones",
+ "memberCreated": "Miembro creado",
+ "memberUpdated": "Miembro actualizado",
+ "updateRole": "Actualizar rol",
+ "orgMemberId": "ID de miembro de la organización",
+ "view": "Ver",
+ "update": "Actualizar",
+ "delete": "Borrar",
+ "confirmDeleteHead": "Eliminar usuario",
+ "confirmDeleteMsg": "¿Está seguro de que desea eliminar este usuario?",
+ "cancel": "Cancelar",
+ "save": "Guardar",
+ "ok": "De acuerdo",
+ "updatenotallowed": "Actualización no permitida para el propietario",
+ "sendInvite": "Enviar invitación",
+ "inviteByEmail": "Invitar por correo electrónico. Varios correos electrónicos separados por punto y coma (;)",
+ "inviteByEmailHint": "Se te cobrará una cantidad prorrateada por añadir un miembro.",
+ "admin": "administrador",
+ "member": "miembro",
+ "changePassword": "Cambiar contraseña",
+ "oldPassword": "Contraseña antigua",
+ "newPassword": "Contraseña nueva"
+ },
+ "ticket": {
+ "header": "Tickets de soporte",
+ "add": "Añadir billete",
+ "save": "Guardar",
+ "update": "Actualizar",
+ "delete": "Eliminar billete",
+ "search": "Ticket de búsqueda",
+ "subject": "Asunto",
+ "description": "Descripción",
+ "id": "ID del billete",
+ "createdAt": "Creado en",
+ "updatedAt": "Actualizado en",
+ "status": "Estado",
+ "comments": "Comentarios",
+ "addComments": "Agregar comentarios",
+ "attachments": "Adjuntos",
+ "noDataErrorMsg": "No hay datos disponibles",
+ "createTicket": "Crear ticket",
+ "updateTicket": "Actualizar ticket",
+ "inputTextHolder": "Escriba aquí",
+ "selectHolder": "Seleccione",
+ "cancel": "Cancelar"
+ },
+ "organization": {
+ "header": "Organizaciones",
+ "orgName": "Nombre de la organización",
+ "createOrganization": "Crear organización",
+ "updateOrganization": "Actualizar organización",
+ "nameHolder": "Escriba el nombre aquí",
+ "add": "Agregar organización",
+ "save": "Guardar",
+ "cancel": "Cancelar",
+ "delete": "Eliminar organización",
+ "search": "Organización de búsqueda",
+ "subject": "Asunto",
+ "description": "Descripción",
+ "id": "ID de la organización",
+ "createdAt": "Creado en",
+ "updatedAt": "Actualizado en",
+ "status": "Estado",
+ "invite": "Invitar a un compañero",
+ "name": "Nombre",
+ "type": "Teclea",
+ "owner": "Propietario",
+ "created": "Creado",
+ "actions": "Acciones",
+ "emailLabel": "Introducir ID de correo electrónico",
+ "emailHolder": "Escriba la ID de correo electrónico aquí",
+ "note": "Nota: Presiona enter para añadir varios compañeros de equipo.",
+ "identifier": "Identificador",
+ "copyapikey": "Copiar clave de API",
+ "getapikey": "Obtenga la clave de API",
+ "role": "Función",
+ "nameRequired": "El nombre es obligatorio"
+ },
+ "template": {
+ "header": "Plantillas",
+ "add": "Agregar plantilla",
+ "search": "Plantilla de búsqueda"
+ },
+ "logStream": {
+ "header": "Corrientes",
+ "search": "Secuencia de búsqueda",
+ "name": "Nombre",
+ "docNum": "Doc Num",
+ "storageSize": "Datos ingeridos",
+ "compressedSize": "Tamaño comprimido",
+ "time": "Hora",
+ "storageType": "Tipo de almacenamiento",
+ "shardNum": "Número de fragmento",
+ "schemaHeader": "Detalle de transmisión",
+ "streamSettings": "Configuración de transmisión",
+ "streamPartitionKey": "Clave de partición",
+ "streamftsKey": "Clave de búsqueda de texto completo",
+ "delete": "Borrar",
+ "deleteIndex": "Eliminar transmisión",
+ "confirmDeleteHead": "Eliminar transmisión",
+ "confirmDeleteMsg": "¿Estás seguro de que quieres eliminar esta transmisión?",
+ "cancel": "Cancelar",
+ "ok": "De acuerdo",
+ "docsCount": "Recuento de documentos",
+ "mapping": "Cartografía",
+ "propertyName": "Nombre de propiedad",
+ "propertyType": "Tipo de propiedad",
+ "type": "Teclea",
+ "refreshStats": "Actualizar estadísticas",
+ "updateSettings": "Actualizar la configuración"
+ },
+ "function": {
+ "header": "Funciones",
+ "add": "Crear nueva función",
+ "search": "Función de búsqueda",
+ "name": "Nombre",
+ "function": "Detalle de la función",
+ "save": "Guardar",
+ "jsfunction": "Función",
+ "stream_name": "Nombre de transmisión",
+ "order": "Orden",
+ "ingest": "¿Funciona el tiempo de ingesta?",
+ "actions": "Acciones",
+ "cancel": "Cancelar",
+ "addTitle": "Añadir función",
+ "updateTitle": "Función de actualización",
+ "delete": "Borrar",
+ "ok": "De acuerdo",
+ "type": "Tipo de función",
+ "showQuery": "¿Funciona el tiempo de ingesta?"
+ },
+ "confirmDialog": {
+ "cancel": "Cancelar",
+ "ok": "De acuerdo"
+ },
+ "ingestion": {
+ "header": "Ingestión",
+ "passwordLabel": "Token de restablecimiento"
+ },
+ "dashboard": {
+ "header": "Cuadros de mando",
+ "add": "Agregar panel",
+ "save": "Guardar",
+ "cancel": "Cancelar",
+ "delete": "Eliminar panel",
+ "search": "Panel de búsqueda",
+ "name": "Nombre del panel",
+ "typeDesc": "Descripción del tipo del panel",
+ "createdashboard": "Crear un panel nuevo",
+ "nameHolder": "Introduzca el nombre del nuevo panel",
+ "typeHolder": "Introduzca la descripción del tipo del nuevo panel"
+ },
+ "panel": {
+ "header": "Panel",
+ "add": "Agregar panel",
+ "save": "Guardar",
+ "cancel": "Cancelar",
+ "delete": "Eliminar panel",
+ "search": "Panel de búsqueda",
+ "name": "Nombre del panel",
+ "typeDesc": "Descripción",
+ "createdashboard": "Crear un panel nuevo",
+ "nameHolder": "Introduzca el nombre del nuevo panel",
+ "typeHolder": "Introduzca la descripción del tipo del nuevo panel",
+ "editPanel": "Panel de edición"
+ },
+ "alerts": {
+ "header": "Alertas",
+ "add": "Añadir alerta",
+ "search": "Alerta de búsqueda",
+ "name": "Nombre",
+ "function": "Detalles de la alerta",
+ "save": "Guardar",
+ "sql": "Consulta",
+ "realTime": "En tiempo real",
+ "scheduled": "Programado",
+ "duration": "Duración durante la que se evalúa la alerta",
+ "condition": "Condición",
+ "interval": "Frecuencia con la que se evalúa la alerta",
+ "delayNotificationUntil": "Retrasar la notificación hasta, después de una notificación",
+ "destination": "Destino",
+ "stream_name": "Nombre de transmisión",
+ "actions": "Acciones",
+ "cancel": "Cancelar",
+ "addTitle": "Añadir alerta",
+ "updateTitle": "Alerta de actualización",
+ "delete": "Borrar"
+ },
+ "home": {
+ "streams": "Corrientes",
+ "totalDataIngested": "Datos totales ingeridos",
+ "view": "Ver más>>",
+ "queryFunctions": "Funciones de consulta",
+ "ingestFunctions": "Funciones de ingestión",
+ "scheduledAlert": "Alertas programadas",
+ "rtAlert": "Alertas en tiempo real",
+ "noData": "No se han ingerido datos",
+ "findIngestion": "Descubra cómo ingerir registros >>",
+ "ingestionMsg": "Parece que no has ingerido ningún dato para la organización seleccionada. Hay varias formas de ingerir datos, como Fluentbit.",
+ "inestedInSearch": "Prueba Logs Search",
+ "searchInDemoOrg": "Puede explorar las capacidades de búsqueda cambiando a la organización de demostración. Para cambiar a la organización de demostración, seleccione «Organización de demostración» en el menú desplegable de organizaciones de la parte superior. Seguimos ingresando datos ficticios para la organización de demostración."
+ },
+ "billing": {
+ "header": "Uso y facturación",
+ "plans": "Planes",
+ "subtitle": "Precios simples y transparentes",
+ "individuals": "Para particulares",
+ "startups": "Para empresas emergentes",
+ "basic": "Básico",
+ "pro": "Pro",
+ "whatIsIncluded": "Qué está incluido",
+ "subscribed": "Suscrito",
+ "getStarted": "Empezar",
+ "paymentMethod": "Método de pago",
+ "invoiceHistory": "Historial de facturas",
+ "generatedAt": "Generado en",
+ "details": "Detalles",
+ "amount": "Cantidad",
+ "amountPaid": "Monto pagado",
+ "amountDue": "Monto adeudado",
+ "dueDate": "Fecha de vencimiento",
+ "status": "Estado",
+ "action": "Acción",
+ "usage": "Uso",
+ "manageCards": "Administrar tarjetas",
+ "subscriptionCheckout": "Pago de la suscripción"
+ }
+}
\ No newline at end of file
diff --git a/web/src/locales/languages/fr.json b/web/src/locales/languages/fr.json
new file mode 100644
index 0000000000..b8c6b91dc0
--- /dev/null
+++ b/web/src/locales/languages/fr.json
@@ -0,0 +1,309 @@
+{
+ "search": {
+ "selectIndex": "Sélectionnez Stream First",
+ "typeSearch": "Entrez votre requête de recherche ici",
+ "searchField": "Rechercher un champ",
+ "maxRecords": "Nombre maximum d'enregistrements à renvoyer",
+ "searchResult": "Résultats de recherche",
+ "resultsFound": "Résultats trouvés",
+ "timestamp": "horodatage",
+ "source": "_source",
+ "noResult": "Aucun résultat",
+ "syntaxGuide": "Guide de syntaxe",
+ "recordsPerPage": "Enregistrements par page",
+ "showing": "Montrant",
+ "of": "de",
+ "rowDetail": "Détails de la source",
+ "sourceName": "Nom",
+ "sourceValue": "Valeur",
+ "searchStream": "Flux de recherche",
+ "showQueryLabel": "Requête",
+ "showFieldLabel": "Champs",
+ "showHistogramLabel": "Histogramme",
+ "sqlModeLabel": "Mode SQL"
+ },
+ "menu": {
+ "home": "Accueil",
+ "about": "À propos",
+ "user": "Utilisateurs",
+ "index": "Ruisseaux",
+ "search": "Journaux",
+ "template": "Modèle",
+ "signOut": "Déconnectez-vous",
+ "account": "Compte",
+ "feedback": "Feedback",
+ "zincSearch": "Recherche de zinc",
+ "documentation": "Documents",
+ "tickets": "Billet",
+ "organizations": "Organisations",
+ "function": "Fonctions",
+ "ingestion": "Ingestion",
+ "metrics": "Métriques",
+ "slack": "Aide",
+ "dashboard": "Tableaux de bord",
+ "alerts": "Alertes",
+ "openapi": "API ouverte",
+ "docs": "Documents"
+ },
+ "about": {
+ "name": "Zinc",
+ "introduction": "Observabilité simplifiée."
+ },
+ "login": {
+ "userid": "ID utilisateur",
+ "userEmail": "Adresse e-mail de l'utilisateur",
+ "signIn": "Se connecter",
+ "signUp": "S'inscrire",
+ "password": "Mot de passe",
+ "cnfpassword": "Confirmer mot de passe",
+ "singnInWithGoogle": "Continuer avec Google"
+ },
+ "user": {
+ "header": "Membre de l'organisation",
+ "id": "ID utilisateur",
+ "name": "Nom d'utilisateur",
+ "role": "Rôle",
+ "CREATED": "CRÉÉ",
+ "UPDATED": "MIS À JOUR",
+ "password": "Mot de passe",
+ "repassword": "Reconfirmer le mot de passe",
+ "addOrUpdate": "Ajouter/mettre à jour un utilisateur",
+ "editUser": "Mettre à jour l'utilisateur",
+ "add": "Ajouter un utilisateur",
+ "search": "Rechercher un utilisateur",
+ "createdAt": "Mis à jour à",
+ "updatedAt": "Créé à",
+ "status": "Statut",
+ "ID": "identifiant",
+ "email": "Courrier électronique",
+ "cognitoSub": "Cognito_Sub",
+ "firstName": "Prénom",
+ "lastName": "Nom",
+ "actions": "Actions",
+ "memberCreated": "Membre créé",
+ "memberUpdated": "Membre mis à jour",
+ "updateRole": "Mettre à jour le rôle",
+ "orgMemberId": "Numéro de membre de l'organisation",
+ "view": "Voir",
+ "update": "Mise à jour",
+ "delete": "Supprimer",
+ "confirmDeleteHead": "Supprimer un utilisateur",
+ "confirmDeleteMsg": "Êtes-vous sûr de vouloir supprimer cet utilisateur ?",
+ "cancel": "Annuler",
+ "save": "Enregistrer",
+ "ok": "D'accord",
+ "updatenotallowed": "Mise à jour non autorisée pour le propriétaire",
+ "sendInvite": "Envoyer une invitation",
+ "inviteByEmail": "Invitez par e-mail. Plusieurs e-mails séparés par des points-virgules (;)",
+ "inviteByEmailHint": "Un montant calculé au prorata vous sera facturé pour l'ajout d'un membre.",
+ "admin": "administrateur",
+ "member": "membre",
+ "changePassword": "Changer le mot de passe",
+ "oldPassword": "Ancien mot de passe",
+ "newPassword": "Nouveau mot de passe"
+ },
+ "ticket": {
+ "header": "Tickets d'assistance",
+ "add": "Ajouter un ticket",
+ "save": "Enregistrer",
+ "update": "Mise à jour",
+ "delete": "Supprimer le ticket",
+ "search": "Ticket de recherche",
+ "subject": "Sujet",
+ "description": "Descriptif",
+ "id": "Identifiant du billet",
+ "createdAt": "Créé à",
+ "updatedAt": "Mis à jour à",
+ "status": "Statut",
+ "comments": "Commentaires",
+ "addComments": "Ajouter des commentaires",
+ "attachments": "Pièces jointes",
+ "noDataErrorMsg": "Aucune donnée disponible",
+ "createTicket": "Créer un ticket",
+ "updateTicket": "Mettre à jour le ticket",
+ "inputTextHolder": "Tapez ici",
+ "selectHolder": "Sélectionnez",
+ "cancel": "Annuler"
+ },
+ "organization": {
+ "header": "Organisations",
+ "orgName": "Nom de l'organisation",
+ "createOrganization": "Créer une organisation",
+ "updateOrganization": "Mettre à jour l'organisation",
+ "nameHolder": "Tapez le nom ici",
+ "add": "Ajouter une organisation",
+ "save": "Enregistrer",
+ "cancel": "Annuler",
+ "delete": "Supprimer l'organisation",
+ "search": "Organisation de recherche",
+ "subject": "Sujet",
+ "description": "Descriptif",
+ "id": "Identifiant de l'organisation",
+ "createdAt": "Créé à",
+ "updatedAt": "Mis à jour à",
+ "status": "Statut",
+ "invite": "Inviter un coéquipier",
+ "name": "Nom",
+ "type": "Type",
+ "owner": "Propriétaire",
+ "created": "Créé",
+ "actions": "Actions",
+ "emailLabel": "Entrez votre adresse e-mail",
+ "emailHolder": "Entrez votre adresse e-mail ici",
+ "note": "Remarque : Appuyez sur Entrée pour ajouter plusieurs coéquipiers.",
+ "identifier": "Identifiant",
+ "copyapikey": "Copier la clé d'API",
+ "getapikey": "Obtenir la clé d'API",
+ "role": "Rôle",
+ "nameRequired": "Le nom est obligatoire"
+ },
+ "template": {
+ "header": "Modèles",
+ "add": "Ajouter un modèle",
+ "search": "Modèle de recherche"
+ },
+ "logStream": {
+ "header": "Ruisseaux",
+ "search": "Flux de recherche",
+ "name": "Nom",
+ "docNum": "Numéro du document",
+ "storageSize": "Données ingérées",
+ "compressedSize": "Taille compressée",
+ "time": "Heure",
+ "storageType": "Type de stockage",
+ "shardNum": "Numéro de partition",
+ "schemaHeader": "Détail du stream",
+ "streamSettings": "Paramètres de diffusion",
+ "streamPartitionKey": "Clé de partition",
+ "streamftsKey": "Clé de recherche en texte intégral",
+ "delete": "Supprimer",
+ "deleteIndex": "Supprimer le flux",
+ "confirmDeleteHead": "Supprimer le flux",
+ "confirmDeleteMsg": "Êtes-vous sûr de vouloir supprimer ce Stream ?",
+ "cancel": "Annuler",
+ "ok": "D'accord",
+ "docsCount": "Nombre de documents",
+ "mapping": "Cartographie",
+ "propertyName": "Nom de la propriété",
+ "propertyType": "Type de propriété",
+ "type": "Type",
+ "refreshStats": "Actualiser les statistiques",
+ "updateSettings": "Paramètres de mise à jour"
+ },
+ "function": {
+ "header": "Fonctions",
+ "add": "Créer une nouvelle fonction",
+ "search": "Fonction de recherche",
+ "name": "Nom",
+ "function": "Détail de la fonction",
+ "save": "Enregistrer",
+ "jsfunction": "Fonction",
+ "stream_name": "Nom du stream",
+ "order": "Ordre",
+ "ingest": "Le temps d'ingestion fonctionne-t-il ?",
+ "actions": "Actions",
+ "cancel": "Annuler",
+ "addTitle": "Ajouter une fonction",
+ "updateTitle": "Fonction de mise à jour",
+ "delete": "Supprimer",
+ "ok": "D'accord",
+ "type": "Type de fonction",
+ "showQuery": "Le temps d'ingestion fonctionne-t-il ?"
+ },
+ "confirmDialog": {
+ "cancel": "Annuler",
+ "ok": "D'accord"
+ },
+ "ingestion": {
+ "header": "Ingestion",
+ "passwordLabel": "Réinitialiser le jeton"
+ },
+ "dashboard": {
+ "header": "Tableaux de bord",
+ "add": "Ajouter un tableau de bord",
+ "save": "Enregistrer",
+ "cancel": "Annuler",
+ "delete": "Supprimer le tableau de bord",
+ "search": "Tableau de bord de recherche",
+ "name": "Nom du tableau de bord",
+ "typeDesc": "Description du type de tableau de bord",
+ "createdashboard": "Création d'un nouveau tableau de bord",
+ "nameHolder": "Entrez le nom du nouveau tableau de bord",
+ "typeHolder": "Entrez la description du type du nouveau tableau de bord"
+ },
+ "panel": {
+ "header": "Panneau",
+ "add": "Ajouter un panneau",
+ "save": "Enregistrer",
+ "cancel": "Annuler",
+ "delete": "Supprimer le panneau",
+ "search": "Panneau de recherche",
+ "name": "Nom du panel",
+ "typeDesc": "Descriptif",
+ "createdashboard": "Création d'un nouveau panneau",
+ "nameHolder": "Entrez le nom du nouveau panneau",
+ "typeHolder": "Entrez la description du type du nouveau panneau",
+ "editPanel": "Panneau d'édition"
+ },
+ "alerts": {
+ "header": "Alertes",
+ "add": "Ajouter une alerte",
+ "search": "Alerte de recherche",
+ "name": "Nom",
+ "function": "Détails de l'alerte",
+ "save": "Enregistrer",
+ "sql": "Requête",
+ "realTime": "En temps réel",
+ "scheduled": "Programmé",
+ "duration": "Durée pour laquelle l'alerte est évaluée",
+ "condition": "État",
+ "interval": "Fréquence à laquelle l'alerte est évaluée",
+ "delayNotificationUntil": "Retarder la notification jusqu'à ce que, après une notification",
+ "destination": "Destination",
+ "stream_name": "Nom du stream",
+ "actions": "Actions",
+ "cancel": "Annuler",
+ "addTitle": "Ajouter une alerte",
+ "updateTitle": "Mettre à jour l'alerte",
+ "delete": "Supprimer"
+ },
+ "home": {
+ "streams": "Ruisseaux",
+ "totalDataIngested": "Total des données ingérées",
+ "view": "Afficher plus>>",
+ "queryFunctions": "Fonctions de requête",
+ "ingestFunctions": "Fonctions d'ingestion",
+ "scheduledAlert": "Alertes programmées",
+ "rtAlert": "Alertes en temps réel",
+ "noData": "Aucune donnée ingérée",
+ "findIngestion": "Découvrez comment ingérer des logs >>",
+ "ingestionMsg": "Il semblerait que vous n'ayez ingéré aucune donnée dans l'organisation sélectionnée. Les données peuvent être ingérées de différentes manières, comme Fluentbit.",
+ "inestedInSearch": "Essayez Logs Search",
+ "searchInDemoOrg": "Vous pouvez explorer les fonctionnalités de recherche en passant à l'organisation de démonstration. Pour passer à l'organisation de démonstration, sélectionnez « Organisation de démonstration » en utilisant la liste déroulante d'organisation en haut. Nous continuons à ingérer des données fictives dans Demo Organization."
+ },
+ "billing": {
+ "header": "Utilisation et facturation",
+ "plans": "Des plans",
+ "subtitle": "Tarification simple et transparente",
+ "individuals": "Pour les particuliers",
+ "startups": "Pour les startups",
+ "basic": "Basique",
+ "pro": "Pro",
+ "whatIsIncluded": "Ce qui est inclus",
+ "subscribed": "Abonné",
+ "getStarted": "Lancez-vous",
+ "paymentMethod": "Mode de paiement",
+ "invoiceHistory": "Historique des factures",
+ "generatedAt": "Généré à",
+ "details": "Détails",
+ "amount": "Montant",
+ "amountPaid": "Montant payé",
+ "amountDue": "Montant dû",
+ "dueDate": "Date d'échéance",
+ "status": "Statut",
+ "action": "Action",
+ "usage": "Usage",
+ "manageCards": "Gérer les cartes",
+ "subscriptionCheckout": "Paiement de l'abonnement"
+ }
+}
\ No newline at end of file
diff --git a/web/src/locales/languages/it.json b/web/src/locales/languages/it.json
new file mode 100644
index 0000000000..eb9a114024
--- /dev/null
+++ b/web/src/locales/languages/it.json
@@ -0,0 +1,309 @@
+{
+ "search": {
+ "selectIndex": "Seleziona prima lo streaming",
+ "typeSearch": "Digita qui la tua richiesta di ricerca",
+ "searchField": "Cerca un campo",
+ "maxRecords": "Numero massimo di record da restituire",
+ "searchResult": "Risultati della ricerca",
+ "resultsFound": "Risultati trovati",
+ "timestamp": "timestamp",
+ "source": "_fonte",
+ "noResult": "Nessun risultato",
+ "syntaxGuide": "Guida alla sintassi",
+ "recordsPerPage": "Record per pagina",
+ "showing": "Mostrando",
+ "of": "di",
+ "rowDetail": "Dettagli della fonte",
+ "sourceName": "Nome",
+ "sourceValue": "Valore",
+ "searchStream": "Stream di ricerca",
+ "showQueryLabel": "Interrogazione",
+ "showFieldLabel": "Campi",
+ "showHistogramLabel": "Istogramma",
+ "sqlModeLabel": "Modalità SQL"
+ },
+ "menu": {
+ "home": "Casa",
+ "about": "Informazioni su",
+ "user": "Utenti",
+ "index": "Flussi",
+ "search": "Registri",
+ "template": "Modello",
+ "signOut": "Esci",
+ "account": "Conto",
+ "feedback": "Feedback",
+ "zincSearch": "Ricerca in zinco",
+ "documentation": "Documenti",
+ "tickets": "Biglietto",
+ "organizations": "Organizzazioni",
+ "function": "Funzioni",
+ "ingestion": "Ingestione",
+ "metrics": "Metriche",
+ "slack": "Aiuto",
+ "dashboard": "Pannelli di controllo",
+ "alerts": "Avvisi",
+ "openapi": "API aperta",
+ "docs": "Documenti"
+ },
+ "about": {
+ "name": "Zinco",
+ "introduction": "Osservabilità semplificata."
+ },
+ "login": {
+ "userid": "ID utente",
+ "userEmail": "Email dell'utente",
+ "signIn": "Effettua l'accesso",
+ "signUp": "Registrati",
+ "password": "Password",
+ "cnfpassword": "Conferma la password",
+ "singnInWithGoogle": "Continua con Google"
+ },
+ "user": {
+ "header": "Membro dell'organizzazione",
+ "id": "ID utente",
+ "name": "Nome utente",
+ "role": "Ruolo",
+ "CREATED": "CREATO",
+ "UPDATED": "AGGIORNATO",
+ "password": "Password",
+ "repassword": "Riconferma la password",
+ "addOrUpdate": "Aggiungi/aggiorna utente",
+ "editUser": "Aggiorna utente",
+ "add": "Aggiungi utente",
+ "search": "Cerca utente",
+ "createdAt": "Aggiornato al",
+ "updatedAt": "Creato a",
+ "status": "Status",
+ "ID": "id",
+ "email": "Email",
+ "cognitoSub": "Cognito_sub",
+ "firstName": "Nome",
+ "lastName": "Cognome",
+ "actions": "Azioni",
+ "memberCreated": "Membro creato",
+ "memberUpdated": "Membro aggiornato",
+ "updateRole": "Aggiorna ruolo",
+ "orgMemberId": "ID del membro dell'organizzazione",
+ "view": "Visualizza",
+ "update": "Aggiorna",
+ "delete": "Elimina",
+ "confirmDeleteHead": "Elimina utente",
+ "confirmDeleteMsg": "Sei sicuro di voler eliminare questo utente?",
+ "cancel": "Annullare",
+ "save": "Salva",
+ "ok": "Ok",
+ "updatenotallowed": "Aggiornamento non consentito al proprietario",
+ "sendInvite": "Invia invito",
+ "inviteByEmail": "Invito tramite e-mail. Più messaggi di posta elettronica separati da punto e virgola (;)",
+ "inviteByEmailHint": "Ti verrà addebitato un importo proporzionale per l'aggiunta di un membro.",
+ "admin": "amministratore",
+ "member": "membro",
+ "changePassword": "Cambia password",
+ "oldPassword": "Vecchia password",
+ "newPassword": "Nuova password"
+ },
+ "ticket": {
+ "header": "Ticket di assistenza",
+ "add": "Aggiungi biglietto",
+ "save": "Salva",
+ "update": "Aggiorna",
+ "delete": "Elimina biglietto",
+ "search": "Cerca biglietto",
+ "subject": "Soggetto",
+ "description": "Descrizione",
+ "id": "ID del biglietto",
+ "createdAt": "Creato a",
+ "updatedAt": "Aggiornato al",
+ "status": "Status",
+ "comments": "Commenti",
+ "addComments": "Aggiungi commenti",
+ "attachments": "Allegati",
+ "noDataErrorMsg": "Nessun dato disponibile",
+ "createTicket": "Crea biglietto",
+ "updateTicket": "Aggiorna biglietto",
+ "inputTextHolder": "Digita qui",
+ "selectHolder": "Seleziona",
+ "cancel": "Annullare"
+ },
+ "organization": {
+ "header": "Organizzazioni",
+ "orgName": "Nome dell'organizzazione",
+ "createOrganization": "Crea organizzazione",
+ "updateOrganization": "Aggiorna organizzazione",
+ "nameHolder": "Digita il nome qui",
+ "add": "Aggiungi organizzazione",
+ "save": "Salva",
+ "cancel": "Annullare",
+ "delete": "Elimina organizzazione",
+ "search": "Organizzazione di ricerca",
+ "subject": "Soggetto",
+ "description": "Descrizione",
+ "id": "ID dell'organizzazione",
+ "createdAt": "Creato a",
+ "updatedAt": "Aggiornato al",
+ "status": "Status",
+ "invite": "Invita un compagno di squadra",
+ "name": "Nome",
+ "type": "Tipo",
+ "owner": "Proprietario",
+ "created": "Creata",
+ "actions": "Azioni",
+ "emailLabel": "Inserisci l'ID e-mail",
+ "emailHolder": "Digita l'ID e-mail qui",
+ "note": "Nota: premi invio per aggiungere più compagni di squadra.",
+ "identifier": "Identificatore",
+ "copyapikey": "Copia chiave API",
+ "getapikey": "Ottieni la chiave API",
+ "role": "Ruolo",
+ "nameRequired": "Il nome è obbligatorio"
+ },
+ "template": {
+ "header": "Modelli",
+ "add": "Aggiungi modello",
+ "search": "Modello di ricerca"
+ },
+ "logStream": {
+ "header": "Flussi",
+ "search": "Stream di ricerca",
+ "name": "Nome",
+ "docNum": "Doctor Num",
+ "storageSize": "Dati ingeriti",
+ "compressedSize": "Dimensione compressa",
+ "time": "Ora",
+ "storageType": "Tipo di archiviazione",
+ "shardNum": "Numero del frammento",
+ "schemaHeader": "Dettagli dello stream",
+ "streamSettings": "Impostazioni streaming",
+ "streamPartitionKey": "Chiave di partizione",
+ "streamftsKey": "Chiave di ricerca nel testo completo",
+ "delete": "Elimina",
+ "deleteIndex": "Elimina stream",
+ "confirmDeleteHead": "Elimina stream",
+ "confirmDeleteMsg": "Sei sicuro di voler eliminare questo Stream?",
+ "cancel": "Annullare",
+ "ok": "Ok",
+ "docsCount": "Conteggio documenti",
+ "mapping": "Mappatura",
+ "propertyName": "Nome della proprietà",
+ "propertyType": "Tipo di proprietà",
+ "type": "Tipo",
+ "refreshStats": "Aggiorna statistiche",
+ "updateSettings": "Aggiorna impostazioni"
+ },
+ "function": {
+ "header": "Funzioni",
+ "add": "Crea una nuova funzione",
+ "search": "Funzione di ricerca",
+ "name": "Nome",
+ "function": "Dettagli della funzione",
+ "save": "Salva",
+ "jsfunction": "Funzione",
+ "stream_name": "Nome dello stream",
+ "order": "Ordinazione",
+ "ingest": "È una funzione Ingest Time?",
+ "actions": "Azioni",
+ "cancel": "Annullare",
+ "addTitle": "Aggiungi funzione",
+ "updateTitle": "Funzione di aggiornamento",
+ "delete": "Elimina",
+ "ok": "Ok",
+ "type": "Tipo di funzione",
+ "showQuery": "È una funzione Ingest Time?"
+ },
+ "confirmDialog": {
+ "cancel": "Annullare",
+ "ok": "Ok"
+ },
+ "ingestion": {
+ "header": "Ingestione",
+ "passwordLabel": "Token di ripristino"
+ },
+ "dashboard": {
+ "header": "Pannelli di controllo",
+ "add": "Aggiungi dashboard",
+ "save": "Salva",
+ "cancel": "Annullare",
+ "delete": "Elimina dashboard",
+ "search": "Dashboard di ricerca",
+ "name": "Nome del pannello di controllo",
+ "typeDesc": "Descrizione del tipo di dashboard",
+ "createdashboard": "Crea un nuovo pannello di controllo",
+ "nameHolder": "Inserisci il nome della nuova dashboard",
+ "typeHolder": "Inserisci la descrizione del tipo di nuova dashboard"
+ },
+ "panel": {
+ "header": "Pannello",
+ "add": "Aggiungi pannello",
+ "save": "Salva",
+ "cancel": "Annullare",
+ "delete": "Elimina pannello",
+ "search": "Pannello di ricerca",
+ "name": "Nome del pannello",
+ "typeDesc": "Descrizione",
+ "createdashboard": "Crea un nuovo pannello",
+ "nameHolder": "Inserisci il nome del nuovo pannello",
+ "typeHolder": "Inserisci la descrizione del tipo del nuovo pannello",
+ "editPanel": "Pannello di modifica"
+ },
+ "alerts": {
+ "header": "Avvisi",
+ "add": "Aggiungi avviso",
+ "search": "Avviso di ricerca",
+ "name": "Nome",
+ "function": "Dettagli dell'avviso",
+ "save": "Salva",
+ "sql": "Interrogazione",
+ "realTime": "In tempo reale",
+ "scheduled": "Pianificato",
+ "duration": "Durata per la quale viene valutato l'avviso",
+ "condition": "Condizione",
+ "interval": "Frequenza con cui viene valutato l'avviso",
+ "delayNotificationUntil": "Rimandare la notifica fino a, dopo una notifica",
+ "destination": "Destinazione",
+ "stream_name": "Nome dello stream",
+ "actions": "Azioni",
+ "cancel": "Annullare",
+ "addTitle": "Aggiungi avviso",
+ "updateTitle": "Aggiorna avviso",
+ "delete": "Elimina"
+ },
+ "home": {
+ "streams": "Flussi",
+ "totalDataIngested": "Dati totali ingeriti",
+ "view": "Visualizza altro>>",
+ "queryFunctions": "Funzioni di interrogazione",
+ "ingestFunctions": "Funzioni di ingestione",
+ "scheduledAlert": "Avvisi pianificati",
+ "rtAlert": "Avvisi in tempo reale",
+ "noData": "Nessun dato importato",
+ "findIngestion": "Scopri come inserire i log >>",
+ "ingestionMsg": "Sembra che tu non abbia inserito alcun dato nell'organizzazione selezionata, ci sono vari modi in cui i dati possono essere ingeriti come fluentbit.",
+ "inestedInSearch": "Prova Logs Search",
+ "searchInDemoOrg": "Puoi esplorare le funzionalità di ricerca passando all'organizzazione demo, per passare all'organizzazione demo, seleziona «Organizzazione demo» utilizzando il menu a discesa dell'organizzazione in alto. Continuiamo a inserire dati fittizi in Demo Organization."
+ },
+ "billing": {
+ "header": "Utilizzo e fatturazione",
+ "plans": "Piani",
+ "subtitle": "Prezzi semplici e trasparenti",
+ "individuals": "Per privati",
+ "startups": "Per le startup",
+ "basic": "Di base",
+ "pro": "Pro",
+ "whatIsIncluded": "Cosa è incluso",
+ "subscribed": "Sottoscritto",
+ "getStarted": "Inizia",
+ "paymentMethod": "Metodo di pagamento",
+ "invoiceHistory": "Cronologia delle fatture",
+ "generatedAt": "Generato a",
+ "details": "Dettagli",
+ "amount": "Importo",
+ "amountPaid": "Importo pagato",
+ "amountDue": "Importo dovuto",
+ "dueDate": "Data di scadenza",
+ "status": "Status",
+ "action": "Azione",
+ "usage": "Utilizzo",
+ "manageCards": "Gestisci carte",
+ "subscriptionCheckout": "Pagamento dell'abbonamento"
+ }
+}
\ No newline at end of file
diff --git a/web/src/locales/languages/ja.json b/web/src/locales/languages/ja.json
new file mode 100644
index 0000000000..8bea0a9c09
--- /dev/null
+++ b/web/src/locales/languages/ja.json
@@ -0,0 +1,309 @@
+{
+ "search": {
+ "selectIndex": "最初にストリームを選択",
+ "typeSearch": "検索クエリをここに入力してください",
+ "searchField": "フィールドを検索する",
+ "maxRecords": "返される最大レコード数",
+ "searchResult": "[検索結果]",
+ "resultsFound": "結果が見つかりました",
+ "timestamp": "タイムスタンプ",
+ "source": "_ソース",
+ "noResult": "結果なし",
+ "syntaxGuide": "シンタックスガイド",
+ "recordsPerPage": "1 ページあたりのレコード数",
+ "showing": "表示中",
+ "of": "の",
+ "rowDetail": "ソース詳細",
+ "sourceName": "[名前]",
+ "sourceValue": "価値",
+ "searchStream": "検索ストリーム",
+ "showQueryLabel": "クエリ",
+ "showFieldLabel": "フィールド",
+ "showHistogramLabel": "ヒストグラム",
+ "sqlModeLabel": "SQL モード"
+ },
+ "menu": {
+ "home": "ホーム",
+ "about": "について",
+ "user": "ユーザ",
+ "index": "ストリーム",
+ "search": "ログ",
+ "template": "[テンプレート]",
+ "signOut": "サインアウト",
+ "account": "アカウント",
+ "feedback": "フィードバック",
+ "zincSearch": "亜鉛サーチ",
+ "documentation": "ドキュメント",
+ "tickets": "チケット",
+ "organizations": "組織",
+ "function": "ファンクション",
+ "ingestion": "摂取",
+ "metrics": "指標",
+ "slack": "ヘルプ",
+ "dashboard": "ダッシュボード",
+ "alerts": "アラート",
+ "openapi": "OpenAPI",
+ "docs": "ドキュメント"
+ },
+ "about": {
+ "name": "亜鉛",
+ "introduction": "オブザーバビリティがシンプルになりました。"
+ },
+ "login": {
+ "userid": "ユーザ ID",
+ "userEmail": "ユーザー電子メール",
+ "signIn": "サインイン",
+ "signUp": "サインアップ",
+ "password": "[パスワード]",
+ "cnfpassword": "パスワードを確認",
+ "singnInWithGoogle": "グーグルで続ける"
+ },
+ "user": {
+ "header": "組織メンバー",
+ "id": "ユーザ ID",
+ "name": "[ユーザー名]",
+ "role": "役割",
+ "CREATED": "作成されました",
+ "UPDATED": "更新されました",
+ "password": "[パスワード]",
+ "repassword": "パスワードを再確認",
+ "addOrUpdate": "ユーザーを追加/更新",
+ "editUser": "ユーザーを更新",
+ "add": "ユーザーを追加",
+ "search": "ユーザーを検索する",
+ "createdAt": "更新日時",
+ "updatedAt": "作成日",
+ "status": "ステータス",
+ "ID": "id",
+ "email": "Eメール",
+ "cognitoSub": "Cognito_sub",
+ "firstName": "ファーストネーム",
+ "lastName": "苗字",
+ "actions": "アクション",
+ "memberCreated": "メンバーが作成されました",
+ "memberUpdated": "メンバーが更新されました",
+ "updateRole": "ロールを更新",
+ "orgMemberId": "組織メンバー ID",
+ "view": "[表示]",
+ "update": "[更新]",
+ "delete": "[削除]",
+ "confirmDeleteHead": "ユーザー削除",
+ "confirmDeleteMsg": "このユーザーを削除してもよろしいですか?",
+ "cancel": "[キャンセル]",
+ "save": "[保存]",
+ "ok": "わかりました",
+ "updatenotallowed": "所有者は更新できません",
+ "sendInvite": "招待を送信",
+ "inviteByEmail": "電子メールで招待します。セミコロン (;) で区切られた複数の電子メール",
+ "inviteByEmailHint": "メンバーを追加すると、日割り計算された金額が請求されます。",
+ "admin": "管理者",
+ "member": "メンバー",
+ "changePassword": "パスワードを変更",
+ "oldPassword": "古いパスワード",
+ "newPassword": "新しいパスワード"
+ },
+ "ticket": {
+ "header": "サポートチケット",
+ "add": "チケットを追加",
+ "save": "[保存]",
+ "update": "[更新]",
+ "delete": "チケットを削除",
+ "search": "チケット検索",
+ "subject": "件名",
+ "description": "説明",
+ "id": "チケット ID",
+ "createdAt": "作成日",
+ "updatedAt": "更新日時",
+ "status": "ステータス",
+ "comments": "[コメント]",
+ "addComments": "コメントを追加",
+ "attachments": "添付ファイル",
+ "noDataErrorMsg": "データはありません",
+ "createTicket": "チケット作成",
+ "updateTicket": "チケットを更新",
+ "inputTextHolder": "ここに入力",
+ "selectHolder": "[選択]",
+ "cancel": "[キャンセル]"
+ },
+ "organization": {
+ "header": "組織",
+ "orgName": "組織名",
+ "createOrganization": "組織を作成",
+ "updateOrganization": "組織を更新",
+ "nameHolder": "ここに名前を入力",
+ "add": "組織を追加",
+ "save": "[保存]",
+ "cancel": "[キャンセル]",
+ "delete": "組織を削除",
+ "search": "組織を検索する",
+ "subject": "件名",
+ "description": "説明",
+ "id": "組織 ID",
+ "createdAt": "作成日",
+ "updatedAt": "更新日時",
+ "status": "ステータス",
+ "invite": "チームメイトを招待",
+ "name": "[名前]",
+ "type": "タイプ",
+ "owner": "オーナー",
+ "created": "作成済み",
+ "actions": "アクション",
+ "emailLabel": "電子メール ID を入力",
+ "emailHolder": "ここに電子メール ID を入力してください",
+ "note": "注:複数のチームメイトを追加するには、Enter キーを押します。",
+ "identifier": "識別子",
+ "copyapikey": "API キーをコピー",
+ "getapikey": "API キーを取得",
+ "role": "役割",
+ "nameRequired": "名前が必要です"
+ },
+ "template": {
+ "header": "テンプレート",
+ "add": "テンプレートを追加",
+ "search": "検索テンプレート"
+ },
+ "logStream": {
+ "header": "ストリーム",
+ "search": "検索ストリーム",
+ "name": "[名前]",
+ "docNum": "ドキュメントナム",
+ "storageSize": "取り込まれたデータ",
+ "compressedSize": "圧縮サイズ",
+ "time": "時間",
+ "storageType": "ストレージタイプ",
+ "shardNum": "シャード番号",
+ "schemaHeader": "ストリームの詳細",
+ "streamSettings": "ストリーム設定",
+ "streamPartitionKey": "パーティションキー",
+ "streamftsKey": "全文検索キー",
+ "delete": "[削除]",
+ "deleteIndex": "ストリームを削除",
+ "confirmDeleteHead": "ストリームを削除",
+ "confirmDeleteMsg": "このストリームを削除してもよろしいですか?",
+ "cancel": "[キャンセル]",
+ "ok": "わかりました",
+ "docsCount": "ドキュメント数",
+ "mapping": "マッピング",
+ "propertyName": "[プロパティ名]",
+ "propertyType": "プロパティタイプ",
+ "type": "タイプ",
+ "refreshStats": "統計情報を更新",
+ "updateSettings": "アップデート設定"
+ },
+ "function": {
+ "header": "ファンクション",
+ "add": "新しい関数を作成",
+ "search": "検索機能",
+ "name": "[名前]",
+ "function": "機能詳細",
+ "save": "[保存]",
+ "jsfunction": "ファンクション",
+ "stream_name": "ストリーム名",
+ "order": "注文",
+ "ingest": "インジェスト時間は関数ですか?",
+ "actions": "アクション",
+ "cancel": "[キャンセル]",
+ "addTitle": "機能追加",
+ "updateTitle": "更新機能",
+ "delete": "[削除]",
+ "ok": "わかりました",
+ "type": "関数タイプ",
+ "showQuery": "インジェスト時間は関数ですか?"
+ },
+ "confirmDialog": {
+ "cancel": "[キャンセル]",
+ "ok": "わかりました"
+ },
+ "ingestion": {
+ "header": "摂取",
+ "passwordLabel": "トークンをリセット"
+ },
+ "dashboard": {
+ "header": "ダッシュボード",
+ "add": "ダッシュボードを追加",
+ "save": "[保存]",
+ "cancel": "[キャンセル]",
+ "delete": "ダッシュボードを削除",
+ "search": "検索ダッシュボード",
+ "name": "ダッシュボードの名前",
+ "typeDesc": "ダッシュボードの説明を入力",
+ "createdashboard": "新しいダッシュボードを作成",
+ "nameHolder": "新しいダッシュボードの名前を入力",
+ "typeHolder": "新しいダッシュボードのタイプの説明を入力してください"
+ },
+ "panel": {
+ "header": "パネル",
+ "add": "パネルを追加",
+ "save": "[保存]",
+ "cancel": "[キャンセル]",
+ "delete": "パネルを削除",
+ "search": "検索パネル",
+ "name": "パネル名",
+ "typeDesc": "説明",
+ "createdashboard": "新しいパネルを作成",
+ "nameHolder": "新しいパネルの名前を入力",
+ "typeHolder": "新しいパネルのタイプの説明を入力してください",
+ "editPanel": "編集パネル"
+ },
+ "alerts": {
+ "header": "アラート",
+ "add": "アラートを追加",
+ "search": "検索アラート",
+ "name": "[名前]",
+ "function": "アラートの詳細",
+ "save": "[保存]",
+ "sql": "クエリ",
+ "realTime": "リアルタイム",
+ "scheduled": "スケジュール済み",
+ "duration": "アラートが評価される期間",
+ "condition": "コンディション",
+ "interval": "アラートが評価される頻度",
+ "delayNotificationUntil": "通知が 1 回通知されるまで、通知を遅らせる",
+ "destination": "目的地",
+ "stream_name": "ストリーム名",
+ "actions": "アクション",
+ "cancel": "[キャンセル]",
+ "addTitle": "アラートを追加",
+ "updateTitle": "アップデートアラート",
+ "delete": "[削除]"
+ },
+ "home": {
+ "streams": "ストリーム",
+ "totalDataIngested": "取り込まれたデータの総数",
+ "view": "もっと見る>>",
+ "queryFunctions": "クエリー機能",
+ "ingestFunctions": "インジェスト機能",
+ "scheduledAlert": "スケジュールされたアラート",
+ "rtAlert": "リアルタイムアラート",
+ "noData": "データが取り込まれていません",
+ "findIngestion": "ログの取り込み方法を見る >>",
+ "ingestionMsg": "選択した組織にデータを取り込んでいないようですが、Fluentbitのようにデータを取り込む方法はさまざまです。",
+ "inestedInSearch": "ログ検索を試す",
+ "searchInDemoOrg": "デモ組織に切り替えると検索機能を試すことができます。デモ組織に切り替えるには、上部の組織ドロップダウンから [デモ組織] を選択します。ダミーデータをデモ組織に取り込み続けます。"
+ },
+ "billing": {
+ "header": "使用量と請求",
+ "plans": "計画",
+ "subtitle": "シンプルで透明な価格設定",
+ "individuals": "個人向け",
+ "startups": "スタートアップ向け",
+ "basic": "ベーシック",
+ "pro": "プロ",
+ "whatIsIncluded": "含まれているもの",
+ "subscribed": "購読済み",
+ "getStarted": "始めよう",
+ "paymentMethod": "支払い方法",
+ "invoiceHistory": "請求書履歴",
+ "generatedAt": "生成日時",
+ "details": "[詳細]",
+ "amount": "金額",
+ "amountPaid": "支払金額",
+ "amountDue": "未払い金額",
+ "dueDate": "期日",
+ "status": "ステータス",
+ "action": "アクション",
+ "usage": "使い方",
+ "manageCards": "カードを管理",
+ "subscriptionCheckout": "サブスクリプションチェックアウト"
+ }
+}
\ No newline at end of file
diff --git a/web/src/locales/languages/ko.json b/web/src/locales/languages/ko.json
new file mode 100644
index 0000000000..737f7a8366
--- /dev/null
+++ b/web/src/locales/languages/ko.json
@@ -0,0 +1,309 @@
+{
+ "search": {
+ "selectIndex": "먼저 스트리밍을 선택하세요",
+ "typeSearch": "여기에 검색어를 입력하세요",
+ "searchField": "필드 검색",
+ "maxRecords": "반환할 최대 레코드 수",
+ "searchResult": "검색 결과",
+ "resultsFound": "검색된 결과",
+ "timestamp": "타임스탬프",
+ "source": "_소스",
+ "noResult": "결과 없음",
+ "syntaxGuide": "구문 가이드",
+ "recordsPerPage": "페이지당 레코드 수",
+ "showing": "전시",
+ "of": "의",
+ "rowDetail": "소스 세부 정보",
+ "sourceName": "이름",
+ "sourceValue": "가치",
+ "searchStream": "검색 스트림",
+ "showQueryLabel": "질의",
+ "showFieldLabel": "필드",
+ "showHistogramLabel": "히스토그램",
+ "sqlModeLabel": "SQL 모드"
+ },
+ "menu": {
+ "home": "홈",
+ "about": "에 대해",
+ "user": "유저",
+ "index": "스트림",
+ "search": "로그",
+ "template": "템플리트",
+ "signOut": "로그아웃",
+ "account": "어카운트",
+ "feedback": "피드백",
+ "zincSearch": "아연 검색",
+ "documentation": "문서",
+ "tickets": "입장권",
+ "organizations": "조직",
+ "function": "함수",
+ "ingestion": "섭취량",
+ "metrics": "메트릭스",
+ "slack": "도움말",
+ "dashboard": "대시보드",
+ "alerts": "알림",
+ "openapi": "오픈 API",
+ "docs": "문서"
+ },
+ "about": {
+ "name": "아연",
+ "introduction": "옵저버빌리티가 간소화되었습니다."
+ },
+ "login": {
+ "userid": "유저 ID",
+ "userEmail": "사용자 이메일",
+ "signIn": "로그인",
+ "signUp": "가입하기",
+ "password": "패스워드",
+ "cnfpassword": "비밀번호 확인",
+ "singnInWithGoogle": "구글 계정으로 계속하기"
+ },
+ "user": {
+ "header": "조직 구성원",
+ "id": "유저 ID",
+ "name": "사용자 이름",
+ "role": "역할",
+ "CREATED": "생성되었습니다",
+ "UPDATED": "업데이트되었습니다",
+ "password": "패스워드",
+ "repassword": "비밀번호 재확인",
+ "addOrUpdate": "사용자 추가/업데이트",
+ "editUser": "사용자 업데이트",
+ "add": "사용자 추가",
+ "search": "사용자 검색",
+ "createdAt": "에서 업데이트",
+ "updatedAt": "생성 날짜",
+ "status": "상태",
+ "ID": "신분증",
+ "email": "이메일",
+ "cognitoSub": "코그니토_서브",
+ "firstName": "첫 번째 이름",
+ "lastName": "라스트 네임",
+ "actions": "조치",
+ "memberCreated": "멤버 생성됨",
+ "memberUpdated": "회원 업데이트됨",
+ "updateRole": "역할 업데이트",
+ "orgMemberId": "조직 구성원 ID",
+ "view": "보기",
+ "update": "업데이트",
+ "delete": "삭제",
+ "confirmDeleteHead": "사용자 삭제",
+ "confirmDeleteMsg": "정말 이 사용자를 삭제하시겠습니까?",
+ "cancel": "취소",
+ "save": "저장",
+ "ok": "확인",
+ "updatenotallowed": "소유자에게는 업데이트가 허용되지 않습니다.",
+ "sendInvite": "초대 보내기",
+ "inviteByEmail": "이메일로 초대하세요.세미콜론 (;) 으로 구분된 여러 이메일",
+ "inviteByEmailHint": "구성원 추가 시 비례 할당으로 계산된 금액이 청구됩니다.",
+ "admin": "관리자",
+ "member": "회원",
+ "changePassword": "비밀번호 변경",
+ "oldPassword": "이전 비밀번호",
+ "newPassword": "새 비밀번호"
+ },
+ "ticket": {
+ "header": "지원 티켓",
+ "add": "티켓 추가",
+ "save": "저장",
+ "update": "업데이트",
+ "delete": "티켓 삭제",
+ "search": "티켓 검색",
+ "subject": "제목",
+ "description": "설명",
+ "id": "티켓 ID",
+ "createdAt": "생성 날짜",
+ "updatedAt": "에서 업데이트",
+ "status": "상태",
+ "comments": "코멘트",
+ "addComments": "의견 추가",
+ "attachments": "어태치먼트",
+ "noDataErrorMsg": "사용할 수 있는 데이터 없음",
+ "createTicket": "티켓 생성",
+ "updateTicket": "티켓 업데이트",
+ "inputTextHolder": "여기에 입력하세요",
+ "selectHolder": "선택",
+ "cancel": "취소"
+ },
+ "organization": {
+ "header": "조직",
+ "orgName": "조직 이름",
+ "createOrganization": "조직 생성",
+ "updateOrganization": "조직 업데이트",
+ "nameHolder": "여기에 이름을 입력하세요",
+ "add": "조직 추가",
+ "save": "저장",
+ "cancel": "취소",
+ "delete": "조직 삭제",
+ "search": "조직 검색",
+ "subject": "제목",
+ "description": "설명",
+ "id": "조직 ID",
+ "createdAt": "생성 날짜",
+ "updatedAt": "에서 업데이트",
+ "status": "상태",
+ "invite": "팀원 초대",
+ "name": "이름",
+ "type": "타입",
+ "owner": "소유자",
+ "created": "생성됨",
+ "actions": "조치",
+ "emailLabel": "이메일 ID 입력",
+ "emailHolder": "여기에 이메일 ID를 입력합니다.",
+ "note": "참고: 여러 팀원을 추가하려면 Enter 키를 누르세요.",
+ "identifier": "식별자",
+ "copyapikey": "API 키 복사",
+ "getapikey": "API 키 가져오기",
+ "role": "역할",
+ "nameRequired": "이름은 필수입니다"
+ },
+ "template": {
+ "header": "템플리트",
+ "add": "템플릿 추가",
+ "search": "검색 템플릿"
+ },
+ "logStream": {
+ "header": "스트림",
+ "search": "검색 스트림",
+ "name": "이름",
+ "docNum": "문서 번호",
+ "storageSize": "수집된 데이터",
+ "compressedSize": "압축 크기",
+ "time": "시간",
+ "storageType": "스토리지 유형",
+ "shardNum": "샤드 번호",
+ "schemaHeader": "스트림 세부 정보",
+ "streamSettings": "스트림 설정",
+ "streamPartitionKey": "파티션 키",
+ "streamftsKey": "전체 텍스트 검색 키",
+ "delete": "삭제",
+ "deleteIndex": "스트림 삭제",
+ "confirmDeleteHead": "스트림 삭제",
+ "confirmDeleteMsg": "정말 이 스트림을 삭제하시겠습니까?",
+ "cancel": "취소",
+ "ok": "확인",
+ "docsCount": "문서 개수",
+ "mapping": "지도 제작",
+ "propertyName": "프로퍼티 이름",
+ "propertyType": "부동산 유형",
+ "type": "타입",
+ "refreshStats": "통계 새로고침",
+ "updateSettings": "설정 업데이트"
+ },
+ "function": {
+ "header": "함수",
+ "add": "새 함수 만들기",
+ "search": "검색 기능",
+ "name": "이름",
+ "function": "함수 세부 정보",
+ "save": "저장",
+ "jsfunction": "함수",
+ "stream_name": "스트림 이름",
+ "order": "주문",
+ "ingest": "인제스트 타임 함수인가요?",
+ "actions": "조치",
+ "cancel": "취소",
+ "addTitle": "함수 추가",
+ "updateTitle": "업데이트 기능",
+ "delete": "삭제",
+ "ok": "확인",
+ "type": "함수 유형",
+ "showQuery": "인제스트 타임 함수인가요?"
+ },
+ "confirmDialog": {
+ "cancel": "취소",
+ "ok": "확인"
+ },
+ "ingestion": {
+ "header": "섭취량",
+ "passwordLabel": "리셋 토큰"
+ },
+ "dashboard": {
+ "header": "대시보드",
+ "add": "대시보드 추가",
+ "save": "저장",
+ "cancel": "취소",
+ "delete": "대시보드 삭제",
+ "search": "검색 대시보드",
+ "name": "대시보드 이름",
+ "typeDesc": "대시보드 유형 설명",
+ "createdashboard": "새 대시보드 만들기",
+ "nameHolder": "새 대시보드 이름 입력",
+ "typeHolder": "새 대시보드의 유형 설명 입력"
+ },
+ "panel": {
+ "header": "패널",
+ "add": "패널 추가",
+ "save": "저장",
+ "cancel": "취소",
+ "delete": "패널 삭제",
+ "search": "검색 패널",
+ "name": "패널 이름",
+ "typeDesc": "설명",
+ "createdashboard": "새 패널 만들기",
+ "nameHolder": "새 패널 이름 입력",
+ "typeHolder": "새 패널의 유형 설명 입력",
+ "editPanel": "편집 패널"
+ },
+ "alerts": {
+ "header": "알림",
+ "add": "알림 추가",
+ "search": "검색 알림",
+ "name": "이름",
+ "function": "알림 세부 정보",
+ "save": "저장",
+ "sql": "질의",
+ "realTime": "리얼 타임",
+ "scheduled": "예약됨",
+ "duration": "알림이 평가되는 기간",
+ "condition": "상태",
+ "interval": "경고가 평가되는 빈도",
+ "delayNotificationUntil": "한 번의 알림 이후까지 알림 지연",
+ "destination": "목적지",
+ "stream_name": "스트림 이름",
+ "actions": "조치",
+ "cancel": "취소",
+ "addTitle": "알림 추가",
+ "updateTitle": "업데이트 알림",
+ "delete": "삭제"
+ },
+ "home": {
+ "streams": "스트림",
+ "totalDataIngested": "수집된 총 데이터",
+ "view": "더 보기>>",
+ "queryFunctions": "쿼리 함수",
+ "ingestFunctions": "인제스트 함수",
+ "scheduledAlert": "스케줄링된 알림",
+ "rtAlert": "실시간 알림",
+ "noData": "데이터가 수집되지 않음",
+ "findIngestion": "로그 수집 방법 알아보기 >>",
+ "ingestionMsg": "선택한 조직에 데이터를 수집하지 않은 것 같습니다. fluentbit처럼 데이터를 수집할 수 있는 다양한 방법이 있습니다.",
+ "inestedInSearch": "트라이어 로그 검색",
+ "searchInDemoOrg": "데모 조직으로 전환하여 검색 기능을 탐색하고 데모 조직으로 전환하려면 상단의 조직 드롭다운을 사용하여 '데모 조직'을 선택할 수 있습니다. 데모 조직에는 더미 데이터를 계속 수집합니다."
+ },
+ "billing": {
+ "header": "사용 및 청구",
+ "plans": "플랜",
+ "subtitle": "단순하고 투명한 가격",
+ "individuals": "개인 대상",
+ "startups": "스타트업용",
+ "basic": "베이직",
+ "pro": "프로",
+ "whatIsIncluded": "포함된 내용",
+ "subscribed": "구독됨",
+ "getStarted": "시작하기",
+ "paymentMethod": "결제 방법",
+ "invoiceHistory": "인보이스 내역",
+ "generatedAt": "생성 시간",
+ "details": "세부 정보",
+ "amount": "금액",
+ "amountPaid": "결제 금액",
+ "amountDue": "납부 금액",
+ "dueDate": "만기일",
+ "status": "상태",
+ "action": "액션",
+ "usage": "사용량",
+ "manageCards": "카드 관리",
+ "subscriptionCheckout": "서브스크립션 체크아웃"
+ }
+}
\ No newline at end of file
diff --git a/web/src/locales/languages/nl.json b/web/src/locales/languages/nl.json
new file mode 100644
index 0000000000..20ddd72a88
--- /dev/null
+++ b/web/src/locales/languages/nl.json
@@ -0,0 +1,309 @@
+{
+ "search": {
+ "selectIndex": "Selecteer eerst Stream",
+ "typeSearch": "Typ hier je zoekopdracht",
+ "searchField": "Zoek naar een veld",
+ "maxRecords": "Max records om terug te keren",
+ "searchResult": "Zoekresultaten",
+ "resultsFound": "Resultaten gevonden",
+ "timestamp": "tijdstempel",
+ "source": "_bron",
+ "noResult": "Geen resultaat",
+ "syntaxGuide": "Handleiding voor syntaxis",
+ "recordsPerPage": "Records per pagina",
+ "showing": "bewijs",
+ "of": "van",
+ "rowDetail": "Details van de bron",
+ "sourceName": "naam",
+ "sourceValue": "Waarde",
+ "searchStream": "Stream doorzoeken",
+ "showQueryLabel": "Zoekopdracht",
+ "showFieldLabel": "Velden",
+ "showHistogramLabel": "Histogram",
+ "sqlModeLabel": "SQL-modus"
+ },
+ "menu": {
+ "home": "Thuis",
+ "about": "Over ons",
+ "user": "Gebruikers",
+ "index": "Streams",
+ "search": "Logboeken",
+ "template": "Sjabloon",
+ "signOut": "Uitloggen",
+ "account": "Rekening",
+ "feedback": "Feedback",
+ "zincSearch": "Zink Search",
+ "documentation": "Dokters",
+ "tickets": "Ticket",
+ "organizations": "Organisaties",
+ "function": "Functies",
+ "ingestion": "Inslikken",
+ "metrics": "Metrieken",
+ "slack": "Hulp",
+ "dashboard": "Dashboards",
+ "alerts": "Alarmingen",
+ "openapi": "OpenAPI",
+ "docs": "Dokters"
+ },
+ "about": {
+ "name": "Zink",
+ "introduction": "Waarneembaarheid vereenvoudigd."
+ },
+ "login": {
+ "userid": "Gebruikers-ID",
+ "userEmail": "E-mailadres van de gebruiker",
+ "signIn": "Meld je aan",
+ "signUp": "Meld je aan",
+ "password": "Paswoord",
+ "cnfpassword": "Wachtwoord bevestigen",
+ "singnInWithGoogle": "Ga verder met Google"
+ },
+ "user": {
+ "header": "Lid van de organisatie",
+ "id": "Gebruikers-ID",
+ "name": "Gebruikersnaam",
+ "role": "Rol",
+ "CREATED": "GEMAAKT",
+ "UPDATED": "BIJGEWERKT",
+ "password": "Paswoord",
+ "repassword": "Wachtwoord opnieuw bevestigen",
+ "addOrUpdate": "Gebruiker toevoegen/bijwerken",
+ "editUser": "Gebruiker updaten",
+ "add": "Gebruiker toevoegen",
+ "search": "Gebruiker zoeken",
+ "createdAt": "Bijgewerkt op",
+ "updatedAt": "Gemaakt op",
+ "status": "Status",
+ "ID": "id",
+ "email": "E-Mail",
+ "cognitoSub": "Cognito_sub",
+ "firstName": "Voornaam",
+ "lastName": "Achternaam",
+ "actions": "Acties",
+ "memberCreated": "Lid aangemaakt",
+ "memberUpdated": "Lid bijgewerkt",
+ "updateRole": "Rol bijwerken",
+ "orgMemberId": "ID voor leden van de organisatie",
+ "view": "Bekijken",
+ "update": "Bijwerken",
+ "delete": "Verwijderen",
+ "confirmDeleteHead": "Gebruiker verwijderen",
+ "confirmDeleteMsg": "Weet je zeker dat je deze gebruiker wilt verwijderen?",
+ "cancel": "Annuleer",
+ "save": "Opslaan",
+ "ok": "Oké",
+ "updatenotallowed": "Update niet toegestaan voor eigenaar",
+ "sendInvite": "Uitnodiging verzenden",
+ "inviteByEmail": "Uitnodiging via e-mail. Meerdere e-mails gescheiden door een puntkomma (;)",
+ "inviteByEmailHint": "Voor het toevoegen van een lid wordt een pro rata bedrag in rekening gebracht.",
+ "admin": "beheerder",
+ "member": "lid",
+ "changePassword": "Wachtwoord wijzigen",
+ "oldPassword": "Oud wachtwoord",
+ "newPassword": "Nieuw wachtwoord"
+ },
+ "ticket": {
+ "header": "Tickets voor ondersteuning",
+ "add": "Ticket toevoegen",
+ "save": "Opslaan",
+ "update": "Bijwerken",
+ "delete": "Ticket verwijderen",
+ "search": "Ticket zoeken",
+ "subject": "Onderwerp",
+ "description": "Omschrijving",
+ "id": "Ticket-ID",
+ "createdAt": "Gemaakt op",
+ "updatedAt": "Bijgewerkt op",
+ "status": "Status",
+ "comments": "Commentaren",
+ "addComments": "Opmerkingen toevoegen",
+ "attachments": "Bijlagen",
+ "noDataErrorMsg": "Geen gegevens beschikbaar",
+ "createTicket": "Ticket aanmaken",
+ "updateTicket": "Ticket bijwerken",
+ "inputTextHolder": "Typ hier",
+ "selectHolder": "Selecteer",
+ "cancel": "Annuleer"
+ },
+ "organization": {
+ "header": "Organisaties",
+ "orgName": "Naam van de organisatie",
+ "createOrganization": "Organisatie creëren",
+ "updateOrganization": "Organisatie updaten",
+ "nameHolder": "Typ hier de naam",
+ "add": "Organisatie toevoegen",
+ "save": "Opslaan",
+ "cancel": "Annuleer",
+ "delete": "Organisatie verwijderen",
+ "search": "Organisatie zoeken",
+ "subject": "Onderwerp",
+ "description": "Omschrijving",
+ "id": "Organisatie-ID",
+ "createdAt": "Gemaakt op",
+ "updatedAt": "Bijgewerkt op",
+ "status": "Status",
+ "invite": "Teamgenoot uitnodigen",
+ "name": "naam",
+ "type": "Typ",
+ "owner": "eigenaar",
+ "created": "Gemaakt",
+ "actions": "Acties",
+ "emailLabel": "Voer e-mailadres in",
+ "emailHolder": "Voer hier uw e-mailadres in",
+ "note": "Opmerking: Druk op enter om meerdere teamgenoten toe te voegen.",
+ "identifier": "Identificatienummer",
+ "copyapikey": "API-sleutel kopiëren",
+ "getapikey": "API-sleutel ophalen",
+ "role": "Rol",
+ "nameRequired": "Naam is verplicht"
+ },
+ "template": {
+ "header": "Sjablonen",
+ "add": "Sjabloon toevoegen",
+ "search": "Sjabloon zoeken"
+ },
+ "logStream": {
+ "header": "Streams",
+ "search": "Stream doorzoeken",
+ "name": "naam",
+ "docNum": "Dokter Num",
+ "storageSize": "Ingeslikte gegevens",
+ "compressedSize": "Gecomprimeerde grootte",
+ "time": "Tijd",
+ "storageType": "Soort opslag",
+ "shardNum": "Nummer delen",
+ "schemaHeader": "Details van de stream",
+ "streamSettings": "Stream-instellingen",
+ "streamPartitionKey": "Partitiesleutel",
+ "streamftsKey": "Zoeksleutel in volledige tekst",
+ "delete": "Verwijderen",
+ "deleteIndex": "Stream verwijderen",
+ "confirmDeleteHead": "Stream verwijderen",
+ "confirmDeleteMsg": "Weet je zeker dat je deze stream wilt verwijderen?",
+ "cancel": "Annuleer",
+ "ok": "Oké",
+ "docsCount": "Aantal documenten",
+ "mapping": "In kaart brengen",
+ "propertyName": "Naam van de accommodatie",
+ "propertyType": "Soort woning",
+ "type": "Typ",
+ "refreshStats": "Statistieken verversen",
+ "updateSettings": "Instellingen bijwerken"
+ },
+ "function": {
+ "header": "Functies",
+ "add": "Nieuwe functie aanmaken",
+ "search": "Zoekfunctie",
+ "name": "naam",
+ "function": "Detail van de functie",
+ "save": "Opslaan",
+ "jsfunction": "Functie",
+ "stream_name": "Naam van de stream",
+ "order": "Bestellen",
+ "ingest": "Is Ingest Time een functie?",
+ "actions": "Acties",
+ "cancel": "Annuleer",
+ "addTitle": "Functie toevoegen",
+ "updateTitle": "Functie bijwerken",
+ "delete": "Verwijderen",
+ "ok": "Oké",
+ "type": "Soort functie",
+ "showQuery": "Is Ingest Time een functie?"
+ },
+ "confirmDialog": {
+ "cancel": "Annuleer",
+ "ok": "Oké"
+ },
+ "ingestion": {
+ "header": "Inslikken",
+ "passwordLabel": "Token opnieuw instellen"
+ },
+ "dashboard": {
+ "header": "Dashboards",
+ "add": "Dashboard toevoegen",
+ "save": "Opslaan",
+ "cancel": "Annuleer",
+ "delete": "Dashboard verwijderen",
+ "search": "Dashboard zoeken",
+ "name": "Naam van het dashboard",
+ "typeDesc": "Typebeschrijving van het dashboard",
+ "createdashboard": "Maak een nieuw dashboard",
+ "nameHolder": "Voer de naam van het nieuwe dashboard in",
+ "typeHolder": "Voer de typebeschrijving van het nieuwe dashboard in"
+ },
+ "panel": {
+ "header": "Paneel",
+ "add": "Paneel toevoegen",
+ "save": "Opslaan",
+ "cancel": "Annuleer",
+ "delete": "Paneel verwijderen",
+ "search": "Zoekpaneel",
+ "name": "Naam van het panel",
+ "typeDesc": "Omschrijving",
+ "createdashboard": "Maak een nieuw paneel",
+ "nameHolder": "Voer de naam van het nieuwe paneel in",
+ "typeHolder": "Voer de typebeschrijving van het nieuwe paneel in",
+ "editPanel": "Paneel bewerken"
+ },
+ "alerts": {
+ "header": "Alarmingen",
+ "add": "Waarschuwing toevoegen",
+ "search": "Zoekwaarschuwing",
+ "name": "naam",
+ "function": "Details van de waarschuwing",
+ "save": "Opslaan",
+ "sql": "Zoekopdracht",
+ "realTime": "Realtime",
+ "scheduled": "Gepland",
+ "duration": "Duur waarvoor de waarschuwing wordt geëvalueerd",
+ "condition": "Conditie",
+ "interval": "Frequentie waarmee de waarschuwing wordt geëvalueerd",
+ "delayNotificationUntil": "Melding uitstellen tot, na één melding",
+ "destination": "Bestemming",
+ "stream_name": "Naam van de stream",
+ "actions": "Acties",
+ "cancel": "Annuleer",
+ "addTitle": "Waarschuwing toevoegen",
+ "updateTitle": "Waarschuwing bijwerken",
+ "delete": "Verwijderen"
+ },
+ "home": {
+ "streams": "Streams",
+ "totalDataIngested": "Totaal aantal opgenomen gegevens",
+ "view": "Meer bekijken>>",
+ "queryFunctions": "Query-functies",
+ "ingestFunctions": "Functies inslikken",
+ "scheduledAlert": "Geplande meldingen",
+ "rtAlert": "Waarschuwingen in realtime",
+ "noData": "Geen gegevens opgenomen",
+ "findIngestion": "Ontdek hoe u logboeken kunt opnemen >>",
+ "ingestionMsg": "Het lijkt erop dat u geen gegevens hebt ingevoerd voor een geselecteerde organisatie. Er zijn verschillende manieren waarop gegevens kunnen worden opgenomen, zoals fluentbit.",
+ "inestedInSearch": "Probeer Logs Search",
+ "searchInDemoOrg": "U kunt de zoekmogelijkheden verkennen door over te schakelen naar een demo-organisatie. Om over te schakelen naar een demo-organisatie, selecteert u 'Demo-organisatie' met de vervolgkeuzelijst 'Organisatie' bovenaan. We blijven dummygegevens invoeren in Demo Organization."
+ },
+ "billing": {
+ "header": "Gebruik en facturering",
+ "plans": "Plannen",
+ "subtitle": "Eenvoudige, transparante prijzen",
+ "individuals": "Voor individuen",
+ "startups": "Voor start-ups",
+ "basic": "Basis",
+ "pro": "pro",
+ "whatIsIncluded": "Wat is inbegrepen",
+ "subscribed": "Geabonneerd",
+ "getStarted": "Ga aan de slag",
+ "paymentMethod": "Wijze van betaling",
+ "invoiceHistory": "Factuurgeschiedenis",
+ "generatedAt": "Gegenereerd op",
+ "details": "Bijzonderheden",
+ "amount": "Bedrag",
+ "amountPaid": "Betaald bedrag",
+ "amountDue": "Verschuldigd bedrag",
+ "dueDate": "Vervaldatum",
+ "status": "Status",
+ "action": "actie",
+ "usage": "Gebruik",
+ "manageCards": "Kaarten beheren",
+ "subscriptionCheckout": "Afrekenen van het abonnement"
+ }
+}
\ No newline at end of file
diff --git a/web/src/locales/languages/pt.json b/web/src/locales/languages/pt.json
new file mode 100644
index 0000000000..d5bcaf5ab6
--- /dev/null
+++ b/web/src/locales/languages/pt.json
@@ -0,0 +1,309 @@
+{
+ "search": {
+ "selectIndex": "Selecione Stream First",
+ "typeSearch": "Digite sua consulta de pesquisa aqui",
+ "searchField": "Pesquisar um campo",
+ "maxRecords": "Máximo de registros a serem devolvidos",
+ "searchResult": "Resultados da pesquisa",
+ "resultsFound": "Resultados encontrados",
+ "timestamp": "timestamp",
+ "source": "_fonte",
+ "noResult": "Nenhum resultado",
+ "syntaxGuide": "Guia de sintaxe",
+ "recordsPerPage": "Registros por página",
+ "showing": "Mostrando",
+ "of": "do",
+ "rowDetail": "Detalhes da fonte",
+ "sourceName": "Nome",
+ "sourceValue": "Valor",
+ "searchStream": "Stream de pesquisa",
+ "showQueryLabel": "Consulta",
+ "showFieldLabel": "Campos",
+ "showHistogramLabel": "Histograma",
+ "sqlModeLabel": "Modo SQL"
+ },
+ "menu": {
+ "home": "Página inicial",
+ "about": "Sobre",
+ "user": "Usuários",
+ "index": "Transmissões",
+ "search": "Registros",
+ "template": "Modelo",
+ "signOut": "Sair",
+ "account": "Conta",
+ "feedback": "Feedback",
+ "zincSearch": "Pesquisa de zinco",
+ "documentation": "Documentos",
+ "tickets": "Bilhete",
+ "organizations": "Organizações",
+ "function": "Funções",
+ "ingestion": "Ingestão",
+ "metrics": "Métricas",
+ "slack": "Socorro",
+ "dashboard": "Painéis",
+ "alerts": "Alertas",
+ "openapi": "API aberta",
+ "docs": "Documentos"
+ },
+ "about": {
+ "name": "Zinco",
+ "introduction": "Observabilidade simplificada."
+ },
+ "login": {
+ "userid": "ID de usuário",
+ "userEmail": "E-mail do usuário",
+ "signIn": "Iniciar sessão",
+ "signUp": "Inscrever-se",
+ "password": "Senha",
+ "cnfpassword": "Confirme a senha",
+ "singnInWithGoogle": "Continue com o Google"
+ },
+ "user": {
+ "header": "Membro da organização",
+ "id": "ID de usuário",
+ "name": "Nome de usuário",
+ "role": "Função",
+ "CREATED": "CRIADO",
+ "UPDATED": "ATUALIZADO",
+ "password": "Senha",
+ "repassword": "Reconfirme a senha",
+ "addOrUpdate": "Adicionar/atualizar usuário",
+ "editUser": "Atualizar usuário",
+ "add": "Adicionar usuário",
+ "search": "Pesquisar usuário",
+ "createdAt": "Atualizado em",
+ "updatedAt": "Criado em",
+ "status": "Status",
+ "ID": "id",
+ "email": "E-mail",
+ "cognitoSub": "Cognito_sub",
+ "firstName": "Primeiro nome",
+ "lastName": "Último nome",
+ "actions": "Ações",
+ "memberCreated": "Membro criado",
+ "memberUpdated": "Membro atualizado",
+ "updateRole": "Atualizar função",
+ "orgMemberId": "ID do membro da organização",
+ "view": "Exibir",
+ "update": "Atualizar",
+ "delete": "Excluir",
+ "confirmDeleteHead": "Excluir usuário",
+ "confirmDeleteMsg": "Tem certeza de que deseja excluir esse usuário?",
+ "cancel": "Cancelar",
+ "save": "Salvar",
+ "ok": "Ok",
+ "updatenotallowed": "Atualização não permitida para o proprietário",
+ "sendInvite": "Enviar convite",
+ "inviteByEmail": "Convide por e-mail. Vários e-mails separados por ponto e vírgula (;)",
+ "inviteByEmailHint": "Você pagará um valor proporcional pela adição de um membro.",
+ "admin": "administrador",
+ "member": "membro",
+ "changePassword": "Alterar senha",
+ "oldPassword": "Senha antiga",
+ "newPassword": "Nova senha"
+ },
+ "ticket": {
+ "header": "Tickets de suporte",
+ "add": "Adicionar ingresso",
+ "save": "Salvar",
+ "update": "Atualizar",
+ "delete": "Excluir tíquete",
+ "search": "Bilhete de pesquisa",
+ "subject": "Assunto",
+ "description": "Descrição",
+ "id": "ID do bilhete",
+ "createdAt": "Criado em",
+ "updatedAt": "Atualizado em",
+ "status": "Status",
+ "comments": "Comentários",
+ "addComments": "Adicionar comentários",
+ "attachments": "Anexos",
+ "noDataErrorMsg": "Não há dados disponíveis",
+ "createTicket": "Criar tíquete",
+ "updateTicket": "Atualizar tíquete",
+ "inputTextHolder": "Digite aqui",
+ "selectHolder": "Selecione",
+ "cancel": "Cancelar"
+ },
+ "organization": {
+ "header": "Organizações",
+ "orgName": "Nome da organização",
+ "createOrganization": "Criar organização",
+ "updateOrganization": "Organização de atualização",
+ "nameHolder": "Digite o nome aqui",
+ "add": "Adicionar organização",
+ "save": "Salvar",
+ "cancel": "Cancelar",
+ "delete": "Excluir organização",
+ "search": "Organização de pesquisa",
+ "subject": "Assunto",
+ "description": "Descrição",
+ "id": "ID da organização",
+ "createdAt": "Criado em",
+ "updatedAt": "Atualizado em",
+ "status": "Status",
+ "invite": "Convide um colega de equipe",
+ "name": "Nome",
+ "type": "Tipo",
+ "owner": "Proprietário",
+ "created": "Criado",
+ "actions": "Ações",
+ "emailLabel": "Inserir ID de e-mail",
+ "emailHolder": "Digite o ID de e-mail aqui",
+ "note": "Observação: pressione enter para adicionar vários colegas de equipe.",
+ "identifier": "Identificador",
+ "copyapikey": "Copiar chave de API",
+ "getapikey": "Obtenha a chave da API",
+ "role": "Função",
+ "nameRequired": "O nome é obrigatório"
+ },
+ "template": {
+ "header": "Modelos",
+ "add": "Adicionar modelo",
+ "search": "Modelo de pesquisa"
+ },
+ "logStream": {
+ "header": "Transmissões",
+ "search": "Stream de pesquisa",
+ "name": "Nome",
+ "docNum": "Doc Num",
+ "storageSize": "Dados ingeridos",
+ "compressedSize": "Tamanho comprimido",
+ "time": "Hora",
+ "storageType": "Tipo de armazenamento",
+ "shardNum": "Número do fragmento",
+ "schemaHeader": "Detalhe do stream",
+ "streamSettings": "Configurações de transmissão",
+ "streamPartitionKey": "Chave de partição",
+ "streamftsKey": "Chave de pesquisa de texto completo",
+ "delete": "Excluir",
+ "deleteIndex": "Excluir stream",
+ "confirmDeleteHead": "Excluir stream",
+ "confirmDeleteMsg": "Tem certeza de que deseja excluir esse Stream?",
+ "cancel": "Cancelar",
+ "ok": "Ok",
+ "docsCount": "Contagem de documentos",
+ "mapping": "Mapeamento",
+ "propertyName": "Nome da propriedade",
+ "propertyType": "Tipo de imóvel",
+ "type": "Tipo",
+ "refreshStats": "Atualizar estatísticas",
+ "updateSettings": "Atualizar configurações"
+ },
+ "function": {
+ "header": "Funções",
+ "add": "Criar nova função",
+ "search": "Função de pesquisa",
+ "name": "Nome",
+ "function": "Detalhe da função",
+ "save": "Salvar",
+ "jsfunction": "Função",
+ "stream_name": "Nome do stream",
+ "order": "Pedido",
+ "ingest": "O tempo de ingestão é uma função?",
+ "actions": "Ações",
+ "cancel": "Cancelar",
+ "addTitle": "Adicionar função",
+ "updateTitle": "Função de atualização",
+ "delete": "Excluir",
+ "ok": "Ok",
+ "type": "Tipo de função",
+ "showQuery": "O tempo de ingestão é uma função?"
+ },
+ "confirmDialog": {
+ "cancel": "Cancelar",
+ "ok": "Ok"
+ },
+ "ingestion": {
+ "header": "Ingestão",
+ "passwordLabel": "Token de redefinição"
+ },
+ "dashboard": {
+ "header": "Painéis",
+ "add": "Adicionar painel",
+ "save": "Salvar",
+ "cancel": "Cancelar",
+ "delete": "Excluir painel",
+ "search": "Painel de pesquisa",
+ "name": "Nome do painel",
+ "typeDesc": "Tipo de descrição do painel",
+ "createdashboard": "Criar um novo painel",
+ "nameHolder": "Insira o nome do novo painel",
+ "typeHolder": "Insira a descrição do tipo do novo painel"
+ },
+ "panel": {
+ "header": "Painel",
+ "add": "Adicionar painel",
+ "save": "Salvar",
+ "cancel": "Cancelar",
+ "delete": "Excluir painel",
+ "search": "Painel de pesquisa",
+ "name": "Nome do painel",
+ "typeDesc": "Descrição",
+ "createdashboard": "Criar um novo painel",
+ "nameHolder": "Digite o nome do novo painel",
+ "typeHolder": "Insira a descrição do tipo do novo painel",
+ "editPanel": "Painel de edição"
+ },
+ "alerts": {
+ "header": "Alertas",
+ "add": "Adicionar alerta",
+ "search": "Alerta de pesquisa",
+ "name": "Nome",
+ "function": "Detalhes do alerta",
+ "save": "Salvar",
+ "sql": "Consulta",
+ "realTime": "Tempo real",
+ "scheduled": "Programado",
+ "duration": "Duração para a qual o alerta é avaliado",
+ "condition": "Condição",
+ "interval": "Frequência na qual o alerta é avaliado",
+ "delayNotificationUntil": "Adiar a notificação até, depois de uma notificação",
+ "destination": "Destino",
+ "stream_name": "Nome do stream",
+ "actions": "Ações",
+ "cancel": "Cancelar",
+ "addTitle": "Adicionar alerta",
+ "updateTitle": "Alerta de atualização",
+ "delete": "Excluir"
+ },
+ "home": {
+ "streams": "Transmissões",
+ "totalDataIngested": "Total de dados ingeridos",
+ "view": "Veja mais>>",
+ "queryFunctions": "Funções de consulta",
+ "ingestFunctions": "Funções de ingestão",
+ "scheduledAlert": "Alertas programados",
+ "rtAlert": "Alertas em tempo real",
+ "noData": "Nenhum dado ingerido",
+ "findIngestion": "Descubra como ingerir registros >>",
+ "ingestionMsg": "Parece que você não ingeriu nenhum dado para a organização selecionada. Existem várias maneiras pelas quais os dados podem ser ingeridos, como o Fluentbit.",
+ "inestedInSearch": "Experimente a Pesquisa de registros",
+ "searchInDemoOrg": "Você pode explorar os recursos de pesquisa mudando para a organização de demonstração. Para mudar para a organização de demonstração, selecione “Organização de demonstração” usando o menu suspenso da organização na parte superior. Continuamos ingerindo dados fictícios para a Organização de Demonstração."
+ },
+ "billing": {
+ "header": "Uso e cobrança",
+ "plans": "Planos",
+ "subtitle": "Preços simples e transparentes",
+ "individuals": "Para indivíduos",
+ "startups": "Para startups",
+ "basic": "Básico",
+ "pro": "Profissional",
+ "whatIsIncluded": "O que está incluído",
+ "subscribed": "Inscrito",
+ "getStarted": "Comece",
+ "paymentMethod": "Método de pagamento",
+ "invoiceHistory": "Histórico de faturas",
+ "generatedAt": "Gerado em",
+ "details": "Detalhes",
+ "amount": "Quantia",
+ "amountPaid": "Valor pago",
+ "amountDue": "Valor devido",
+ "dueDate": "Data de vencimento",
+ "status": "Status",
+ "action": "Ação",
+ "usage": "Uso",
+ "manageCards": "Gerenciar cartões",
+ "subscriptionCheckout": "Finalização da compra da assinatura"
+ }
+}
\ No newline at end of file
diff --git a/web/src/plugins/logs/DateTime.vue b/web/src/plugins/logs/DateTime.vue
index 97f6bacdb1..f7d78decb5 100644
--- a/web/src/plugins/logs/DateTime.vue
+++ b/web/src/plugins/logs/DateTime.vue
@@ -246,7 +246,7 @@ export default defineComponent({
setRelativeDate(period, value) {
this.selectedDate.tab = "relative";
this.selectedDate.relative.period = period;
- this.selectedDate.relative.value = value;
+ this.selectedDate.relative.value = value + period.value;
this.$refs.datetimeBtn.$el.click();
},
onCustomPeriodSelect() {
diff --git a/web/src/plugins/logs/Index.vue b/web/src/plugins/logs/Index.vue
index 741e4405b1..15b950b7db 100644
--- a/web/src/plugins/logs/Index.vue
+++ b/web/src/plugins/logs/Index.vue
@@ -1246,6 +1246,8 @@ export default defineComponent({
},
changeRelativeDate() {
if (this.searchObj.data.datetime.tab == "relative") {
+ this.searchObj.data.datetime.relative.value =
+ this.searchObj.data.datetime.relative.value.replace(/[^\d]/g, "");
this.runQueryFn();
}
},
@@ -1277,37 +1279,49 @@ export default defineComponent({
});
-
diff --git a/web/src/plugins/logs/IndexList.vue b/web/src/plugins/logs/IndexList.vue
index 305a34aaa4..af710a922f 100644
--- a/web/src/plugins/logs/IndexList.vue
+++ b/web/src/plugins/logs/IndexList.vue
@@ -23,13 +23,17 @@
? ''
: t('search.selectIndex')
"
- :options="searchObj.data.stream.streamLists"
+ :options="streamOptions"
data-cy="index-dropdown"
input-debounce="0"
behavior="menu"
filled
borderless
dense
+ use-input
+ hide-selected
+ fill-input
+ @filter="filterStreamFn"
>
@@ -125,7 +129,7 @@