-
Tutorials:
+
{t('query.tutorials.title')}
{tutorials.map(({ id, title }) => (
Когато са групирани, резултатите могат да се визуализират само в текстов формат.",
+ "query.actions.rawMode.label": "Необработен режим",
+ "query.actions.rawMode.tooltip": "Активира режима на необработен изход",
+ "query.card.clearResult.tooltip": "Изчистване на резултата",
+ "query.card.copyQuery.aria": "Копиране на заявката",
+ "query.card.delete.aria": "Изтриване на командата",
+ "query.card.mode.group": "Групов режим",
+ "query.card.mode.raw": "Необработен режим",
+ "query.card.mode.silent": "Тих режим",
+ "query.card.processingTime": "Време за обработка",
+ "query.card.queryParameters.aria": "Параметри на заявката",
+ "query.card.rerun.aria": "Повторно изпълнение на командата",
+ "query.card.rerun.tooltip": "Изпълни отново",
+ "query.card.summary.commands_one": "{{count}} команда - {{success}} успешни",
+ "query.card.summary.commands_other": "{{count}} команди - {{success}} успешни",
+ "query.card.summary.errors_one": ", {{count}} грешка",
+ "query.card.summary.errors_other": ", {{count}} грешки",
+ "query.card.toggleCollapse.aria": "Превключи резултата",
+ "query.cliResult.copy": "Копиране на резултата",
+ "query.cliResult.tooBig": "Резултатът е твърде голям, за да бъде запазен. Ще бъде изтрит след затваряне на приложението.",
+ "query.executing": "Моля, изчакайте, докато командите се изпълняват…",
+ "query.liteActions.clear.aria": "Изчисти заявката",
+ "query.liteActions.clear.label": "Изчисти",
+ "query.liteActions.clear.tooltip": "Изчистване на заявката",
+ "query.results.clear": "Изчистване на резултатите",
+ "query.runButton.aria": "Изпълни заявката",
+ "query.runButton.label": "Изпълни",
+ "query.runShortcut.label": "Изпълнение на командите",
+ "query.runShortcut.labelNonMac": "Изпълнение",
+ "query.tutorials.title": "Ръководства:",
"settings.advanced.keysToScan.label": "Ключове за сканиране:",
"settings.advanced.keysToScan.summary": "Задава броя ключове, сканирани на една итерация. Филтрирането по шаблон при голям брой ключове може да намали производителността.",
"settings.advanced.keysToScan.title": "Ключове за сканиране в изглед Списък",
@@ -384,5 +418,27 @@
"whatsNew.releaseNotes.link": "Вижте пълните бележки по изданието за {{version}}",
"whatsNew.title": "Какво ново",
"whatsNew.version.option": "v{{version}}",
- "whatsNew.version.optionLatest": "v{{version}} (най-нова)"
+ "whatsNew.version.optionLatest": "v{{version}} (най-нова)",
+ "workbench.noResults.button.explore": "Разгледайте",
+ "workbench.noResults.cliSubtitle": "за Redis команди.",
+ "workbench.noResults.cliTitle": "Това е нашият усъвършенстван CLI",
+ "workbench.noResults.hint": "Или щракнете върху иконата в горния десен ъгъл.",
+ "workbench.noResults.imageAlt": "няма резултати",
+ "workbench.noResults.summary": "Изпробвайте Работна среда с нашите интерактивни ръководства, за да научите как Redis може да реши вашите случаи на употреба.",
+ "workbench.noResults.title": "Все още няма резултати за показване",
+ "workbench.pageTitle": "{{name}} {{db}} - Работна среда",
+ "workbench.results.clear": "Изчистване на резултатите",
+ "workbench.runConfirm.body_one": "На път сте да изпълните
{{commands}} на
{{db}}. Тази команда е част от списъка с опасни команди. Тази операция може да повлияе на стабилността на сървъра.",
+ "workbench.runConfirm.body_other": "На път сте да изпълните
{{commands}} на
{{db}}. Тези команди са част от списъка с опасни команди. Тази операция може да повлияе на стабилността на сървъра.",
+ "workbench.runConfirm.button.run": "Изпълнение на командата",
+ "workbench.runConfirm.title": "Продължете внимателно в production среда",
+ "workbench.suggestions.noIndexes.detail": "Създайте индекс",
+ "workbench.suggestions.noIndexes.documentation": "Вижте [документацията]({{link}}) за подробни инструкции как да създадете индекс.",
+ "workbench.suggestions.noIndexes.label": "Няма индекси за показване",
+ "workbench.tutorials.basicUseCases": "Основни случаи на употреба",
+ "workbench.tutorials.introToSearch": "Въведение в търсенето",
+ "workbench.tutorials.introToVectorSearch": "Въведение във векторното търсене",
+ "workbench.viewType.explain": "Обяснение на командата",
+ "workbench.viewType.profile": "Профилиране на командата",
+ "workbench.viewType.text": "Текст"
}
diff --git a/redisinsight/ui/src/i18n/locales/en.json b/redisinsight/ui/src/i18n/locales/en.json
index 2f23969001..7386ace7d4 100644
--- a/redisinsight/ui/src/i18n/locales/en.json
+++ b/redisinsight/ui/src/i18n/locales/en.json
@@ -201,6 +201,9 @@
"browser.array.delete.range.trigger": "Delete range",
"browser.array.delete.row.message": "This element will be permanently removed from the array.",
"browser.array.delete.row.title": "Delete element",
+ "common.fullScreen.enter": "Full Screen",
+ "common.fullScreen.exit": "Exit Full Screen",
+ "common.fullScreen.openAria": "Open full screen",
"common.privacyPolicy": "Privacy Policy",
"notification.error.arrayBulkDeleteLimit.message": "You can delete up to {{max}} elements at once. Clear some of the selection and try again.",
"notification.error.arrayBulkDeleteLimit.title": "Too many elements selected",
@@ -316,6 +319,37 @@
"notification.success.uploadDataBulk.success": "Success",
"notification.success.uploadDataBulk.timeTaken": "Time Taken",
"notification.success.uploadDataBulk.title": "Action completed",
+ "query.actions.groupMode.label": "Group results",
+ "query.actions.groupMode.tooltip": "Groups the command results into a single window.
When grouped, the results can be visualized only in the text format.",
+ "query.actions.rawMode.label": "Raw mode",
+ "query.actions.rawMode.tooltip": "Enables the raw output mode",
+ "query.card.clearResult.tooltip": "Clear result",
+ "query.card.copyQuery.aria": "Copy query",
+ "query.card.delete.aria": "Delete command",
+ "query.card.mode.group": "Group mode",
+ "query.card.mode.raw": "Raw mode",
+ "query.card.mode.silent": "Silent mode",
+ "query.card.processingTime": "Processing Time",
+ "query.card.queryParameters.aria": "Query parameters",
+ "query.card.rerun.aria": "Re-run command",
+ "query.card.rerun.tooltip": "Run again",
+ "query.card.summary.commands_one": "{{count}} Command - {{success}} success",
+ "query.card.summary.commands_other": "{{count}} Commands - {{success}} success",
+ "query.card.summary.errors_one": ", {{count}} error",
+ "query.card.summary.errors_other": ", {{count}} errors",
+ "query.card.toggleCollapse.aria": "Toggle result",
+ "query.cliResult.copy": "Copy result",
+ "query.cliResult.tooBig": "The result is too big to be saved. It will be deleted after the application is closed.",
+ "query.executing": "Please wait while the commands are being executed…",
+ "query.liteActions.clear.aria": "Clear query",
+ "query.liteActions.clear.label": "Clear",
+ "query.liteActions.clear.tooltip": "Clear query",
+ "query.results.clear": "Clear Results",
+ "query.runButton.aria": "Run query",
+ "query.runButton.label": "Run",
+ "query.runShortcut.label": "Run commands",
+ "query.runShortcut.labelNonMac": "Run",
+ "query.tutorials.title": "Tutorials:",
"settings.advanced.keysToScan.label": "Keys to Scan:",
"settings.advanced.keysToScan.summary": "Sets the amount of keys to scan per one iteration. Filtering by pattern per a large number of keys may decrease performance.",
"settings.advanced.keysToScan.title": "Keys to Scan in List view",
@@ -384,5 +418,27 @@
"whatsNew.releaseNotes.link": "See full release notes for {{version}}",
"whatsNew.title": "What's New",
"whatsNew.version.option": "v{{version}}",
- "whatsNew.version.optionLatest": "v{{version}} (Latest)"
+ "whatsNew.version.optionLatest": "v{{version}} (Latest)",
+ "workbench.noResults.button.explore": "Explore",
+ "workbench.noResults.cliSubtitle": "for Redis commands.",
+ "workbench.noResults.cliTitle": "This is our advanced CLI",
+ "workbench.noResults.hint": "Or click the icon in the top right corner.",
+ "workbench.noResults.imageAlt": "no results",
+ "workbench.noResults.summary": "Try Workbench with our interactive Tutorials to learn how Redis can solve your use cases.",
+ "workbench.noResults.title": "No results to display yet",
+ "workbench.pageTitle": "{{name}} {{db}} - Workbench",
+ "workbench.results.clear": "Clear Results",
+ "workbench.runConfirm.body_one": "You're about to run
{{commands}} on
{{db}}. This command is part of the list of dangerous commands. This operation may affect server stability.",
+ "workbench.runConfirm.body_other": "You're about to run
{{commands}} on
{{db}}. These commands are part of the list of dangerous commands. This operation may affect server stability.",
+ "workbench.runConfirm.button.run": "Run command",
+ "workbench.runConfirm.title": "Proceed with caution in production",
+ "workbench.suggestions.noIndexes.detail": "Create an index",
+ "workbench.suggestions.noIndexes.documentation": "See the [documentation]({{link}}) for detailed instructions on how to create an index.",
+ "workbench.suggestions.noIndexes.label": "No indexes to display",
+ "workbench.tutorials.basicUseCases": "Basic use cases",
+ "workbench.tutorials.introToSearch": "Intro to search",
+ "workbench.tutorials.introToVectorSearch": "Intro to vector search",
+ "workbench.viewType.explain": "Explain the command",
+ "workbench.viewType.profile": "Profile the command",
+ "workbench.viewType.text": "Text"
}
diff --git a/redisinsight/ui/src/pages/workbench/WorkbenchPage.tsx b/redisinsight/ui/src/pages/workbench/WorkbenchPage.tsx
index 0007a80324..5670ce25ca 100644
--- a/redisinsight/ui/src/pages/workbench/WorkbenchPage.tsx
+++ b/redisinsight/ui/src/pages/workbench/WorkbenchPage.tsx
@@ -2,12 +2,14 @@ import React, { useEffect, useState } from 'react'
import { useAppSelector } from 'uiSrc/slices/hooks'
import { useParams } from 'react-router-dom'
+import { useTranslation } from 'uiSrc/i18n'
import { formatLongName, getDbIndex, setTitle } from 'uiSrc/utils'
import { connectedInstanceSelector } from 'uiSrc/slices/instances/instances'
import { sendPageViewTelemetry, TelemetryPageView } from 'uiSrc/telemetry'
import WBViewWrapper from './components/wb-view'
const WorkbenchPage = () => {
+ const { t } = useTranslation()
const [isPageViewSent, setIsPageViewSent] = useState(false)
const { name: connectedInstanceName, db } = useAppSelector(
@@ -17,7 +19,10 @@ const WorkbenchPage = () => {
const { instanceId } = useParams<{ instanceId: string }>()
setTitle(
- `${formatLongName(connectedInstanceName, 33, 0, '...')} ${getDbIndex(db)} - Workbench`,
+ t('workbench.pageTitle', {
+ name: formatLongName(connectedInstanceName, 33, 0, '...'),
+ db: getDbIndex(db),
+ }),
)
useEffect(() => {
diff --git a/redisinsight/ui/src/pages/workbench/components/query/Query/Query.tsx b/redisinsight/ui/src/pages/workbench/components/query/Query/Query.tsx
index bd4dc96e6d..a0d37f28bb 100644
--- a/redisinsight/ui/src/pages/workbench/components/query/Query/Query.tsx
+++ b/redisinsight/ui/src/pages/workbench/components/query/Query/Query.tsx
@@ -2,6 +2,7 @@ import React, { useRef } from 'react'
import { useAppDispatch, useAppSelector } from 'uiSrc/slices/hooks'
import { monaco as monacoEditor } from 'react-monaco-editor'
+import { useTranslation } from 'uiSrc/i18n'
import { MonacoLanguage } from 'uiSrc/constants'
import { CodeEditor } from 'uiSrc/components/base/code-editor'
import {
@@ -23,6 +24,7 @@ import { Props } from './Query.types'
import * as S from './Query.styles'
const Query = (props: Props) => {
+ const { t } = useTranslation()
const {
activeMode,
resultsMode,
@@ -138,7 +140,10 @@ const Query = (props: Props) => {
) : (
<>
({
+ id,
+ title: t(titleKey),
+ }))}
source="advanced_workbench_editor"
/>
{
+ const { t } = useTranslation()
const { provider } = useAppSelector(connectedInstanceSelector)
const { instanceId } = useParams<{ instanceId: string }>()
@@ -50,13 +53,13 @@ const WbNoResultsMessage = () => {
className={styles.noResultsTitle}
data-testid="wb_no-results__title"
>
- No results to display yet
+ {t('workbench.noResults.title')}
- This is our advanced CLI
+ {t('workbench.noResults.cliTitle')}
- for Redis commands.
+ {t('workbench.noResults.cliSubtitle')}
@@ -67,7 +70,7 @@ const WbNoResultsMessage = () => {
@@ -76,8 +79,7 @@ const WbNoResultsMessage = () => {
className={styles.noResultsText}
data-testid="wb_no-results__summary"
>
- Try Workbench with our interactive Tutorials to learn how Redis
- can solve your use cases.
+ {t('workbench.noResults.summary')}
@@ -87,12 +89,12 @@ const WbNoResultsMessage = () => {
className={styles.exploreBtn}
data-testid="no-results-explore-btn"
>
- Explore
+ {t('workbench.noResults.button.explore')}
- Or click the icon in the top right corner.
+ {t('workbench.noResults.hint')}
diff --git a/redisinsight/ui/src/pages/workbench/components/wb-results/WBResults/WBResults.tsx b/redisinsight/ui/src/pages/workbench/components/wb-results/WBResults/WBResults.tsx
index 00b7c8e143..6addbed710 100644
--- a/redisinsight/ui/src/pages/workbench/components/wb-results/WBResults/WBResults.tsx
+++ b/redisinsight/ui/src/pages/workbench/components/wb-results/WBResults/WBResults.tsx
@@ -1,6 +1,7 @@
import React from 'react'
import cx from 'classnames'
+import { useTranslation } from 'uiSrc/i18n'
import { CodeButtonParams } from 'uiSrc/constants'
import { ProfileQueryType } from 'uiSrc/pages/workbench/constants'
import { generateProfileQueryForCommand } from 'uiSrc/pages/workbench/utils/profile'
@@ -42,6 +43,7 @@ export interface Props {
/** @deprecated Use QueryResults from 'uiSrc/components/query/query-results' instead. */
const WBResults = (props: Props) => {
+ const { t } = useTranslation()
const {
isResultsLoaded,
items = [],
@@ -91,7 +93,7 @@ const WBResults = (props: Props) => {
disabled={clearing || processing}
data-testid="clear-history-btn"
>
- Clear Results
+ {t('workbench.results.clear')}
)}
diff --git a/redisinsight/ui/src/pages/workbench/components/wb-view/WBViewWrapper.tsx b/redisinsight/ui/src/pages/workbench/components/wb-view/WBViewWrapper.tsx
index 95482c9f60..468458add1 100644
--- a/redisinsight/ui/src/pages/workbench/components/wb-view/WBViewWrapper.tsx
+++ b/redisinsight/ui/src/pages/workbench/components/wb-view/WBViewWrapper.tsx
@@ -3,6 +3,7 @@ import { useAppDispatch, useAppSelector } from 'uiSrc/slices/hooks'
import { useParams } from 'react-router-dom'
import { monaco as monacoEditor } from 'react-monaco-editor'
+import { Trans, escapeTrans, useTranslation } from 'uiSrc/i18n'
import {
getMonacoLines,
getParsedParamsInQuery,
@@ -79,6 +80,7 @@ let state: IState = {
/** @deprecated Use useQuery hook from 'pages/vector-search/pages/VectorSearchQueryPage/hooks/useQuery' instead. */
const WBViewWrapper = () => {
+ const { t } = useTranslation()
const { instanceId } = useParams<{ instanceId: string }>()
const {
@@ -283,20 +285,20 @@ const WBViewWrapper = () => {
),
),
)
- const isPlural = dangerousCommands.length > 1
requestConfirmation({
- title: 'Proceed with caution in production',
+ title: t('workbench.runConfirm.title'),
actionDescription: (
- <>
- You're about to run{' '}
-