diff --git a/.betterer.results b/.betterer.results index 5536605dcd4..e358c837c8c 100644 --- a/.betterer.results +++ b/.betterer.results @@ -2693,8 +2693,7 @@ exports[`better eslint`] = { ], "public/app/features/plugins/admin/pages/Browse.tsx:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"], - [0, 0, 0, "Do not use any type assertions.", "1"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "2"] + [0, 0, 0, "Do not use any type assertions.", "1"] ], "public/app/features/plugins/admin/state/actions.ts:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"] @@ -2744,9 +2743,6 @@ exports[`better eslint`] = { "public/app/features/profile/FeatureTogglePage.tsx:5381": [ [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] ], - "public/app/features/profile/UserSessions.tsx:5381": [ - [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] - ], "public/app/features/provisioning/File/FileStatusPage.tsx:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"], [0, 0, 0, "Do not use any type assertions.", "1"] @@ -2761,31 +2757,26 @@ exports[`better eslint`] = { [0, 0, 0, "Use data-testid for E2E selectors instead of aria-label", "3"] ], "public/app/features/query/components/QueryEditorRowHeader.tsx:5381": [ - [0, 0, 0, "No untranslated strings. Wrap text with ", "0"], - [0, 0, 0, "Use data-testid for E2E selectors instead of aria-label", "1"] + [0, 0, 0, "Use data-testid for E2E selectors instead of aria-label", "0"] ], "public/app/features/query/components/QueryErrorAlert.tsx:5381": [ [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] ], "public/app/features/query/components/QueryGroup.tsx:5381": [ [0, 0, 0, "\'HorizontalGroup\' import from \'@grafana/ui\' is restricted from being used by a pattern. Use Stack component instead.", "0"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "1"], - [0, 0, 0, "Use data-testid for E2E selectors instead of aria-label", "2"], - [0, 0, 0, "Use data-testid for E2E selectors instead of aria-label", "3"] + [0, 0, 0, "Use data-testid for E2E selectors instead of aria-label", "1"], + [0, 0, 0, "Use data-testid for E2E selectors instead of aria-label", "2"] ], "public/app/features/query/components/QueryGroupOptions.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "1"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "2"], + [0, 0, 0, "No untranslated strings. Wrap text with ", "0"], + [0, 0, 0, "No untranslated strings. Wrap text with ", "1"], + [0, 0, 0, "No untranslated strings. Wrap text with ", "2"], [0, 0, 0, "No untranslated strings. Wrap text with ", "3"], [0, 0, 0, "No untranslated strings. Wrap text with ", "4"], [0, 0, 0, "No untranslated strings. Wrap text with ", "5"], [0, 0, 0, "No untranslated strings. Wrap text with ", "6"], [0, 0, 0, "No untranslated strings. Wrap text with ", "7"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "8"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "9"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "10"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "11"] + [0, 0, 0, "No untranslated strings. Wrap text with ", "8"] ], "public/app/features/query/state/DashboardQueryRunner/AnnotationsQueryRunner.ts:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"] @@ -2842,20 +2833,6 @@ exports[`better eslint`] = { "public/app/features/search/utils.ts:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"] ], - "public/app/features/serviceaccounts/ServiceAccountPage.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] - ], - "public/app/features/serviceaccounts/ServiceAccountTable.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "1"] - ], - "public/app/features/serviceaccounts/ServiceAccountsListPage.tsx:5381": [ - [0, 0, 0, "No untranslated strings. Wrap text with ", "0"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "1"] - ], - "public/app/features/serviceaccounts/components/CreateTokenModal.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] - ], "public/app/features/serviceaccounts/components/ServiceAccountProfileRow.tsx:5381": [ [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] ], @@ -2864,39 +2841,9 @@ exports[`better eslint`] = { [0, 0, 0, "No untranslated strings. Wrap text with ", "1"], [0, 0, 0, "No untranslated strings. Wrap text with ", "2"] ], - "public/app/features/serviceaccounts/components/ServiceAccountsListItem.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "1"] - ], "public/app/features/serviceaccounts/state/reducers.ts:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"] ], - "public/app/features/support-bundles/SupportBundles.tsx:5381": [ - [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] - ], - "public/app/features/support-bundles/SupportBundlesCreate.tsx:5381": [ - [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] - ], - "public/app/features/teams/CreateTeam.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "1"] - ], - "public/app/features/teams/TeamGroupSync.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "1"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "2"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "3"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "4"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "5"] - ], - "public/app/features/teams/TeamList.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "1"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "2"] - ], - "public/app/features/teams/TeamSettings.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] - ], "public/app/features/teams/state/reducers.ts:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"] ], @@ -2931,15 +2878,6 @@ exports[`better eslint`] = { [0, 0, 0, "Unexpected any. Specify a different type.", "10"], [0, 0, 0, "Unexpected any. Specify a different type.", "11"] ], - "public/app/features/trails/Breakdown/LabelBreakdownScene.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] - ], - "public/app/features/trails/Breakdown/SearchInput.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] - ], - "public/app/features/trails/Breakdown/SortByScene.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] - ], "public/app/features/trails/Breakdown/types.ts:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"] ], @@ -2952,19 +2890,9 @@ exports[`better eslint`] = { "public/app/features/trails/DataTrailCard.tsx:5381": [ [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] ], - "public/app/features/trails/MetricScene.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] - ], "public/app/features/trails/MetricSelect/MetricSelectScene.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "1"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "2"] - ], - "public/app/features/trails/TrailStore/utils.tsx:5381": [ - [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] - ], - "public/app/features/trails/banners/NativeHistogramBanner.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] + [0, 0, 0, "No untranslated strings. Wrap text with ", "0"], + [0, 0, 0, "No untranslated strings. Wrap text with ", "1"] ], "public/app/features/transformers/FilterByValueTransformer/ValueMatchers/BasicMatcherEditor.tsx:5381": [ [0, 0, 0, "Unexpected any. Specify a different type.", "0"] @@ -2997,10 +2925,6 @@ exports[`better eslint`] = { [0, 0, 0, "\'HorizontalGroup\' import from \'@grafana/ui\' is restricted from being used by a pattern. Use Stack component instead.", "0"], [0, 0, 0, "Do not use any type assertions.", "1"] ], - "public/app/features/transformers/editors/CalculateFieldTransformerEditor/UnaryOperationEditor.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "1"] - ], "public/app/features/transformers/editors/CalculateFieldTransformerEditor/WindowOptionsEditor.tsx:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"] ], @@ -3009,16 +2933,7 @@ exports[`better eslint`] = { [0, 0, 0, "Do not re-export imported variable (\`calculateFieldTransformRegistryItem\`)", "1"] ], "public/app/features/transformers/editors/ConvertFieldTypeTransformerEditor.tsx:5381": [ - [0, 0, 0, "Do not use any type assertions.", "0"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "1"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "2"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "3"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "4"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "5"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "6"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "7"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "8"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "9"] + [0, 0, 0, "Do not use any type assertions.", "0"] ], "public/app/features/transformers/editors/EnumMappingEditor.tsx:5381": [ [0, 0, 0, "\'HorizontalGroup\' import from \'@grafana/ui\' is restricted from being used by a pattern. Use Stack component instead.", "0"], @@ -3027,32 +2942,11 @@ exports[`better eslint`] = { "public/app/features/transformers/editors/EnumMappingRow.tsx:5381": [ [0, 0, 0, "\'HorizontalGroup\' import from \'@grafana/ui\' is restricted from being used by a pattern. Use Stack component instead.", "0"] ], - "public/app/features/transformers/editors/FormatStringTransformerEditor.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] - ], "public/app/features/transformers/editors/FormatTimeTransformerEditor.tsx:5381": [ [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] ], "public/app/features/transformers/editors/GroupByTransformerEditor.tsx:5381": [ - [0, 0, 0, "Do not use any type assertions.", "0"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "1"] - ], - "public/app/features/transformers/editors/GroupToNestedTableTransformerEditor.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "1"] - ], - "public/app/features/transformers/editors/HistogramTransformerEditor.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "1"] - ], - "public/app/features/transformers/editors/LabelsToFieldsTransformerEditor.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "1"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "2"] - ], - "public/app/features/transformers/editors/OrganizeFieldsTransformerEditor.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "1"] + [0, 0, 0, "Do not use any type assertions.", "0"] ], "public/app/features/transformers/editors/ReduceTransformerEditor.tsx:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"] @@ -3060,24 +2954,12 @@ exports[`better eslint`] = { "public/app/features/transformers/editors/SortByTransformerEditor.tsx:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"] ], - "public/app/features/transformers/editors/TransposeTransformerEditor.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "1"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "2"] - ], "public/app/features/transformers/extractFields/ExtractFieldsTransformerEditor.tsx:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"], [0, 0, 0, "Do not use any type assertions.", "1"], [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "2"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "3"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "4"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "5"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "6"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "7"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "8"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "9"], - [0, 0, 0, "Unexpected any. Specify a different type.", "10"], - [0, 0, 0, "Unexpected any. Specify a different type.", "11"] + [0, 0, 0, "Unexpected any. Specify a different type.", "3"], + [0, 0, 0, "Unexpected any. Specify a different type.", "4"] ], "public/app/features/transformers/extractFields/components/JSONPathEditor.tsx:5381": [ [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] @@ -3085,9 +2967,6 @@ exports[`better eslint`] = { "public/app/features/transformers/extractFields/fieldExtractors.ts:5381": [ [0, 0, 0, "Unexpected any. Specify a different type.", "0"] ], - "public/app/features/transformers/fieldToConfigMapping/FieldConfigMappingHandlerArgumentsEditor.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] - ], "public/app/features/transformers/fieldToConfigMapping/FieldToConfigMappingEditor.tsx:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"], [0, 0, 0, "Do not use any type assertions.", "1"] @@ -3100,30 +2979,13 @@ exports[`better eslint`] = { [0, 0, 0, "Unexpected any. Specify a different type.", "4"] ], "public/app/features/transformers/joinByLabels/JoinByLabelsTransformerEditor.tsx:5381": [ - [0, 0, 0, "\'HorizontalGroup\' import from \'@grafana/ui\' is restricted from being used by a pattern. Use Stack component instead.", "0"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "1"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "2"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "3"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "4"] + [0, 0, 0, "\'HorizontalGroup\' import from \'@grafana/ui\' is restricted from being used by a pattern. Use Stack component instead.", "0"] ], "public/app/features/transformers/lookupGazetteer/FieldLookupTransformerEditor.tsx:5381": [ - [0, 0, 0, "Do not use any type assertions.", "0"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "1"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "2"] + [0, 0, 0, "Do not use any type assertions.", "0"] ], "public/app/features/transformers/partitionByValues/PartitionByValuesEditor.tsx:5381": [ - [0, 0, 0, "\'HorizontalGroup\' import from \'@grafana/ui\' is restricted from being used by a pattern. Use Stack component instead.", "0"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "1"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "2"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "3"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "4"] - ], - "public/app/features/transformers/prepareTimeSeries/PrepareTimeSeriesEditor.tsx:5381": [ - [0, 0, 0, "No untranslated strings. Wrap text with ", "0"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "1"] - ], - "public/app/features/transformers/regression/regressionEditor.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] + [0, 0, 0, "\'HorizontalGroup\' import from \'@grafana/ui\' is restricted from being used by a pattern. Use Stack component instead.", "0"] ], "public/app/features/transformers/spatial/optionsHelper.tsx:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"], @@ -3139,12 +3001,8 @@ exports[`better eslint`] = { [0, 0, 0, "Do not use any type assertions.", "2"], [0, 0, 0, "Do not use any type assertions.", "3"] ], - "public/app/features/transformers/timeSeriesTable/TimeSeriesTableTransformEditor.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] - ], "public/app/features/users/TokenRevokedModal.tsx:5381": [ - [0, 0, 0, "No untranslated strings. Wrap text with ", "0"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "1"] + [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] ], "public/app/features/variables/adapters.ts:5381": [ [0, 0, 0, "Unexpected any. Specify a different type.", "0"], @@ -3189,16 +3047,9 @@ exports[`better eslint`] = { [0, 0, 0, "Unexpected any. Specify a different type.", "3"], [0, 0, 0, "Unexpected any. Specify a different type.", "4"] ], - "public/app/features/variables/inspect/VariableUsagesButton.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] - ], - "public/app/features/variables/inspect/VariablesUnknownButton.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] - ], "public/app/features/variables/inspect/VariablesUnknownTable.tsx:5381": [ [0, 0, 0, "\'HorizontalGroup\' import from \'@grafana/ui\' is restricted from being used by a pattern. Use Stack component instead.", "0"], - [0, 0, 0, "\'VerticalGroup\' import from \'@grafana/ui\' is restricted from being used by a pattern. Use Stack component instead.", "1"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "2"] + [0, 0, 0, "\'VerticalGroup\' import from \'@grafana/ui\' is restricted from being used by a pattern. Use Stack component instead.", "1"] ], "public/app/features/variables/inspect/utils.ts:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"], @@ -3212,15 +3063,11 @@ exports[`better eslint`] = { [0, 0, 0, "Unexpected any. Specify a different type.", "0"], [0, 0, 0, "Unexpected any. Specify a different type.", "1"] ], - "public/app/features/variables/pickers/PickerRenderer.tsx:5381": [ - [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] - ], "public/app/features/variables/pickers/index.ts:5381": [ [0, 0, 0, "Do not re-export imported variable (\`./OptionsPicker/OptionsPicker\`)", "0"] ], "public/app/features/variables/pickers/shared/VariableOptions.tsx:5381": [ - [0, 0, 0, "No untranslated strings. Wrap text with ", "0"], - [0, 0, 0, "Use data-testid for E2E selectors instead of aria-label", "1"] + [0, 0, 0, "Use data-testid for E2E selectors instead of aria-label", "0"] ], "public/app/features/variables/query/QueryVariableEditor.tsx:5381": [ [0, 0, 0, "Unexpected any. Specify a different type.", "0"], @@ -3308,10 +3155,6 @@ exports[`better eslint`] = { [0, 0, 0, "Unexpected any. Specify a different type.", "2"], [0, 0, 0, "Unexpected any. Specify a different type.", "3"] ], - "public/app/features/visualization/data-hover/DataHoverRows.tsx:5381": [ - [0, 0, 0, "No untranslated strings. Wrap text with ", "0"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "1"] - ], "public/app/plugins/datasource/alertmanager/types.ts:5381": [ [0, 0, 0, "Unexpected any. Specify a different type.", "0"], [0, 0, 0, "Unexpected any. Specify a different type.", "1"] @@ -4162,9 +4005,6 @@ exports[`better eslint`] = { [0, 0, 0, "Unexpected any. Specify a different type.", "16"], [0, 0, 0, "Unexpected any. Specify a different type.", "17"] ], - "public/app/routes/RoutesWrapper.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] - ], "public/app/store/configureStore.ts:5381": [ [0, 0, 0, "Unexpected any. Specify a different type.", "0"] ], @@ -4237,9 +4077,7 @@ exports[`better eslint`] = { [0, 0, 0, "Do not use any type assertions.", "0"] ], "public/swagger/SwaggerPage.tsx:5381": [ - [0, 0, 0, "No untranslated strings. Wrap text with ", "0"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "1"], - [0, 0, 0, "Unexpected any. Specify a different type.", "2"] + [0, 0, 0, "Unexpected any. Specify a different type.", "0"] ], "public/swagger/index.tsx:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"], diff --git a/public/app/features/plugins/admin/pages/Browse.tsx b/public/app/features/plugins/admin/pages/Browse.tsx index c6afd06ad5c..38b9447cf0c 100644 --- a/public/app/features/plugins/admin/pages/Browse.tsx +++ b/public/app/features/plugins/admin/pages/Browse.tsx @@ -4,9 +4,9 @@ import { useLocation } from 'react-router-dom-v5-compat'; import { SelectableValue, GrafanaTheme2, PluginType } from '@grafana/data'; import { locationSearchToObject } from '@grafana/runtime'; -import { Select, RadioButtonGroup, useStyles2, Tooltip, Field } from '@grafana/ui'; +import { Select, RadioButtonGroup, useStyles2, Tooltip, Field, TextLink } from '@grafana/ui'; import { Page } from 'app/core/components/Page/Page'; -import { t } from 'app/core/internationalization'; +import { t, Trans } from 'app/core/internationalization'; import { getNavModel } from 'app/core/selectors/navModel'; import { ROUTES as CONNECTIONS_ROUTES } from 'app/features/connections/constants'; import { useSelector } from 'app/types'; @@ -76,11 +76,10 @@ export default function Browse() { const subTitle = (
- Extend the Grafana experience with panel plugins and apps. To find more data sources go to{' '} - - Connections - - . + + Extend the Grafana experience with panel plugins and apps. To find more data sources go to{' '} + Connections. +
); diff --git a/public/app/features/profile/UserSessions.tsx b/public/app/features/profile/UserSessions.tsx index 579297fe753..1c988487294 100644 --- a/public/app/features/profile/UserSessions.tsx +++ b/public/app/features/profile/UserSessions.tsx @@ -66,7 +66,12 @@ class UserSessions extends PureComponent { {formatDate(session.createdAt, { dateStyle: 'long' })} {session.clientIp} - {session.browser} on {session.os} {session.osVersion} + + {'{{browser}}'} on {'{{os}}'} {'{{osVersion}}'} + {session.authModule && } diff --git a/public/app/features/query/components/QueryEditorRowHeader.tsx b/public/app/features/query/components/QueryEditorRowHeader.tsx index 7c1b6a9c685..d0d0ac7a07e 100644 --- a/public/app/features/query/components/QueryEditorRowHeader.tsx +++ b/public/app/features/query/components/QueryEditorRowHeader.tsx @@ -138,6 +138,7 @@ const renderDataSource = ( const { alerting, dataSource, onChangeDataSource } = props; if (!onChangeDataSource) { + // eslint-disable-next-line @grafana/no-untranslated-strings return ({dataSource.name}); } diff --git a/public/app/features/query/components/QueryGroup.tsx b/public/app/features/query/components/QueryGroup.tsx index 699a8131975..28eb04ebe9f 100644 --- a/public/app/features/query/components/QueryGroup.tsx +++ b/public/app/features/query/components/QueryGroup.tsx @@ -312,7 +312,9 @@ export class QueryGroup extends PureComponent { className={styles.expressionButton} data-testid="query-tab-add-expression" > - Expression  + + Expression + )} {this.renderExtraActions()} diff --git a/public/app/features/query/components/QueryGroupOptions.tsx b/public/app/features/query/components/QueryGroupOptions.tsx index 3a13aa60ef4..fbf2151fd64 100644 --- a/public/app/features/query/components/QueryGroupOptions.tsx +++ b/public/app/features/query/components/QueryGroupOptions.tsx @@ -191,6 +191,7 @@ export const QueryGroupOptionsEditor = React.memo(({ options, dataSource, data, )} diff --git a/public/app/features/serviceaccounts/ServiceAccountTable.tsx b/public/app/features/serviceaccounts/ServiceAccountTable.tsx index 84b4b48f4dd..b448d01d396 100644 --- a/public/app/features/serviceaccounts/ServiceAccountTable.tsx +++ b/public/app/features/serviceaccounts/ServiceAccountTable.tsx @@ -228,7 +228,11 @@ const getActionsCell = ( {contextSrv.hasPermissionInMetadata(AccessControlAction.ServiceAccountsDelete, original) && ( onRemoveButtonClick(original)} /> @@ -240,7 +244,10 @@ const getActionsCell = ( disabled={true} name="lock" size="md" - tooltip={`This is a managed service account and cannot be modified.`} + tooltip={t( + 'serviceaccounts.get-actions-cell.tooltip-managed-service-account-cannot-modified', + 'This is a managed service account and cannot be modified' + )} /> ); diff --git a/public/app/features/serviceaccounts/ServiceAccountsListPage.tsx b/public/app/features/serviceaccounts/ServiceAccountsListPage.tsx index bfdd29a08a5..70bc7c77940 100644 --- a/public/app/features/serviceaccounts/ServiceAccountsListPage.tsx +++ b/public/app/features/serviceaccounts/ServiceAccountsListPage.tsx @@ -14,6 +14,7 @@ import { Box, Stack, useStyles2, + TextLink, } from '@grafana/ui'; import { Page } from 'app/core/components/Page/Page'; import config from 'app/core/config'; @@ -172,20 +173,14 @@ export const ServiceAccountsListPageUnconnected = ({ setCurrentServiceAccount(null); }; - const docsLink = ( - - documentation. - - ); const subTitle = ( - Service accounts and their tokens can be used to authenticate against the Grafana API. Find out more in our{' '} - {docsLink} + + Service accounts and their tokens can be used to authenticate against the Grafana API. Find out more in our{' '} + + documentation. + + ); diff --git a/public/app/features/serviceaccounts/components/CreateTokenModal.tsx b/public/app/features/serviceaccounts/components/CreateTokenModal.tsx index 7979976c51f..f936f3fb2ca 100644 --- a/public/app/features/serviceaccounts/components/CreateTokenModal.tsx +++ b/public/app/features/serviceaccounts/components/CreateTokenModal.tsx @@ -136,7 +136,10 @@ export const CreateTokenModal = ({ isOpen, token, serviceAccountLogin, onCreateT <>
diff --git a/public/app/features/serviceaccounts/components/ServiceAccountsListItem.tsx b/public/app/features/serviceaccounts/components/ServiceAccountsListItem.tsx index d5d9fbe02ce..feaa34d6801 100644 --- a/public/app/features/serviceaccounts/components/ServiceAccountsListItem.tsx +++ b/public/app/features/serviceaccounts/components/ServiceAccountsListItem.tsx @@ -142,7 +142,11 @@ const ServiceAccountListItemComponent = memo( name="trash-alt" size="md" onClick={() => onRemoveButtonClick(serviceAccount)} - tooltip={`Delete service account ${serviceAccount.name}`} + tooltip={t( + 'serviceaccounts.service-account-list-item.tooltip-delete-button', + 'Delete service account {{serviceAccountName}}', + { serviceAccountName: serviceAccount.name } + )} /> )} @@ -153,7 +157,10 @@ const ServiceAccountListItemComponent = memo( disabled={true} name="lock" size="md" - tooltip={`This is a managed service account and cannot be modified.`} + tooltip={t( + 'serviceaccounts.service-account-list-item.tooltip-managed-service-account-cannot-modified', + 'This is a managed service account and cannot be modified' + )} /> )} diff --git a/public/app/features/support-bundles/SupportBundles.tsx b/public/app/features/support-bundles/SupportBundles.tsx index d7c02d1d9b6..9e30df54dff 100644 --- a/public/app/features/support-bundles/SupportBundles.tsx +++ b/public/app/features/support-bundles/SupportBundles.tsx @@ -10,13 +10,6 @@ import { AccessControlAction, StoreState } from 'app/types'; import { loadBundles, removeBundle, checkBundles } from './state/actions'; -const subTitle = ( - - Support bundles allow you to easily collect and share Grafana logs, configuration, and data with the Grafana Labs - team. - -); - const NewBundleButton = ( New support bundle @@ -58,6 +51,15 @@ const SupportBundlesUnconnected = ({ supportBundles, isLoading, loadBundles, rem const actions = hasAccess ? NewBundleButton : undefined; + const subTitle = ( + + + Support bundles allow you to easily collect and share Grafana logs, configuration, and data with the Grafana + Labs team. + + + ); + return ( diff --git a/public/app/features/support-bundles/SupportBundlesCreate.tsx b/public/app/features/support-bundles/SupportBundlesCreate.tsx index 002f4554d15..924db33af2c 100644 --- a/public/app/features/support-bundles/SupportBundlesCreate.tsx +++ b/public/app/features/support-bundles/SupportBundlesCreate.tsx @@ -9,12 +9,6 @@ import { StoreState } from 'app/types'; import { loadSupportBundleCollectors, createSupportBundle } from './state/actions'; -const subTitle = ( - - Choose the components for the support bundle. The support bundle will be available for 3 days after creation. - -); - const mapStateToProps = (state: StoreState) => { return { collectors: state.supportBundles.supportBundleCollectors, @@ -55,6 +49,14 @@ export const SupportBundlesCreateUnconnected = ({ return { ...acc, [curr.uid]: curr.default }; }, {}); + const subTitle = ( + + + Choose the components for the support bundle. The support bundle will be available for 3 days after creation. + + + ); + return ( diff --git a/public/app/features/teams/CreateTeam.tsx b/public/app/features/teams/CreateTeam.tsx index 7abfa59d4e0..59f038917c9 100644 --- a/public/app/features/teams/CreateTeam.tsx +++ b/public/app/features/teams/CreateTeam.tsx @@ -74,8 +74,11 @@ export const CreateTeam = (): JSX.Element => { )} {/* eslint-disable-next-line @grafana/no-untranslated-strings */} diff --git a/public/app/features/teams/TeamGroupSync.test.tsx b/public/app/features/teams/TeamGroupSync.test.tsx index d6ffc356588..aee6a5a735d 100644 --- a/public/app/features/teams/TeamGroupSync.test.tsx +++ b/public/app/features/teams/TeamGroupSync.test.tsx @@ -47,11 +47,11 @@ describe('TeamGroupSync', () => { it('should call remove group', async () => { const mockRemoveGroup = jest.fn(); - const mockGroup: TeamGroup = { teamId: 1, groupId: 'some/group' }; + const mockGroup: TeamGroup = { teamId: 1, groupId: 'someGroup' }; setup({ removeTeamGroup: mockRemoveGroup, groups: [mockGroup] }); - await userEvent.click(screen.getByRole('button', { name: 'Remove group some/group' })); + await userEvent.click(screen.getByRole('button', { name: 'Remove group someGroup' })); await waitFor(() => { - expect(mockRemoveGroup).toHaveBeenCalledWith('some/group'); + expect(mockRemoveGroup).toHaveBeenCalledWith('someGroup'); }); }); }); diff --git a/public/app/features/teams/TeamGroupSync.tsx b/public/app/features/teams/TeamGroupSync.tsx index 61e63830fee..d9d38f42dd5 100644 --- a/public/app/features/teams/TeamGroupSync.tsx +++ b/public/app/features/teams/TeamGroupSync.tsx @@ -88,7 +88,9 @@ export class TeamGroupSync extends PureComponent { variant="destructive" onClick={() => this.onRemoveGroup(group)} disabled={isReadOnly} - aria-label={`Remove group ${group.groupId}`} + aria-label={t('teams.team-group-sync.aria-label-remove', 'Remove group {{groupName}}', { + groupName: group.groupId, + })} > @@ -108,7 +110,10 @@ export class TeamGroupSync extends PureComponent { featureId={'team-sync'} eventVariant={'trial'} featureName={'team sync'} - text={'Add a group to enable team sync for free during your trial of Grafana Pro.'} + text={t( + 'teams.team-group-sync.team-sync-upgrade', + 'Add a group to enable team sync for free during your trial of Grafana Pro' + )} /> )}
@@ -124,8 +129,8 @@ export class TeamGroupSync extends PureComponent { )}
{groups.length > 0 && ( - )}
@@ -136,8 +141,10 @@ export class TeamGroupSync extends PureComponent {
); }; diff --git a/public/app/features/teams/TeamList.tsx b/public/app/features/teams/TeamList.tsx index 40708e2e668..9339eb39847 100644 --- a/public/app/features/teams/TeamList.tsx +++ b/public/app/features/teams/TeamList.tsx @@ -201,15 +201,19 @@ export const TeamList = ({ {canReadTeam && ( )} deleteTeam(original.uid)} diff --git a/public/app/features/teams/TeamSettings.tsx b/public/app/features/teams/TeamSettings.tsx index 301f0d22895..eac5bd91df9 100644 --- a/public/app/features/teams/TeamSettings.tsx +++ b/public/app/features/teams/TeamSettings.tsx @@ -70,7 +70,10 @@ export const TeamSettings = ({ team, updateTeam }: Props) => { {/* eslint-disable-next-line @grafana/no-untranslated-strings */} diff --git a/public/app/features/trails/Breakdown/LabelBreakdownScene.tsx b/public/app/features/trails/Breakdown/LabelBreakdownScene.tsx index 68205f4ace9..18154e396b5 100644 --- a/public/app/features/trails/Breakdown/LabelBreakdownScene.tsx +++ b/public/app/features/trails/Breakdown/LabelBreakdownScene.tsx @@ -388,7 +388,10 @@ export class LabelBreakdownScene extends SceneObjectBase {missingOtelTargets && !dismissOtelWarning && ( updateDismissOtelWarning(true)} diff --git a/public/app/features/trails/Breakdown/SearchInput.tsx b/public/app/features/trails/Breakdown/SearchInput.tsx index 69342d933bf..c76bc3e58d0 100644 --- a/public/app/features/trails/Breakdown/SearchInput.tsx +++ b/public/app/features/trails/Breakdown/SearchInput.tsx @@ -2,6 +2,7 @@ import { css } from '@emotion/css'; import { HTMLProps } from 'react'; import { Icon, Input } from '@grafana/ui'; +import { t } from 'app/core/internationalization'; interface Props extends Omit, 'width'> { onClear(): void; @@ -13,7 +14,14 @@ export const SearchInput = ({ value, onChange, placeholder, onClear, ...rest }: value={value} onChange={onChange} suffix={ - value ? : undefined + value ? ( + + ) : undefined } prefix={} placeholder={placeholder} diff --git a/public/app/features/trails/Breakdown/SortByScene.tsx b/public/app/features/trails/Breakdown/SortByScene.tsx index c3272bc6818..617dd0f1aa9 100644 --- a/public/app/features/trails/Breakdown/SortByScene.tsx +++ b/public/app/features/trails/Breakdown/SortByScene.tsx @@ -93,7 +93,7 @@ export class SortByScene extends SceneObjectBase { width={20} isSearchable={true} options={model.sortingOptions} - placeholder={'Choose criteria'} + placeholder={t('trails.sort-by-scene.placeholder-choose-criteria', 'Choose criteria')} onChange={model.onCriteriaChange} inputId="sort-by-criteria" /> diff --git a/public/app/features/trails/MetricScene.tsx b/public/app/features/trails/MetricScene.tsx index 4483936e390..efd1bf85852 100644 --- a/public/app/features/trails/MetricScene.tsx +++ b/public/app/features/trails/MetricScene.tsx @@ -210,7 +210,7 @@ export class MetricActionBar extends SceneObjectBase { ) } - tooltip={'Bookmark'} + tooltip={t('trails.metric-action-bar.tooltip-bookmark', 'Bookmark')} onClick={toggleBookmark} /> {trail.state.embedded && ( diff --git a/public/app/features/trails/MetricSelect/MetricSelectScene.tsx b/public/app/features/trails/MetricSelect/MetricSelectScene.tsx index ecb6d767529..95e725e5121 100644 --- a/public/app/features/trails/MetricSelect/MetricSelectScene.tsx +++ b/public/app/features/trails/MetricSelect/MetricSelectScene.tsx @@ -551,7 +551,10 @@ export class MetricSelectScene extends SceneObjectBase i return (
- + } diff --git a/public/app/features/trails/TrailStore/utils.tsx b/public/app/features/trails/TrailStore/utils.tsx index 7975fbb3085..24f1e6f9a11 100644 --- a/public/app/features/trails/TrailStore/utils.tsx +++ b/public/app/features/trails/TrailStore/utils.tsx @@ -10,7 +10,9 @@ export function createBookmarkSavedNotification() { notification.component = (
- You can view bookmarks under Explore > Metrics + + You can view bookmarks under Explore > Metrics +
View bookmarks diff --git a/public/app/features/trails/banners/NativeHistogramBanner.test.tsx b/public/app/features/trails/banners/NativeHistogramBanner.test.tsx index 23d4d4f21d1..48202baf0a2 100644 --- a/public/app/features/trails/banners/NativeHistogramBanner.test.tsx +++ b/public/app/features/trails/banners/NativeHistogramBanner.test.tsx @@ -18,7 +18,7 @@ const mockProps = { describe('NativeHistogramBanner', () => { test('renders correctly when histograms are loaded', () => { render(); - expect(screen.getByText('Native Histogram Support')).toBeInTheDocument(); + expect(screen.getByText('Native histogram support')).toBeInTheDocument(); expect( screen.getByText( 'Prometheus native histograms offer high resolution, high precision, simple usage in instrumentation and a way to combine and manipulate histograms in queries and in Grafana.' diff --git a/public/app/features/trails/banners/NativeHistogramBanner.tsx b/public/app/features/trails/banners/NativeHistogramBanner.tsx index d32375e054e..039394f7f7a 100644 --- a/public/app/features/trails/banners/NativeHistogramBanner.tsx +++ b/public/app/features/trails/banners/NativeHistogramBanner.tsx @@ -29,7 +29,7 @@ export function NativeHistogramBanner(props: NativeHistogramInfoProps) { <> { { // when a user explicitly closes the banner, save that it has been closed in local storage to not show again diff --git a/public/app/features/transformers/editors/CalculateFieldTransformerEditor/UnaryOperationEditor.tsx b/public/app/features/transformers/editors/CalculateFieldTransformerEditor/UnaryOperationEditor.tsx index ddce1e6301b..f8f3a735c06 100644 --- a/public/app/features/transformers/editors/CalculateFieldTransformerEditor/UnaryOperationEditor.tsx +++ b/public/app/features/transformers/editors/CalculateFieldTransformerEditor/UnaryOperationEditor.tsx @@ -58,7 +58,11 @@ export const UnaryOperationEditor = (props: { > + {/* eslint-disable-next-line @grafana/no-untranslated-strings */} ) diff --git a/public/app/features/transformers/editors/ConvertFieldTypeTransformerEditor.tsx b/public/app/features/transformers/editors/ConvertFieldTypeTransformerEditor.tsx index fe58688236e..16c932c2beb 100644 --- a/public/app/features/transformers/editors/ConvertFieldTypeTransformerEditor.tsx +++ b/public/app/features/transformers/editors/ConvertFieldTypeTransformerEditor.tsx @@ -132,7 +132,7 @@ export const ConvertFieldTypeTransformerEditor = ({ return (
- + - + - + )} {targetField?.type === FieldType.time && ( @@ -186,6 +196,7 @@ export const ConvertFieldTypeTransformerEditor = ({ > onRemoveConvertFieldType(idx)} - aria-label={'Remove convert field type transformer'} + aria-label={t( + 'transformers.convert-field-type-transformer-editor.aria-label-remove-convert-field-type-transformer', + 'Remove convert field type transformer' + )} /> {c.destinationType === FieldType.enum && ( @@ -226,7 +240,10 @@ export const ConvertFieldTypeTransformerEditor = ({ icon="plus" onClick={onAddConvertFieldType} variant="secondary" - aria-label={'Add a convert field type transformer'} + aria-label={t( + 'transformers.convert-field-type-transformer-editor.aria-label-add-a-convert-field-type-transformer', + 'Add a convert field type transformer' + )} > {'Convert field type'} diff --git a/public/app/features/transformers/editors/FormatStringTransformerEditor.tsx b/public/app/features/transformers/editors/FormatStringTransformerEditor.tsx index 2932f54ab13..1a1eac8f2cc 100644 --- a/public/app/features/transformers/editors/FormatStringTransformerEditor.tsx +++ b/public/app/features/transformers/editors/FormatStringTransformerEditor.tsx @@ -82,7 +82,7 @@ function FormatStringTransfomerEditor({ return ( <> - + {showCalcAlert && ( - + )} {fieldNames.map((key) => ( {showCalcAlert && ( - + )}
{fieldNames.map((key) => ( @@ -106,7 +112,10 @@ export const GroupToNestedTableTransformerEditor = ({ 'transformers.group-to-nested-table-transformer-editor.label-show-field-names-in-nested-tables', 'Show field names in nested tables' )} - description="If enabled nested tables will show field names as a table header" + description={t( + 'transformers.group-to-nested-table-transformer-editor.description-show-field-names', + 'If enabled nested tables will show field names as a table header' + )} > diff --git a/public/app/features/transformers/editors/HistogramTransformerEditor.tsx b/public/app/features/transformers/editors/HistogramTransformerEditor.tsx index 93da2d93f9d..01accc8cf14 100644 --- a/public/app/features/transformers/editors/HistogramTransformerEditor.tsx +++ b/public/app/features/transformers/editors/HistogramTransformerEditor.tsx @@ -102,7 +102,7 @@ export const HistogramTransformerEditor = ({ @@ -118,7 +118,7 @@ export const HistogramTransformerEditor = ({ diff --git a/public/app/features/transformers/editors/LabelsToFieldsTransformerEditor.tsx b/public/app/features/transformers/editors/LabelsToFieldsTransformerEditor.tsx index cafb15daaa8..ad276d2cf13 100644 --- a/public/app/features/transformers/editors/LabelsToFieldsTransformerEditor.tsx +++ b/public/app/features/transformers/editors/LabelsToFieldsTransformerEditor.tsx @@ -70,7 +70,10 @@ export const LabelsAsFieldsTransformerEditor = ({ return (
- + - + {labelNames.map((o, i) => { const label = o.label!; @@ -98,7 +104,7 @@ export const LabelsAsFieldsTransformerEditor = ({ {options.mode !== LabelsToFieldsMode.Rows && ( 1) { return ( - Organize fields only works with a single frame. Consider applying a join transformation or filtering the input - first. + + Organize fields only works with a single frame. Consider applying a join transformation or filtering the input + first. + ); } @@ -189,7 +191,9 @@ const DraggableFieldName = ({ onRenameField(fieldName, event.currentTarget.value)} /> diff --git a/public/app/features/transformers/editors/TransposeTransformerEditor.tsx b/public/app/features/transformers/editors/TransposeTransformerEditor.tsx index 4acb09875b9..ce56c78293a 100644 --- a/public/app/features/transformers/editors/TransposeTransformerEditor.tsx +++ b/public/app/features/transformers/editors/TransposeTransformerEditor.tsx @@ -13,7 +13,10 @@ export const TransposeTransfomerEditor = ({ options, onChange }: TransformerUIPr return ( <> - + - + - + - + + + )} @@ -143,13 +154,19 @@ export const extractFieldsTransformerEditor = ({ )} - + {options.replace && ( - + diff --git a/public/app/features/transformers/fieldToConfigMapping/FieldConfigMappingHandlerArgumentsEditor.tsx b/public/app/features/transformers/fieldToConfigMapping/FieldConfigMappingHandlerArgumentsEditor.tsx index 150c00ef36a..143549f278d 100644 --- a/public/app/features/transformers/fieldToConfigMapping/FieldConfigMappingHandlerArgumentsEditor.tsx +++ b/public/app/features/transformers/fieldToConfigMapping/FieldConfigMappingHandlerArgumentsEditor.tsx @@ -1,4 +1,5 @@ import { ColorPicker, Input } from '@grafana/ui'; +import { t } from 'app/core/internationalization'; import { HandlerArguments } from './fieldToConfigMapping'; @@ -38,7 +39,10 @@ export function FieldConfigMappingHandlerArgumentsEditor({ handlerArguments, han ( {Boolean(info.addOptions.length) && ( - + { for your account.

- To resume your session, sign in again. - Contact your administrator or visit the license page to review your quota if you are repeatedly signed out - automatically. + + To resume your session, sign in again. + Contact your administrator or visit the license page to review your quota if you are repeatedly signed + out automatically. +

); diff --git a/public/app/features/visualization/data-hover/DataHoverRows.tsx b/public/app/features/visualization/data-hover/DataHoverRows.tsx index d99fcfd04f9..c85c9bff7cf 100644 --- a/public/app/features/visualization/data-hover/DataHoverRows.tsx +++ b/public/app/features/visualization/data-hover/DataHoverRows.tsx @@ -87,6 +87,7 @@ export const generateLabel = (feature: FeatureLike, idx: number): string | React if (first) { return ( + // eslint-disable-next-line @grafana/no-untranslated-strings {first}: {renderValue(props[first])} @@ -97,6 +98,7 @@ export const generateLabel = (feature: FeatureLike, idx: number): string | React const v = props[k]; if (isString(v)) { return ( + // eslint-disable-next-line @grafana/no-untranslated-strings {k}: {renderValue(v)} diff --git a/public/app/routes/RoutesWrapper.tsx b/public/app/routes/RoutesWrapper.tsx index 44844ceb354..f0b0502519f 100644 --- a/public/app/routes/RoutesWrapper.tsx +++ b/public/app/routes/RoutesWrapper.tsx @@ -16,6 +16,7 @@ import { GlobalStyles, IconButton, ModalRoot, Stack, useSplitter, useStyles2 } f import { AppChrome } from '../core/components/AppChrome/AppChrome'; import { AppNotificationList } from '../core/components/AppNotifications/AppNotificationList'; import { ModalsContextProvider } from '../core/context/ModalsContextProvider'; +import { t } from '../core/internationalization'; import { QueriesDrawerContextProvider } from '../features/explore/QueriesDrawer/QueriesDrawerContext'; function ExtraProviders(props: { children: ReactNode; providers: Array> }) { @@ -119,7 +120,7 @@ export function ExperimentalSplitPaneRouterWrapper(props: RouterWrapperProps) { size={'lg'} style={{ margin: '8px' }} name={'times'} - aria-label={'close'} + aria-label={t('routes-wrapper.close-aria-label', 'Close')} onClick={() => closeApp()} />
diff --git a/public/locales/en-US/grafana.json b/public/locales/en-US/grafana.json index db2f25857ac..c5f47cf5968 100644 --- a/public/locales/en-US/grafana.json +++ b/public/locales/en-US/grafana.json @@ -6161,7 +6161,8 @@ "aria-label-plugin-type-filter": "Plugin type filter", "label-search": "Search", "label-state": "State", - "label-type": "Type" + "label-type": "Type", + "subtitle": "Extend the Grafana experience with panel plugins and apps. To find more data sources go to <2>Connections." }, "catalog": { "no-updates-available": "No updates available", @@ -6345,6 +6346,7 @@ "text-loading-organizations": "Loading organizations..." }, "user-sessions": { + "browser-details": "{{browser}} on {{os}} {{osVersion}}", "now": "Now", "sessions": "Sessions" }, @@ -6921,6 +6923,7 @@ }, "query-group": { "add-query": "Add query", + "expression": "Expression", "title-data-source-help": "Data source help" }, "query-group-options-editor": { @@ -7067,6 +7070,9 @@ "reload-button": "Reload", "title": "Unable to find application file" }, + "routes-wrapper": { + "close-aria-label": "Close" + }, "sandbox": { "test-stuff-page": { "application-notifications-toasts-testing": "Application notifications (toasts) testing", @@ -7198,6 +7204,7 @@ "copy-clipboard": "Copy to clipboard", "copy-to-clipboard-and-close": "Copy to clipboard and close", "description-name-to-easily-identify-the-token": "Name to easily identify the token", + "description-token": "Copy the token now as you will not be able to see it again. Losing a token requires creating a new one.", "generate-token": "Generate token", "label-display-name": "Display name", "label-expiration": "Expiration", @@ -7206,8 +7213,10 @@ }, "get-actions-cell": { "add-token": "Add token", + "aria-label-delete-button": "Delete service account {{serviceAccountName}}", "disable": "Disable", - "enable": "Enable" + "enable": "Enable", + "tooltip-managed-service-account-cannot-modified": "This is a managed service account and cannot be modified" }, "get-role-cell": { "aria-label-role": "Role" @@ -7217,7 +7226,9 @@ "aria-label-role": "Role", "disable": "Disable", "enable": "Enable", - "title-tokens": "Tokens" + "title-tokens": "Tokens", + "tooltip-delete-button": "Delete service account {{serviceAccountName}}", + "tooltip-managed-service-account-cannot-modified": "This is a managed service account and cannot be modified" }, "service-account-page-unconnected": { "add-service-account-token": "Add service account token", @@ -7226,7 +7237,8 @@ "enable-service-account": "Enable service account", "title-delete-service-account": "Delete service account", "title-disable-service-account": "Disable service account", - "tokens": "Tokens" + "tokens": "Tokens", + "tooltip-managed-service-account-cannot-modified": "This is a managed service account and cannot be modified" }, "service-account-permissions": { "title-permissions": "Permissions" @@ -7252,6 +7264,7 @@ "service-accounts-list-page-unconnected": { "add-service-account": "Add service account", "placeholder-search-service-account-by-name": "Search service account by name", + "sub-title": "Service accounts and their tokens can be used to authenticate against the Grafana API. Find out more in our <2>documentation.", "title-delete-service-account": "Delete service account", "title-disable-service-account": "Disable service account" }, @@ -7534,16 +7547,21 @@ }, "support-bundles-create-unconnected": { "cancel": "Cancel", - "create": "Create" + "create": "Create", + "sub-title": "Choose the components for the support bundle. The support bundle will be available for 3 days after creation." }, "support-bundles-unconnected": { "created-on": "Created on", "download": "Download", "expires": "Expires", "requested-by": "Requested by", + "sub-title": "Support bundles allow you to easily collect and share Grafana logs, configuration, and data with the Grafana Labs team.", "tooltip-remove-bundle": "Remove bundle" } }, + "swagger": { + "login": "Login" + }, "table": { "container": { "content": "Showing too many columns in a single table may impact performance and make data harder to read. Consider refining your queries.", @@ -7566,6 +7584,8 @@ "teams": { "create-team": { "create": "Create", + "description-email": "This is optional and is primarily used for allowing custom team avatars", + "label-email": "Email", "label-name": "Name", "label-role": "Role" }, @@ -7577,24 +7597,36 @@ }, "team-group-sync": { "add-group": "Add group", + "add-group-button": "Add group", + "aria-label-remove": "Remove group {{groupName}}", "external-group-id": "External Group ID", "external-group-sync": "External group sync", - "title-there-external-groups": "There are no external groups to sync with" + "label-add-external-group": "Add external group", + "team-sync-upgrade": "Add a group to enable team sync for free during your trial of Grafana Pro", + "title-there-external-groups": "There are no external groups to sync with", + "tooltip-add-external-group": "LDAP group example: {{example}}" }, "team-list": { "columns": { - "title-edit-team": "Edit team" + "aria-label-delete-button": "Delete team {{teamName}}", + "aria-label-edit-team": "Edit team {{teamName}}", + "title-edit-team": "Edit team", + "tooltip-edit-team": "Edit team" }, "new-team": "New Team", "placeholder-search-teams": "Search teams" }, "team-settings": { + "description-email": "This is optional and is primarily used to set the team profile avatar (via gravatar service)", "label-email": "Email", "label-name": "Name", "label-numerical-identifier": "Numerical identifier", "label-role": "Role", "label-team-details": "Team details", "save": "Save" + }, + "team-sync-upgrade-content": { + "description": "Team Sync makes it easier for you to manage users' access in Grafana, by immediately updating each user's Grafana teams and permissions based on their single sign-on group membership, instead of when users sign in" } }, "theme-preview": { @@ -7693,6 +7725,7 @@ "date-created": "Date created: " }, "create-bookmark-saved-notification": { + "description": "You can view bookmarks under <1>Explore > Metrics", "view-bookmarks": "View bookmarks" }, "data-trail-card": { @@ -7714,11 +7747,13 @@ }, "label-breakdown-scene": { "label-search": "Search", - "label-view": "View" + "label-view": "View", + "title-warning-there-missing-telemetry-resource-attributes": "Warning: There may be missing Open Telemetry resource attributes" }, "metric-action-bar": { "open": "Open", "select-new-metric": "Select new metric", + "tooltip-bookmark": "Bookmark", "tooltip-open-in-explore": "Open in explore", "tooltip-remove-existing-metric-choose": "Remove existing metric and choose a new metric" }, @@ -7730,6 +7765,7 @@ }, "metric-select-scene": { "label-otel-experience": "OTel experience", + "label-search-metrics": "Search metrics", "placeholder-search-metrics": "Search metrics", "title-unable-to-retrieve-all-metric-names": "Unable to retrieve all metric names", "unable-to-retrieve-metric-names": "Unable to retrieve metric names" @@ -7750,7 +7786,8 @@ "now": "Now:", "previously": "Previously:", "see-examples": "> See examples", - "sentence": "Prometheus native histograms offer high resolution, high precision, simple usage in instrumentation and a way to combine and manipulate histograms in queries and in Grafana." + "sentence": "Prometheus native histograms offer high resolution, high precision, simple usage in instrumentation and a way to combine and manipulate histograms in queries and in Grafana.", + "title-native-histogram-support": "Native histogram support" }, "recent-metrics": { "or-view-a-recent-exploration": "Or view a recent exploration" @@ -7758,11 +7795,15 @@ "related-logs-scene": { "tooltip-navigate-to-the-explore-logs-app": "Navigate to the Explore Logs app" }, + "search-input": { + "title-clear-search": "Clear search" + }, "settings": { "always-keep-selected-metric-graph-in-view": "Always keep selected metric graph in-view", "show-previews-of-metric-graphs": "Show previews of metric graphs" }, "sort-by-scene": { + "placeholder-choose-criteria": "Choose criteria", "tooltip-sorts-values-using-standard-smart-series": "Sorts values using standard or smart time series calculations." } }, @@ -7800,11 +7841,17 @@ "label-config-query": "Config query" }, "convert-field-type-transformer-editor": { + "aria-label-add-a-convert-field-type-transformer": "Add a convert field type transformer", + "aria-label-remove-convert-field-type-transformer": "Remove convert field type transformer", + "label-as": "as", "label-date-format": "Date format", + "label-field": "Field", "label-input-format": "Input format", "label-join-with": "Join with", "label-set-timezone": "Set timezone", + "placeholder-type": "Type", "tooltip-explicit-separator-joining-array-values": "Use an explicit separator when joining array values", + "tooltip-input-format": "Specify the format of the input field so Grafana can parse the date string correctly.", "tooltip-specify-the-output-format": "Specify the output format.", "tooltip-timezone-manually": "Set the timezone of the date manually" }, @@ -7814,6 +7861,7 @@ "placeholder-field": "Field" }, "draggable-field-name": { + "rename-placeholder": "Rename {{fieldName}}", "title-drag-and-drop-to-reorder": "Drag and drop to reorder" }, "enum-mapping-editor": { @@ -7826,8 +7874,20 @@ }, "extract-fields-transformer-editor": { "label-delimiter": "Delimiter", + "label-format": "Format", + "label-keep-time": "Keep time", + "label-replace-all-fields": "Replace all fields", + "label-source": "Source", + "placeholder-auto": "Auto", "placeholder-select-delimiter": "Select delimiter..." }, + "field-config-mapping-handler-arguments-editor": { + "aria-label-threshold-color": "Threshold color" + }, + "field-lookup-transformer-editor": { + "label-field": "Field", + "label-lookup": "Lookup" + }, "field-to-config-mapping-editor": { "additional-settings": "Additional settings", "field": "Field", @@ -7854,6 +7914,7 @@ "label-filter-type": "Filter type" }, "format-string-transfomer-editor": { + "label-field": "Field", "label-format": "Format", "label-substring-range": "Substring range" }, @@ -7870,8 +7931,13 @@ "placeholder-ignored": "Ignored", "placeholder-select-stats": "Select stats" }, + "group-by-transformer-editor": { + "title-calc-alert": "Calculations will not have an effect if no fields are being grouped on" + }, "group-to-nested-table-transformer-editor": { - "label-show-field-names-in-nested-tables": "Show field names in nested tables" + "description-show-field-names": "If enabled nested tables will show field names as a table header", + "label-show-field-names-in-nested-tables": "Show field names in nested tables", + "title-calc-alert": "Calculations will not have an effect if no fields are being grouped on." }, "grouping-to-matrix-transformer-editor": { "label-cell-value": "Cell value", @@ -7880,7 +7946,9 @@ "label-row": "Row" }, "histogram-transformer-editor": { - "placeholder-default": "Default: 30" + "placeholder-auto": "Auto", + "placeholder-default": "Default: 30", + "placeholder-none": "None" }, "index-options-editor": { "label-as-percentile": "As percentile", @@ -7893,6 +7961,8 @@ "title-no-input-found": "No input found", "title-no-labels-found": "No labels found" }, + "label-join": "Join", + "label-value": "Value", "tooltip-select-label-indicating-values": "Select the label indicating the values name" }, "jsonpath-editor": { @@ -7903,6 +7973,9 @@ "tooltip-remove-path": "Remove path" }, "labels-as-fields-transformer-editor": { + "label-labels": "Labels", + "label-mode": "Mode", + "label-value-field-name": "Value field name", "placeholder-optional-select-label": "(Optional) Select label", "tooltip-replace-value-field-label": "Replace the value field name with a label" }, @@ -7913,21 +7986,32 @@ "ascending-order-duplicates": "Time in ascending order, but may have duplicates", "multiple-value-fields-may-exist": "Multiple value fields may exist", "single-frame": "Single frame", - "st-field-is-time": "1st field is time field" + "st-field-is-time": "1st field is time field", + "string-values-separate": "String values are represented as separate fields rather than as labels" }, "merge-transformer-editor": { "merge-effect-applied-single-frame": "Merge has no effect when applied on a single frame." }, "multi-info": { "all-values-are-numeric": "All values are numeric", + "frame-fields-value": "Each frame has two fields: {{field1}}, {{field2}}", "multiple-frames": "Multiple frames", "string-values-are-represented-as-labels": "String values are represented as labels", "time-in-ascending-order": "Time in ascending order" }, + "organize-fields-transformer-editor": { + "first-frame-warning": "Organize fields only works with a single frame. Consider applying a join transformation or filtering the input first." + }, + "partion-by-values-editor": { + "tooltip-naming": "Sets how the names of the selected fields are displayed. As frame name is usually better for tabular data" + }, "partition-by-values-editor": { "label-field": "Field", + "label-keep-fields": "Keep fields", + "label-naming": "Naming", "label-select-field": "Select field", - "partition-values-works-single-frame": "Partition by values only works with a single frame." + "partition-values-works-single-frame": "Partition by values only works with a single frame.", + "tooltip-keeps-partition-fields-frames": "Keeps the partition fields in the frames" }, "prepare-time-series-editor": { "label-format": "Format", @@ -7957,7 +8041,8 @@ "label-model-type": "Model type", "label-predicted-points": "Predicted points", "label-x-field": "X field", - "label-y-field": "Y field" + "label-y-field": "Y field", + "tooltip-number-of-xy-points-to-predict": "Number of X,Y points to predict" }, "rename-by-regex-transformer-editor": { "label-match": "Match", @@ -7977,11 +8062,15 @@ "time-series-table-transform-editor": { "label-stat": "Stat", "label-time-field": "Time field", - "tooltip-statistic-should-calculated-series": "The statistic that should be calculated for this time series." + "tooltip-statistic-should-calculated-series": "The statistic that should be calculated for this time series.", + "tooltip-time-field": "The time field that will be used for the time series. If not selected the first found will be used." }, "transpose-transfomer-editor": { + "label-first-field-name": "First field name", + "label-remaining-fields-name": "Remaining fields name", "placeholder-field": "Field", - "placeholder-value": "Value" + "placeholder-value": "Value", + "tooltip-name-for-value-fields": "Name for value fields" }, "unary-operation-editor": { "label-operation": "Operation", @@ -8049,6 +8138,7 @@ "message": "No users found" }, "token-revoked-modal": { + "resume-message": "<0>To resume your session, sign in again.Contact your administrator or visit the license page to review your quota if you are repeatedly signed out automatically.", "sign-in": "Sign in", "title-you-have-been-automatically-signed-out": "You have been automatically signed out" }, @@ -8063,6 +8153,11 @@ "shared-dashboard-users-tab-title": "Shared dashboard users" } }, + "variabels": { + "variable-usages-button": { + "usage-title": "Showing usages for: {{variableId}}" + } + }, "variable": { "adhoc": { "placeholder": "Select value" @@ -8073,7 +8168,7 @@ "picker": { "link-all": "All", "option-all": "All", - "option-selected-values": "Selected", + "option-selected-values": "Selected ({{numSelected}})", "option-tooltip": "Clear selections" }, "textbox": { @@ -8099,6 +8194,9 @@ "no-unknowns": { "no-renamed-or-missing-variables-found": "No renamed or missing variables found." }, + "picker-renderer": { + "couldnt-load-variable": "Couldn't load variable" + }, "query-variable-refresh-select": { "description-update-values-variable": "When to update the values of this variable", "label-refresh": "Refresh" @@ -8151,9 +8249,12 @@ "title-dependencies": "Dependencies" }, "variables-unknown-button": { + "usage-title": "Showing usages for: {{variableId}}", "VariablesUnknownButton-tooltip-show-usages": "Show usages" }, "variables-unknown-table": { + "collapse-label": "Renamed or missing variables", + "collapse-tooltip": "Click to expand a list with all variable references that have been renamed or are missing from the dashboard.", "loading": "Loading..." } }, diff --git a/public/swagger/SwaggerPage.tsx b/public/swagger/SwaggerPage.tsx index e74f411e867..f07a8d29f03 100644 --- a/public/swagger/SwaggerPage.tsx +++ b/public/swagger/SwaggerPage.tsx @@ -8,6 +8,8 @@ import { Stack, Select, UserIcon, UserView, Button } from '@grafana/ui'; import { setMonacoEnv } from 'app/core/monacoEnv'; import { ThemeProvider } from 'app/core/utils/ConfigProvider'; +import { Trans } from '../app/core/internationalization'; + import { NamespaceContext, WrappedPlugins } from './plugins'; export const Page = () => { @@ -106,7 +108,9 @@ export const Page = () => { ) : ( - + )}
@@ -124,6 +128,7 @@ export const Page = () => { /> )} + {/* eslint-disable-next-line @grafana/no-untranslated-strings */} {!url?.value &&
...{/** TODO, we can make an api docs loading page here */}
}