diff --git a/.betterer.results b/.betterer.results index 599827d5204..70e7333515a 100644 --- a/.betterer.results +++ b/.betterer.results @@ -5108,79 +5108,30 @@ exports[`better eslint`] = { [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"], - [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 ", "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"] - ], - "public/app/features/serviceaccounts/ServiceAccountPermissions.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"], - [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 ", "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 in text props. Wrap text with or use t()", "1"] ], "public/app/features/serviceaccounts/ServiceAccountsListPage.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 ", "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 ", "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"], - [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. 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"] - ], - "public/app/features/serviceaccounts/components/ServiceAccountProfile.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"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "6"] + [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"] ], - "public/app/features/serviceaccounts/components/ServiceAccountRoleRow.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] - ], "public/app/features/serviceaccounts/components/ServiceAccountTokensTable.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"], - [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 ", "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"], - [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. 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 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"] @@ -5255,24 +5206,14 @@ 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/AddToFiltersGraphAction.tsx:5381": [ - [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] - ], - "public/app/features/trails/Breakdown/BreakdownSearchScene.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] - ], "public/app/features/trails/Breakdown/LabelBreakdownScene.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()", "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"], - [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()", "0"] ], "public/app/features/trails/Breakdown/types.ts:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"] @@ -5284,73 +5225,33 @@ exports[`better eslint`] = { [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] ], "public/app/features/trails/DataTrailCard.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/trails/DataTrailSettings.tsx:5381": [ - [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] - ], - "public/app/features/trails/DataTrailsHistory.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"], - [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 ", "3"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "4"] + [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 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"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "6"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "7"] - ], - "public/app/features/trails/MetricsHeader.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 ", "1"], + [0, 0, 0, "No untranslated strings. Wrap text with ", "2"] ], "public/app/features/trails/RelatedLogs/RelatedLogsScene.tsx:5381": [ [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] ], "public/app/features/trails/TrailStore/utils.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/trails/banners/NativeHistogramBanner.tsx:5381": [ [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] ], - "public/app/features/transformers/FilterByValueTransformer/FilterByValueFilterEditor.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"] - ], - "public/app/features/transformers/FilterByValueTransformer/FilterByValueTransformerEditor.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. Wrap text with ", "2"] - ], "public/app/features/transformers/FilterByValueTransformer/ValueMatchers/BasicMatcherEditor.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"], - [0, 0, 0, "Unexpected any. Specify a different type.", "1"] + [0, 0, 0, "Unexpected any. Specify a different type.", "0"] ], "public/app/features/transformers/FilterByValueTransformer/ValueMatchers/NoopMatcherEditor.tsx:5381": [ [0, 0, 0, "Unexpected any. Specify a different type.", "0"] ], "public/app/features/transformers/FilterByValueTransformer/ValueMatchers/RangeMatcherEditor.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. Wrap text with ", "2"], - [0, 0, 0, "Unexpected any. Specify a different type.", "3"] - ], - "public/app/features/transformers/FilterByValueTransformer/ValueMatchers/RegexMatcherEditor.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] + [0, 0, 0, "Unexpected any. Specify a different type.", "0"] ], "public/app/features/transformers/FilterByValueTransformer/ValueMatchers/types.ts:5381": [ [0, 0, 0, "Unexpected any. Specify a different type.", "0"], @@ -5364,8 +5265,7 @@ exports[`better eslint`] = { [0, 0, 0, "Unexpected any. Specify a different type.", "0"] ], "public/app/features/transformers/calculateHeatmap/editor/AxisEditor.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, "\'HorizontalGroup\' import from \'@grafana/ui\' is restricted from being used by a pattern. Use Stack component instead.", "0"] ], "public/app/features/transformers/calculateHeatmap/editor/helper.ts:5381": [ [0, 0, 0, "Unexpected any. Specify a different type.", "0"] @@ -5374,61 +5274,24 @@ exports[`better eslint`] = { [0, 0, 0, "Do not use any type assertions.", "0"], [0, 0, 0, "Do not use any type assertions.", "1"] ], - "public/app/features/transformers/configFromQuery/ConfigFromQueryTransformerEditor.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/CalculateFieldTransformerEditor/BinaryOperationOptionsEditor.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/CalculateFieldTransformerEditor/CalculateFieldTransformerEditor.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/CalculateFieldTransformerEditor/CumulativeOptionsEditor.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"] - ], - "public/app/features/transformers/editors/CalculateFieldTransformerEditor/IndexOptionsEditor.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, "Do not use any type assertions.", "0"] ], "public/app/features/transformers/editors/CalculateFieldTransformerEditor/ReduceRowOptionsEditor.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, "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, "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 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 ", "3"] + [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"], - [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, "Do not use any type assertions.", "0"] ], "public/app/features/transformers/editors/CalculateFieldTransformerEditor/index.ts:5381": [ [0, 0, 0, "Do not re-export imported variable (\`CalculateFieldTransformerEditor\`)", "0"], [0, 0, 0, "Do not re-export imported variable (\`calculateFieldTransformRegistryItem\`)", "1"] ], - "public/app/features/transformers/editors/ConcatenateTransformerEditor.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/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"], @@ -5439,121 +5302,55 @@ exports[`better eslint`] = { [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, "No untranslated strings in text props. Wrap text with or use t()", "10"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "11"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "12"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "13"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "14"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "15"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "16"] + [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "9"] ], "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"], - [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, "No untranslated strings. Wrap text with ", "3"] + [0, 0, 0, "\'VerticalGroup\' import from \'@grafana/ui\' is restricted from being used by a pattern. Use Stack component instead.", "1"] ], "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"], - [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, "\'HorizontalGroup\' import from \'@grafana/ui\' is restricted from being used by a pattern. Use Stack component instead.", "0"] ], "public/app/features/transformers/editors/FilterByNameTransformerEditor.tsx:5381": [ - [0, 0, 0, "\'@grafana/runtime/src/services\' import is restricted from being used by a pattern. Import from the public export 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, "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, "\'@grafana/runtime/src/services\' import is restricted from being used by a pattern. Import from the public export 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"], - [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()", "0"] ], "public/app/features/transformers/editors/FormatTimeTransformerEditor.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"] + [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"], - [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()", "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"], - [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/editors/GroupingToMatrixTransformerEditor.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()", "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"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "2"] - ], - "public/app/features/transformers/editors/JoinByFieldTransformerEditor.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()", "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"], - [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/editors/LimitTransformerEditor.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] - ], - "public/app/features/transformers/editors/MergeTransformerEditor.tsx:5381": [ - [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] + [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 in text props. Wrap text with or use t()", "1"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "2"] + [0, 0, 0, "No untranslated strings. Wrap text with ", "1"] ], "public/app/features/transformers/editors/ReduceTransformerEditor.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"] - ], - "public/app/features/transformers/editors/RenameByRegexTransformer.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, "Do not use any type assertions.", "0"] ], "public/app/features/transformers/editors/SortByTransformerEditor.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, "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"], - [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()", "2"] ], "public/app/features/transformers/extractFields/ExtractFieldsTransformerEditor.tsx:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"], @@ -5566,19 +5363,11 @@ exports[`better eslint`] = { [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, "No untranslated strings in text props. Wrap text with or use t()", "10"], - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "11"], - [0, 0, 0, "Unexpected any. Specify a different type.", "12"], - [0, 0, 0, "Unexpected any. Specify a different type.", "13"] + [0, 0, 0, "Unexpected any. Specify a different type.", "10"], + [0, 0, 0, "Unexpected any. Specify a different type.", "11"] ], "public/app/features/transformers/extractFields/components/JSONPathEditor.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. 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 ", "0"] ], "public/app/features/transformers/extractFields/extractFields.ts:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"], @@ -5592,11 +5381,7 @@ exports[`better eslint`] = { ], "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"], - [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, "Do not use any type assertions.", "1"] ], "public/app/features/transformers/fieldToConfigMapping/fieldToConfigMapping.ts:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"], @@ -5610,12 +5395,7 @@ exports[`better eslint`] = { [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. Wrap text with ", "8"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "9"] + [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "4"] ], "public/app/features/transformers/lookupGazetteer/FieldLookupTransformerEditor.tsx:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"], @@ -5630,28 +5410,11 @@ exports[`better eslint`] = { [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. Wrap text with ", "7"] + [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 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. 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 ", "12"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "13"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "14"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "15"] + [0, 0, 0, "No untranslated strings. Wrap text with ", "0"], + [0, 0, 0, "No untranslated strings. Wrap text with ", "1"] ], "public/app/features/transformers/prepareTimeSeries/prepareTimeSeries.test.ts:5381": [ [0, 0, 0, "Unexpected any. Specify a different type.", "0"] @@ -5661,12 +5424,7 @@ exports[`better eslint`] = { [0, 0, 0, "Unexpected any. Specify a different type.", "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, "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()", "0"] ], "public/app/features/transformers/spatial/optionsHelper.tsx:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"], @@ -5683,30 +5441,18 @@ exports[`better eslint`] = { [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"], - [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()", "0"] ], "public/app/features/users/TokenRevokedModal.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"], - [0, 0, 0, "No untranslated strings. Wrap text with ", "3"] - ], - "public/app/features/users/UsersActionBar.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/variables/adapters.ts:5381": [ [0, 0, 0, "Unexpected any. Specify a different type.", "0"], [0, 0, 0, "Unexpected any. Specify a different type.", "1"], [0, 0, 0, "Unexpected any. Specify a different type.", "2"] ], - "public/app/features/variables/adhoc/picker/AdHocFilter.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/variables/adhoc/picker/AdHocFilterKey.tsx:5381": [ [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] ], @@ -5722,46 +5468,24 @@ exports[`better eslint`] = { "public/app/features/variables/datasource/actions.ts:5381": [ [0, 0, 0, "Unexpected any. Specify a different type.", "0"] ], - "public/app/features/variables/editor/ConfirmDeleteModal.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] - ], - "public/app/features/variables/editor/LegacyVariableQueryEditor.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] - ], "public/app/features/variables/editor/VariableEditorContainer.tsx:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"], [0, 0, 0, "Do not use any type assertions.", "1"] ], "public/app/features/variables/editor/VariableEditorEditor.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, "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. 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, "Unexpected any. Specify a different type.", "11"] + [0, 0, 0, "No untranslated strings. Wrap text with ", "1"], + [0, 0, 0, "Unexpected any. Specify a different type.", "2"] ], "public/app/features/variables/editor/VariableEditorList.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 ", "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", "4"] + [0, 0, 0, "Use data-testid for E2E selectors instead of aria-label", "0"], + [0, 0, 0, "Use data-testid for E2E selectors instead of aria-label", "1"] ], "public/app/features/variables/editor/VariableEditorListRow.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, "Use data-testid for E2E selectors instead of aria-label", "4"], - [0, 0, 0, "Use data-testid for E2E selectors instead of aria-label", "5"], - [0, 0, 0, "Use data-testid for E2E selectors instead of aria-label", "6"], - [0, 0, 0, "Use data-testid for E2E selectors instead of aria-label", "7"] + [0, 0, 0, "Use data-testid for E2E selectors instead of aria-label", "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", "2"], + [0, 0, 0, "Use data-testid for E2E selectors instead of aria-label", "3"] ], "public/app/features/variables/editor/getVariableQueryEditor.tsx:5381": [ [0, 0, 0, "Unexpected any. Specify a different type.", "0"], @@ -5787,24 +5511,15 @@ exports[`better eslint`] = { [0, 0, 0, "Unexpected any. Specify a different type.", "6"] ], "public/app/features/variables/inspect/VariableUsagesButton.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/variables/inspect/VariablesDependenciesButton.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 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"], - [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()", "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, "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 ", "2"] ], "public/app/features/variables/inspect/utils.ts:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"], @@ -5827,21 +5542,13 @@ exports[`better eslint`] = { [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 in text props. Wrap text with or use t()", "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, "No untranslated strings. Wrap text with ", "0"], + [0, 0, 0, "Use data-testid for E2E selectors instead of aria-label", "1"] ], "public/app/features/variables/query/QueryVariableEditor.tsx:5381": [ [0, 0, 0, "Unexpected any. Specify a different type.", "0"], [0, 0, 0, "Unexpected any. Specify a different type.", "1"] ], - "public/app/features/variables/query/QueryVariableRefreshSelect.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/variables/query/QueryVariableSortSelect.tsx:5381": [ - [0, 0, 0, "No untranslated strings in text props. Wrap text with or use t()", "0"] - ], "public/app/features/variables/query/VariableQueryRunner.ts:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"], [0, 0, 0, "Unexpected any. Specify a different type.", "1"] @@ -5921,10 +5628,6 @@ exports[`better eslint`] = { [0, 0, 0, "Unexpected any. Specify a different type.", "6"], [0, 0, 0, "Unexpected any. Specify a different type.", "7"] ], - "public/app/features/variables/textbox/TextBoxVariableEditor.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/variables/types.ts:5381": [ [0, 0, 0, "Do not re-export imported variable (\`@grafana/data\`)", "0"], [0, 0, 0, "Do not re-export imported variable (\`VariableModel\`)", "1"], @@ -5947,9 +5650,6 @@ exports[`better eslint`] = { [0, 0, 0, "No untranslated strings. Wrap text with ", "0"], [0, 0, 0, "No untranslated strings. Wrap text with ", "1"] ], - "public/app/features/visualization/data-hover/DataHoverView.tsx:5381": [ - [0, 0, 0, "No untranslated strings. Wrap text with ", "0"] - ], "public/app/plugins/datasource/alertmanager/DataSource.ts:5381": [ [0, 0, 0, "Unexpected any. Specify a different type.", "0"] ], diff --git a/public/app/features/serviceaccounts/ServiceAccountPage.tsx b/public/app/features/serviceaccounts/ServiceAccountPage.tsx index 27246e3a4c9..6668ec5d768 100644 --- a/public/app/features/serviceaccounts/ServiceAccountPage.tsx +++ b/public/app/features/serviceaccounts/ServiceAccountPage.tsx @@ -6,6 +6,7 @@ import { NavModelItem, getTimeZone } from '@grafana/data'; import { Button, ConfirmModal, IconButton, Stack } from '@grafana/ui'; import { Page } from 'app/core/components/Page/Page'; import { contextSrv } from 'app/core/core'; +import { Trans, t } from 'app/core/internationalization'; import { AccessControlAction, ApiKey, ServiceAccountDTO, StoreState } from 'app/types'; import { ServiceAccountPermissions } from './ServiceAccountPermissions'; @@ -143,7 +144,9 @@ export const ServiceAccountPageUnconnected = ({ onClick={showDeleteServiceAccountModal(true)} disabled={!contextSrv.hasPermission(AccessControlAction.ServiceAccountsDelete)} > - Delete service account + + Delete service account + {serviceAccount.isDisabled ? ( ) : ( )} @@ -180,7 +187,9 @@ export const ServiceAccountPageUnconnected = ({ )} -

Tokens

+

+ Tokens +

{!serviceAccount.isExternal && ( )}
@@ -207,7 +218,10 @@ export const ServiceAccountPageUnconnected = ({ onRoleChange(newRole, original)} @@ -210,17 +211,17 @@ const getActionsCell = ( {contextSrv.hasPermission(AccessControlAction.ServiceAccountsWrite) && !original.tokens && ( )} {contextSrv.hasPermissionInMetadata(AccessControlAction.ServiceAccountsWrite, original) && (original.isDisabled ? ( ) : ( ))} diff --git a/public/app/features/serviceaccounts/ServiceAccountsListPage.tsx b/public/app/features/serviceaccounts/ServiceAccountsListPage.tsx index 5b8ede18148..bfdd29a08a5 100644 --- a/public/app/features/serviceaccounts/ServiceAccountsListPage.tsx +++ b/public/app/features/serviceaccounts/ServiceAccountsListPage.tsx @@ -197,7 +197,9 @@ export const ServiceAccountsListPageUnconnected = ({ <> {!noServiceAccountsCreated && contextSrv.hasPermission(AccessControlAction.ServiceAccountsCreate) && ( - Add service account + + Add service account + )} @@ -208,7 +210,10 @@ export const ServiceAccountsListPageUnconnected = ({ @@ -277,13 +282,19 @@ export const ServiceAccountsListPageUnconnected = ({ : '' }?`} confirmText="Delete" - title="Delete service account" + title={t( + 'serviceaccounts.service-accounts-list-page-unconnected.title-delete-service-account', + 'Delete service account' + )} onConfirm={onServiceAccountRemove} onDismiss={onRemoveModalClose} /> - + {isWithExpirationDate && ( - + ) : ( <>
@@ -143,16 +147,18 @@ export const CreateTokenModal = ({ isOpen, token, serviceAccountLogin, onCreateT icon="copy" getText={() => token} > - Copy clipboard + Copy to clipboard
token} onClipboardCopy={onCloseInternal}> - Copy to clipboard and close + + Copy to clipboard and close + diff --git a/public/app/features/serviceaccounts/components/ServiceAccountProfile.tsx b/public/app/features/serviceaccounts/components/ServiceAccountProfile.tsx index 27e17a4b6cc..9b86fd23956 100644 --- a/public/app/features/serviceaccounts/components/ServiceAccountProfile.tsx +++ b/public/app/features/serviceaccounts/components/ServiceAccountProfile.tsx @@ -5,6 +5,7 @@ import { GrafanaTheme2, OrgRole, TimeZone, dateTimeFormat } from '@grafana/data' import { Label, TextLink, useStyles2 } from '@grafana/ui'; import { fetchRoleOptions } from 'app/core/components/RolePicker/api'; import { contextSrv } from 'app/core/core'; +import { Trans, t } from 'app/core/internationalization'; import { AccessControlAction, Role, ServiceAccountDTO } from 'app/types'; import { ServiceAccountProfileRow } from './ServiceAccountProfileRow'; @@ -47,38 +48,46 @@ export function ServiceAccountProfile({ serviceAccount, timeZone, onChange }: Pr return (
-

Information

+

+ Information +

{serviceAccount.id && ( )} - + {serviceAccount.isExternal && serviceAccount.requiredBy && ( - - - - + + + + @@ -96,7 +105,11 @@ interface TokenExpirationProps { const TokenExpiration = ({ timeZone, token }: TokenExpirationProps) => { const styles = useStyles2(getStyles); if (!token.expiration) { - return Never; + return ( + + Never + + ); } if (token.secondsUntilExpiration) { return ( diff --git a/public/app/features/serviceaccounts/components/ServiceAccountsListItem.tsx b/public/app/features/serviceaccounts/components/ServiceAccountsListItem.tsx index 34f35945b43..d5d9fbe02ce 100644 --- a/public/app/features/serviceaccounts/components/ServiceAccountsListItem.tsx +++ b/public/app/features/serviceaccounts/components/ServiceAccountsListItem.tsx @@ -7,6 +7,7 @@ import { Button, Icon, IconButton, Stack, useStyles2 } from '@grafana/ui'; import { SkeletonComponent, attachSkeleton } from '@grafana/ui/unstable'; import { UserRolePicker } from 'app/core/components/RolePicker/UserRolePicker'; import { contextSrv } from 'app/core/core'; +import { t, Trans } from 'app/core/internationalization'; import { OrgRolePicker } from 'app/features/admin/OrgRolePicker'; import { AccessControlAction, Role, ServiceAccountDTO } from 'app/types'; @@ -91,7 +92,7 @@ const ServiceAccountListItemComponent = memo( ) : ( diff --git a/public/app/features/transformers/editors/FilterByNameTransformerEditor.tsx b/public/app/features/transformers/editors/FilterByNameTransformerEditor.tsx index f8035a86f0b..52df4e66431 100644 --- a/public/app/features/transformers/editors/FilterByNameTransformerEditor.tsx +++ b/public/app/features/transformers/editors/FilterByNameTransformerEditor.tsx @@ -14,6 +14,7 @@ import { import { FilterFieldsByNameTransformerOptions } from '@grafana/data/internal'; import { getTemplateSrv } from '@grafana/runtime/src/services'; import { Input, FilterPill, InlineFieldRow, InlineField, InlineSwitch, Select } from '@grafana/ui'; +import { t } from 'app/core/internationalization'; import { getTransformationContent } from '../docs/getTransformationContent'; @@ -198,14 +199,14 @@ export class FilterByNameTransformerEditor extends React.PureComponent< const { options, selected, isRegexValid } = this.state; return (
- - + + {this.state.byVariable ? ( - + this.setState({ regex: e.currentTarget.value })} onBlur={this.onInputBlur} diff --git a/public/app/features/transformers/editors/FormatStringTransformerEditor.tsx b/public/app/features/transformers/editors/FormatStringTransformerEditor.tsx index cf14f69a044..2932f54ab13 100644 --- a/public/app/features/transformers/editors/FormatStringTransformerEditor.tsx +++ b/public/app/features/transformers/editors/FormatStringTransformerEditor.tsx @@ -16,6 +16,7 @@ import { FormatStringOutput, FormatStringTransformerOptions } from '@grafana/dat import { Select, InlineFieldRow, InlineField } from '@grafana/ui'; import { FieldNamePicker } from '@grafana/ui/internal'; import { NumberInput } from 'app/core/components/OptionsUI/NumberInput'; +import { t } from 'app/core/internationalization'; const fieldNamePickerSettings: StandardEditorsRegistryItem = { settings: { @@ -90,14 +91,17 @@ function FormatStringTransfomerEditor({ /> - + @@ -95,7 +102,14 @@ export function FormatTimeTransfomerEditor({ > - + + + - + - + - + diff --git a/public/app/features/transformers/editors/MergeTransformerEditor.tsx b/public/app/features/transformers/editors/MergeTransformerEditor.tsx index c81f59bcf9b..dd6c02481be 100644 --- a/public/app/features/transformers/editors/MergeTransformerEditor.tsx +++ b/public/app/features/transformers/editors/MergeTransformerEditor.tsx @@ -7,13 +7,20 @@ import { } from '@grafana/data'; import { MergeTransformerOptions } from '@grafana/data/internal'; import { FieldValidationMessage } from '@grafana/ui'; +import { Trans } from 'app/core/internationalization'; import { getTransformationContent } from '../docs/getTransformationContent'; export const MergeTransformerEditor = ({ input, options, onChange }: TransformerUIProps) => { if (input.length <= 1) { // Show warning that merge is useless only apply on a single frame - return Merge has no effect when applied on a single frame.; + return ( + + + Merge has no effect when applied on a single frame. + + + ); } return null; }; diff --git a/public/app/features/transformers/editors/OrganizeFieldsTransformerEditor.tsx b/public/app/features/transformers/editors/OrganizeFieldsTransformerEditor.tsx index b253066abbf..e938af3e98b 100644 --- a/public/app/features/transformers/editors/OrganizeFieldsTransformerEditor.tsx +++ b/public/app/features/transformers/editors/OrganizeFieldsTransformerEditor.tsx @@ -22,6 +22,7 @@ import { Text, Box, } from '@grafana/ui'; +import { t } from 'app/core/internationalization'; import { getTransformationContent } from '../docs/getTransformationContent'; import { useAllFieldNamesFromDataFrames } from '../utils'; @@ -164,7 +165,15 @@ const DraggableFieldName = ({ - + - + - + { return ( - + onChange({ ...options, firstFieldName: e.currentTarget.value })} width={25} @@ -24,7 +25,7 @@ export const TransposeTransfomerEditor = ({ options, onChange }: TransformerUIPr onChange({ ...options, restFieldsName: e.currentTarget.value })} width={25} diff --git a/public/app/features/transformers/extractFields/ExtractFieldsTransformerEditor.tsx b/public/app/features/transformers/extractFields/ExtractFieldsTransformerEditor.tsx index 04ecc1ad0da..957e48d49d7 100644 --- a/public/app/features/transformers/extractFields/ExtractFieldsTransformerEditor.tsx +++ b/public/app/features/transformers/extractFields/ExtractFieldsTransformerEditor.tsx @@ -11,6 +11,7 @@ import { } from '@grafana/data'; import { InlineField, InlineFieldRow, Select, InlineSwitch, Input, Combobox, ComboboxOption } from '@grafana/ui'; import { FieldNamePicker } from '@grafana/ui/internal'; +import { t } from 'app/core/internationalization'; import { getTransformationContent } from '../docs/getTransformationContent'; @@ -124,12 +125,18 @@ export const extractFieldsTransformerEditor = ({ )} {options.format === FieldExtractorID.Delimiter && ( - + diff --git a/public/app/features/transformers/extractFields/components/JSONPathEditor.tsx b/public/app/features/transformers/extractFields/components/JSONPathEditor.tsx index a25ab5367e6..a89b7ae8237 100644 --- a/public/app/features/transformers/extractFields/components/JSONPathEditor.tsx +++ b/public/app/features/transformers/extractFields/components/JSONPathEditor.tsx @@ -3,6 +3,7 @@ import { useState } from 'react'; import * as React from 'react'; import { Button, InlineField, InlineFieldRow, IconButton, Input } from '@grafana/ui'; +import { t, Trans } from 'app/core/internationalization'; import { JSONPath } from '../types'; @@ -51,15 +52,18 @@ export function JSONPathEditor({ options, onChange }: Props) { paths.map((path: JSONPath, key: number) => (
  • - + ) => onJSONPathChange(event, key, 'path')} value={path.path} - placeholder='A valid json path, e.g. "object.value1" or "object.value2[0]"' + placeholder={t( + 'transformers.jsonpath-editor.placeholder-valid-objectvalue', + 'A valid json path, e.g. "object.value1" or "object.value2[0]"' + )} /> - + - removeJSONPath(key)} name={'trash-alt'} tooltip="Remove path" /> + removeJSONPath(key)} + name={'trash-alt'} + tooltip={t('transformers.jsonpath-editor.tooltip-remove-path', 'Remove path')} + />
  • ))} @@ -96,7 +104,9 @@ const getTooltips = () => {
    A valid path of an json object.
    - JSON Value: + + JSON Value: +
               
    diff --git a/public/app/features/transformers/fieldToConfigMapping/FieldToConfigMappingEditor.tsx b/public/app/features/transformers/fieldToConfigMapping/FieldToConfigMappingEditor.tsx
    index be8edf7be09..d57d3f4157e 100644
    --- a/public/app/features/transformers/fieldToConfigMapping/FieldToConfigMappingEditor.tsx
    +++ b/public/app/features/transformers/fieldToConfigMapping/FieldToConfigMappingEditor.tsx
    @@ -3,6 +3,7 @@ import { capitalize } from 'lodash';
     
     import { DataFrame, getFieldDisplayName, GrafanaTheme2, ReducerID, SelectableValue } from '@grafana/data';
     import { Select, StatsPicker, useStyles2 } from '@grafana/ui';
    +import { Trans } from 'app/core/internationalization';
     
     import {
       configMapHandlers,
    @@ -85,10 +86,24 @@ export function FieldToConfigMappingEditor({ frame, mappings, onChange, withRedu
         
    - + {serviceAccount.requiredBy} diff --git a/public/app/features/serviceaccounts/components/ServiceAccountRoleRow.tsx b/public/app/features/serviceaccounts/components/ServiceAccountRoleRow.tsx index bdbb0864e7a..2768644b771 100644 --- a/public/app/features/serviceaccounts/components/ServiceAccountRoleRow.tsx +++ b/public/app/features/serviceaccounts/components/ServiceAccountRoleRow.tsx @@ -1,6 +1,7 @@ import { Label } from '@grafana/ui'; import { UserRolePicker } from 'app/core/components/RolePicker/UserRolePicker'; import { contextSrv } from 'app/core/core'; +import { t } from 'app/core/internationalization'; import { OrgRolePicker } from 'app/features/admin/OrgRolePicker'; import { AccessControlAction, OrgRole, Role, ServiceAccountDTO } from 'app/types'; @@ -38,7 +39,7 @@ export const ServiceAccountRoleRow = ({ label, serviceAccount, roleOptions, onRo
    NameExpiresCreatedLast used at + Name + + Expires + + Created + + Last used at +
    onRoleChange(newRole, serviceAccount)} @@ -102,7 +103,7 @@ const ServiceAccountListItemComponent = memo(
    @@ -122,17 +123,17 @@ const ServiceAccountListItemComponent = memo( disabled={serviceAccount.isDisabled} className={styles.actionButton} > - Add token + Add token )} {contextSrv.hasPermissionInMetadata(AccessControlAction.ServiceAccountsWrite, serviceAccount) && (serviceAccount.isDisabled ? ( ) : ( ))} {contextSrv.hasPermissionInMetadata(AccessControlAction.ServiceAccountsDelete, serviceAccount) && ( diff --git a/public/app/features/trails/Breakdown/AddToFiltersGraphAction.tsx b/public/app/features/trails/Breakdown/AddToFiltersGraphAction.tsx index faf7ef9542b..091159b1b35 100644 --- a/public/app/features/trails/Breakdown/AddToFiltersGraphAction.tsx +++ b/public/app/features/trails/Breakdown/AddToFiltersGraphAction.tsx @@ -7,6 +7,7 @@ import { AdHocFiltersVariable, } from '@grafana/scenes'; import { Button } from '@grafana/ui'; +import { Trans } from 'app/core/internationalization'; import { reportExploreMetrics } from '../interactions'; import { VAR_OTEL_AND_METRIC_FILTERS, VAR_OTEL_GROUP_LEFT, VAR_OTEL_RESOURCES } from '../shared'; @@ -87,7 +88,7 @@ export class AddToFiltersGraphAction extends SceneObjectBase - Add to filters + Add to filters ); }; diff --git a/public/app/features/trails/Breakdown/BreakdownSearchScene.tsx b/public/app/features/trails/Breakdown/BreakdownSearchScene.tsx index e0a145416ad..f64aa66e458 100644 --- a/public/app/features/trails/Breakdown/BreakdownSearchScene.tsx +++ b/public/app/features/trails/Breakdown/BreakdownSearchScene.tsx @@ -2,6 +2,7 @@ import { ChangeEvent } from 'react'; import { BusEventBase } from '@grafana/data'; import { SceneComponentProps, SceneObjectBase, SceneObjectState } from '@grafana/scenes'; +import { t } from 'app/core/internationalization'; import { ByFrameRepeater } from './ByFrameRepeater'; import { LabelBreakdownScene } from './LabelBreakdownScene'; @@ -34,7 +35,7 @@ export class BreakdownSearchScene extends SceneObjectBase ); }; diff --git a/public/app/features/trails/Breakdown/LabelBreakdownScene.tsx b/public/app/features/trails/Breakdown/LabelBreakdownScene.tsx index adc86af8f1c..68205f4ace9 100644 --- a/public/app/features/trails/Breakdown/LabelBreakdownScene.tsx +++ b/public/app/features/trails/Breakdown/LabelBreakdownScene.tsx @@ -28,7 +28,7 @@ import { } from '@grafana/scenes'; import { DataQuery, SortOrder, TooltipDisplayMode } from '@grafana/schema'; import { Alert, Button, Field, LoadingPlaceholder, useStyles2 } from '@grafana/ui'; -import { Trans } from 'app/core/internationalization'; +import { Trans, t } from 'app/core/internationalization'; import { BreakdownLabelSelector } from '../BreakdownLabelSelector'; import { DataTrail } from '../DataTrail'; @@ -374,14 +374,14 @@ export class LabelBreakdownScene extends SceneObjectBase - + )} {body instanceof LayoutSwitcher && ( - + )} @@ -585,7 +585,7 @@ function buildNormalLayout( children: [ new SceneFlexItem({ body: new SceneReactObject({ - reactNode: , + reactNode: , }), }), ], diff --git a/public/app/features/trails/Breakdown/SortByScene.tsx b/public/app/features/trails/Breakdown/SortByScene.tsx index 8454dfdc63b..c3272bc6818 100644 --- a/public/app/features/trails/Breakdown/SortByScene.tsx +++ b/public/app/features/trails/Breakdown/SortByScene.tsx @@ -3,6 +3,7 @@ import { css } from '@emotion/css'; import { BusEventBase, GrafanaTheme2, SelectableValue } from '@grafana/data'; import { SceneComponentProps, SceneObjectBase, SceneObjectState } from '@grafana/scenes'; import { IconButton, Select, Field, useStyles2 } from '@grafana/ui'; +import { t } from 'app/core/internationalization'; import { Trans } from '../../../core/internationalization'; import { getSortByPreference, setSortByPreference } from '../services/store'; @@ -79,7 +80,10 @@ export class SortByScene extends SceneObjectBase { name={'info-circle'} size="sm" variant={'secondary'} - tooltip="Sorts values using standard or smart time series calculations." + tooltip={t( + 'trails.sort-by-scene.tooltip-sorts-values-using-standard-smart-series', + 'Sorts values using standard or smart time series calculations.' + )} />
    } diff --git a/public/app/features/trails/DataTrailCard.tsx b/public/app/features/trails/DataTrailCard.tsx index 75967191964..d752eb5088a 100644 --- a/public/app/features/trails/DataTrailCard.tsx +++ b/public/app/features/trails/DataTrailCard.tsx @@ -4,7 +4,7 @@ import { useMemo } from 'react'; import { dateTimeFormat, GrafanaTheme2 } from '@grafana/data'; import { AdHocFiltersVariable, sceneGraph } from '@grafana/scenes'; import { Card, IconButton, useStyles2 } from '@grafana/ui'; -import { Trans } from 'app/core/internationalization'; +import { Trans, t } from 'app/core/internationalization'; import { DataTrail } from './DataTrail'; import { getTrailStore, DataTrailBookmark } from './TrailStore/TrailStore'; @@ -79,7 +79,7 @@ export function DataTrailCard(props: Props) { key="delete" name="trash-alt" className={styles.secondary} - tooltip="Remove bookmark" + tooltip={t('trails.data-trail-card.deleteButton-tooltip-remove-bookmark', 'Remove bookmark')} onClick={onDelete} data-testid="deleteButton" /> diff --git a/public/app/features/trails/DataTrailSettings.tsx b/public/app/features/trails/DataTrailSettings.tsx index 7007b511ad0..88fd63adc96 100644 --- a/public/app/features/trails/DataTrailSettings.tsx +++ b/public/app/features/trails/DataTrailSettings.tsx @@ -50,7 +50,9 @@ export class DataTrailSettings extends SceneObjectBase { return ( /* eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */
    evt.stopPropagation()}> -
    Settings
    +
    + Settings +
    {topScene instanceof MetricScene && (
    diff --git a/public/app/features/trails/DataTrailsHistory.tsx b/public/app/features/trails/DataTrailsHistory.tsx index 81e20a8b29c..694d73918d1 100644 --- a/public/app/features/trails/DataTrailsHistory.tsx +++ b/public/app/features/trails/DataTrailsHistory.tsx @@ -16,6 +16,7 @@ import { } from '@grafana/scenes'; import { Stack, Tooltip, useStyles2 } from '@grafana/ui'; import { appEvents } from 'app/core/app_events'; +import { Trans } from 'app/core/internationalization'; import { RecordHistoryEntryEvent } from 'app/types/events'; import { DataTrail, DataTrailState, getTopSceneFor } from './DataTrail'; @@ -305,7 +306,9 @@ export class DataTrailHistory extends SceneObjectBase { return (
    -
    History
    +
    + History +
    {steps.map((step, index) => { let stepType = step.type; diff --git a/public/app/features/trails/MetricScene.tsx b/public/app/features/trails/MetricScene.tsx index 8014f3c2bc5..4483936e390 100644 --- a/public/app/features/trails/MetricScene.tsx +++ b/public/app/features/trails/MetricScene.tsx @@ -13,6 +13,7 @@ import { SceneVariableSet, } from '@grafana/scenes'; import { Box, Icon, LinkButton, Stack, Tab, TabsBar, ToolbarButton, Tooltip, useStyles2 } from '@grafana/ui'; +import { t, Trans } from 'app/core/internationalization'; import { getExploreUrl } from '../../core/utils/explore'; @@ -182,18 +183,21 @@ export class MetricActionBar extends SceneObjectBase { { reportExploreMetrics('selected_metric_action_clicked', { action: 'unselect' }); trail.publishEvent(new MetricSelectedEvent(undefined)); }} > - Select new metric + Select new metric @@ -215,7 +219,7 @@ export class MetricActionBar extends SceneObjectBase { variant={'secondary'} onClick={() => reportExploreMetrics('selected_metric_action_clicked', { action: 'open_from_embedded' })} > - Open + Open )} diff --git a/public/app/features/trails/MetricSelect/MetricSelectScene.tsx b/public/app/features/trails/MetricSelect/MetricSelectScene.tsx index 9cea458adaa..ecb6d767529 100644 --- a/public/app/features/trails/MetricSelect/MetricSelectScene.tsx +++ b/public/app/features/trails/MetricSelect/MetricSelectScene.tsx @@ -26,7 +26,7 @@ import { VariableDependencyConfig, } from '@grafana/scenes'; import { Alert, Badge, Field, Icon, IconButton, InlineSwitch, Input, Select, Tooltip, useStyles2 } from '@grafana/ui'; -import { Trans } from 'app/core/internationalization'; +import { Trans, t } from 'app/core/internationalization'; import { MetricScene } from '../MetricScene'; import { StatusWrapper } from '../StatusWrapper'; @@ -523,6 +523,10 @@ export class MetricSelectScene extends SceneObjectBase i const isLoading = metricNamesLoading && children.length === 0; + const unableToRetrieveMetricNames = t( + 'trails.metric-select-scene.unable-to-retrieve-metric-names', + 'Unable to retrieve metric names' + ); const blockingMessage = isLoading ? undefined : missingOtelTargets @@ -535,7 +539,7 @@ export class MetricSelectScene extends SceneObjectBase i -

    Unable to retrieve metric names

    +

    {unableToRetrieveMetricNames}

    {metricNamesWarning}

    } @@ -549,7 +553,7 @@ export class MetricSelectScene extends SceneObjectBase i
    } value={metricSearch} onChange={model.onSearchQueryChange} @@ -616,7 +620,7 @@ export class MetricSelectScene extends SceneObjectBase i @@ -625,14 +629,17 @@ export class MetricSelectScene extends SceneObjectBase i )}
    {metricNamesError && ( - +
    We are unable to connect to your data source. Double check your data source URL and credentials.
    ({metricNamesError})
    )} {metricNamesWarning && !warningDismissed && ( ( - Metrics - Explore your Prometheus-compatible metrics without writing a query + + Metrics + + + + Explore your Prometheus-compatible metrics without writing a query + + ); diff --git a/public/app/features/trails/TrailStore/utils.tsx b/public/app/features/trails/TrailStore/utils.tsx index 8c1b84d1900..7975fbb3085 100644 --- a/public/app/features/trails/TrailStore/utils.tsx +++ b/public/app/features/trails/TrailStore/utils.tsx @@ -1,4 +1,5 @@ import { LinkButton, Stack } from '@grafana/ui'; +import { Trans } from 'app/core/internationalization'; import { createSuccessNotification } from '../../../core/copy/appNotification'; import { HOME_ROUTE } from '../shared'; @@ -12,7 +13,7 @@ export function createBookmarkSavedNotification() { You can view bookmarks under Explore > Metrics
    - View bookmarks + View bookmarks ); diff --git a/public/app/features/transformers/FilterByValueTransformer/FilterByValueFilterEditor.tsx b/public/app/features/transformers/FilterByValueTransformer/FilterByValueFilterEditor.tsx index 1b2f85c51da..51228024888 100644 --- a/public/app/features/transformers/FilterByValueTransformer/FilterByValueFilterEditor.tsx +++ b/public/app/features/transformers/FilterByValueTransformer/FilterByValueFilterEditor.tsx @@ -3,6 +3,7 @@ import { useCallback } from 'react'; import { Field, SelectableValue, valueMatchers } from '@grafana/data'; import { FilterByValueFilter } from '@grafana/data/internal'; import { Button, Select, InlineField, InlineFieldRow, Box } from '@grafana/ui'; +import { t } from 'app/core/internationalization'; import { valueMatchersUI } from './ValueMatchers/valueMatchersUI'; @@ -76,25 +77,25 @@ export const FilterByValueFilterEditor = (props: Props) => { return ( - + - + diff --git a/public/app/features/transformers/FilterByValueTransformer/FilterByValueTransformerEditor.tsx b/public/app/features/transformers/FilterByValueTransformer/FilterByValueTransformerEditor.tsx index 57b42e72d32..09cdb5f67c4 100644 --- a/public/app/features/transformers/FilterByValueTransformer/FilterByValueTransformerEditor.tsx +++ b/public/app/features/transformers/FilterByValueTransformer/FilterByValueTransformerEditor.tsx @@ -21,6 +21,7 @@ import { FilterByValueType, } from '@grafana/data/internal'; import { Button, RadioButtonGroup, InlineField, Box } from '@grafana/ui'; +import { t, Trans } from 'app/core/internationalization'; import { getTransformationContent } from '../docs/getTransformationContent'; @@ -101,12 +102,18 @@ export const FilterByValueTransformerEditor = (props: TransformerUIProps - +
    - +
    @@ -122,7 +129,7 @@ export const FilterByValueTransformerEditor = (props: TransformerUIProps ))}
    diff --git a/public/app/features/transformers/FilterByValueTransformer/ValueMatchers/BasicMatcherEditor.tsx b/public/app/features/transformers/FilterByValueTransformer/ValueMatchers/BasicMatcherEditor.tsx index 6cb7328c59b..780a52ec9a1 100644 --- a/public/app/features/transformers/FilterByValueTransformer/ValueMatchers/BasicMatcherEditor.tsx +++ b/public/app/features/transformers/FilterByValueTransformer/ValueMatchers/BasicMatcherEditor.tsx @@ -2,6 +2,7 @@ import { useCallback, useState } from 'react'; import * as React from 'react'; import { ValueMatcherID, BasicValueMatcherOptions } from '@grafana/data'; +import { t } from 'app/core/internationalization'; import { SuggestionsInput } from '../../suggestionsInput/SuggestionsInput'; import { getVariableSuggestions, numberOrVariableValidator } from '../../utils'; @@ -33,7 +34,7 @@ export function basicMatcherEditor( value={value} error={'Value needs to be a number or a variable'} onChange={onChangeVariableValue} - placeholder="Value or variable" + placeholder={t('transformers.basic-matcher-editor.placeholder-value-or-variable', 'Value or variable')} suggestions={getVariableSuggestions()} /> ); diff --git a/public/app/features/transformers/FilterByValueTransformer/ValueMatchers/RangeMatcherEditor.tsx b/public/app/features/transformers/FilterByValueTransformer/ValueMatchers/RangeMatcherEditor.tsx index 0dd2c09ff92..36fbc5c07ec 100644 --- a/public/app/features/transformers/FilterByValueTransformer/ValueMatchers/RangeMatcherEditor.tsx +++ b/public/app/features/transformers/FilterByValueTransformer/ValueMatchers/RangeMatcherEditor.tsx @@ -3,6 +3,7 @@ import * as React from 'react'; import { ValueMatcherID, RangeValueMatcherOptions } from '@grafana/data'; import { InlineLabel } from '@grafana/ui'; +import { t, Trans } from 'app/core/internationalization'; import { SuggestionsInput } from '../../suggestionsInput/SuggestionsInput'; import { getVariableSuggestions, numberOrVariableValidator } from '../../utils'; @@ -50,16 +51,18 @@ export function rangeMatcherEditor( value={String(options.from)} invalid={isInvalid.from} error={'Value needs to be a number or a variable'} - placeholder="From" + placeholder={t('transformers.range-matcher-editor.placeholder-from', 'From')} onChange={(val) => onChangeOptionsSuggestions(val, 'from')} suggestions={suggestions} /> - and + + and + onChangeOptionsSuggestions(val, 'to')} /> diff --git a/public/app/features/transformers/FilterByValueTransformer/ValueMatchers/RegexMatcherEditor.tsx b/public/app/features/transformers/FilterByValueTransformer/ValueMatchers/RegexMatcherEditor.tsx index 451bcf65999..09fc5936cda 100644 --- a/public/app/features/transformers/FilterByValueTransformer/ValueMatchers/RegexMatcherEditor.tsx +++ b/public/app/features/transformers/FilterByValueTransformer/ValueMatchers/RegexMatcherEditor.tsx @@ -2,6 +2,7 @@ import { useCallback, useState } from 'react'; import * as React from 'react'; import { ValueMatcherID, BasicValueMatcherOptions } from '@grafana/data'; +import { t } from 'app/core/internationalization'; import { SuggestionsInput } from '../../suggestionsInput/SuggestionsInput'; import { getVariableSuggestions } from '../../utils'; @@ -32,7 +33,7 @@ export function regexMatcherEditor( invalid={isInvalid} value={value} onChange={onChangeVariableValue} - placeholder="Value or variable" + placeholder={t('transformers.regex-matcher-editor.placeholder-value-or-variable', 'Value or variable')} suggestions={getVariableSuggestions()} /> ); diff --git a/public/app/features/transformers/calculateHeatmap/editor/AxisEditor.tsx b/public/app/features/transformers/calculateHeatmap/editor/AxisEditor.tsx index c45de35235b..4ead9f3ea94 100644 --- a/public/app/features/transformers/calculateHeatmap/editor/AxisEditor.tsx +++ b/public/app/features/transformers/calculateHeatmap/editor/AxisEditor.tsx @@ -4,6 +4,7 @@ import { SelectableValue, StandardEditorProps, VariableOrigin } from '@grafana/d import { getTemplateSrv } from '@grafana/runtime'; import { HeatmapCalculationBucketConfig, HeatmapCalculationMode } from '@grafana/schema'; import { HorizontalGroup, RadioButtonGroup, ScaleDistribution } from '@grafana/ui'; +import { t } from 'app/core/internationalization'; import { SuggestionsInput } from '../../suggestionsInput/SuggestionsInput'; import { numberOrVariableValidator } from '../../utils'; @@ -82,7 +83,7 @@ export const AxisEditor = ({ value, onChange, item }: StandardEditorProps { onValueChange({ ...value, value: text }); }} diff --git a/public/app/features/transformers/configFromQuery/ConfigFromQueryTransformerEditor.tsx b/public/app/features/transformers/configFromQuery/ConfigFromQueryTransformerEditor.tsx index 87ffe52cbb3..e21d28bbd68 100644 --- a/public/app/features/transformers/configFromQuery/ConfigFromQueryTransformerEditor.tsx +++ b/public/app/features/transformers/configFromQuery/ConfigFromQueryTransformerEditor.tsx @@ -10,6 +10,7 @@ import { TransformerCategory, } from '@grafana/data'; import { fieldMatchersUI, InlineField, InlineFieldRow, Select, useStyles2 } from '@grafana/ui'; +import { t } from 'app/core/internationalization'; import { getTransformationContent } from '../docs/getTransformationContent'; import { FieldToConfigMappingEditor } from '../fieldToConfigMapping/FieldToConfigMappingEditor'; @@ -54,17 +55,27 @@ export function ConfigFromQueryTransformerEditor({ input, onChange, options }: P return ( <> - + - + - + - + - + diff --git a/public/app/features/transformers/editors/CalculateFieldTransformerEditor/CumulativeOptionsEditor.tsx b/public/app/features/transformers/editors/CalculateFieldTransformerEditor/CumulativeOptionsEditor.tsx index 5d8eb17ea1d..815484ecf5e 100644 --- a/public/app/features/transformers/editors/CalculateFieldTransformerEditor/CumulativeOptionsEditor.tsx +++ b/public/app/features/transformers/editors/CalculateFieldTransformerEditor/CumulativeOptionsEditor.tsx @@ -1,6 +1,7 @@ import { ReducerID, SelectableValue } from '@grafana/data'; import { CalculateFieldMode, CalculateFieldTransformerOptions, CumulativeOptions } from '@grafana/data/internal'; import { InlineField, Select, StatsPicker } from '@grafana/ui'; +import { t } from 'app/core/internationalization'; import { LABEL_WIDTH } from './constants'; @@ -36,16 +37,19 @@ export const CumulativeOptionsEditor = (props: { return ( <> - + - + - + - + - + + + )}
    diff --git a/public/app/features/transformers/editors/ConvertFieldTypeTransformerEditor.tsx b/public/app/features/transformers/editors/ConvertFieldTypeTransformerEditor.tsx index e331388cb3e..fe58688236e 100644 --- a/public/app/features/transformers/editors/ConvertFieldTypeTransformerEditor.tsx +++ b/public/app/features/transformers/editors/ConvertFieldTypeTransformerEditor.tsx @@ -15,6 +15,7 @@ import { import { ConvertFieldTypeOptions, ConvertFieldTypeTransformerOptions } from '@grafana/data/internal'; import { Button, InlineField, InlineFieldRow, Input, Select } from '@grafana/ui'; import { allFieldTypeIconOptions, FieldNamePicker } from '@grafana/ui/internal'; +import { t } from 'app/core/internationalization'; import { findField } from 'app/features/dimensions'; import { getTransformationContent } from '../docs/getTransformationContent'; @@ -150,7 +151,7 @@ export const ConvertFieldTypeTransformerEditor = ({ {c.destinationType === FieldType.time && ( {(c.joinWith?.length || targetField?.type === FieldType.other) && ( - + )} {targetField?.type === FieldType.time && ( <> - + - +
    - - - {withReducers && } - {hasAdditionalSettings && } + + + {withReducers && ( + + )} + {hasAdditionalSettings && ( + + )} diff --git a/public/app/features/transformers/joinByLabels/JoinByLabelsTransformerEditor.tsx b/public/app/features/transformers/joinByLabels/JoinByLabelsTransformerEditor.tsx index 7f1ff442f37..a11dc511dcb 100644 --- a/public/app/features/transformers/joinByLabels/JoinByLabelsTransformerEditor.tsx +++ b/public/app/features/transformers/joinByLabels/JoinByLabelsTransformerEditor.tsx @@ -9,6 +9,7 @@ import { TransformerCategory, } from '@grafana/data'; import { Alert, HorizontalGroup, InlineField, InlineFieldRow, Select, ValuePicker } from '@grafana/ui'; +import { t, Trans } from 'app/core/internationalization'; import { getTransformationContent } from '../docs/getTransformationContent'; import { getDistinctLabels } from '../utils'; @@ -29,9 +30,23 @@ export function JoinByLabelsTransformerEditor({ input, options, onChange }: Prop } if (!input.length) { - warn = No input (or labels) found; + warn = ( + + + No input (or labels) found + + + ); } else if (distinct.size === 0) { - warn = The input does not contain any labels; + warn = ( + + + The input does not contain any labels + + + ); } // Show the selected values @@ -97,7 +112,10 @@ export function JoinByLabelsTransformerEditor({ input, options, onChange }: Prop invalid={!Boolean(options.value?.length)} label={'Value'} labelWidth={labelWidth} - tooltip="Select the label indicating the values name" + tooltip={t( + 'transformers.join-by-labels-transformer-editor.tooltip-select-label-indicating-values', + 'Select the label indicating the values name' + )} > - +
    {(formats.find((v) => v.value === options.format) || formats[0]).info}
    diff --git a/public/app/features/transformers/regression/regressionEditor.tsx b/public/app/features/transformers/regression/regressionEditor.tsx index 4044035562d..85207f4b75d 100644 --- a/public/app/features/transformers/regression/regressionEditor.tsx +++ b/public/app/features/transformers/regression/regressionEditor.tsx @@ -12,6 +12,7 @@ import { import { InlineField, Select } from '@grafana/ui'; import { FieldNamePicker } from '@grafana/ui/internal'; import { NumberInput } from 'app/core/components/OptionsUI/NumberInput'; +import { t } from 'app/core/internationalization'; import { getTransformationContent } from '../docs/getTransformationContent'; @@ -74,7 +75,10 @@ export const RegressionTransformerEditor = ({ return ( <> - + - + - + - + { @@ -112,7 +126,10 @@ export const RegressionTransformerEditor = ({ > {options.modelType === ModelType.polynomial && ( - + value={options.degree ?? DEFAULTS.degree} options={[ diff --git a/public/app/features/transformers/timeSeriesTable/TimeSeriesTableTransformEditor.tsx b/public/app/features/transformers/timeSeriesTable/TimeSeriesTableTransformEditor.tsx index b8387e6889a..7e09fc1d1c5 100644 --- a/public/app/features/transformers/timeSeriesTable/TimeSeriesTableTransformEditor.tsx +++ b/public/app/features/transformers/timeSeriesTable/TimeSeriesTableTransformEditor.tsx @@ -12,6 +12,7 @@ import { isTimeSeriesField, } from '@grafana/data'; import { InlineFieldRow, InlineField, StatsPicker, Select, InlineLabel } from '@grafana/ui'; +import { t } from 'app/core/internationalization'; import { getTransformationContent } from '../docs/getTransformationContent'; @@ -89,7 +90,7 @@ export function TimeSeriesTableTransformEditor({ {`Trend #${refId}`}
    - - + + @@ -95,7 +99,7 @@ export function VariableEditorList({ onClick={onAdd} icon="plus" > - New variable + New variable diff --git a/public/app/features/variables/editor/VariableEditorListRow.tsx b/public/app/features/variables/editor/VariableEditorListRow.tsx index 7c5b6490c57..545b96327f7 100644 --- a/public/app/features/variables/editor/VariableEditorListRow.tsx +++ b/public/app/features/variables/editor/VariableEditorListRow.tsx @@ -6,6 +6,7 @@ import { GrafanaTheme2, TypedVariableModel } from '@grafana/data'; import { selectors } from '@grafana/e2e-selectors'; import { reportInteraction } from '@grafana/runtime'; import { Button, Icon, IconButton, useStyles2, useTheme2 } from '@grafana/ui'; +import { t } from 'app/core/internationalization'; import { hasOptions } from '../guard'; import { VariableUsagesButton } from '../inspect/VariableUsagesButton'; @@ -88,7 +89,7 @@ export function VariableEditorListRow({ propsOnDuplicate(identifier); }} name="copy" - tooltip="Duplicate variable" + tooltip={t('variables.variable-editor-list-row.tooltip-duplicate-variable', 'Duplicate variable')} aria-label={selectors.pages.Dashboard.Settings.Variables.List.tableRowDuplicateButtons(variable.name)} />
    @@ -138,7 +139,10 @@ function VariableCheckIndicator({ passed }: VariableCheckIndicatorProps): ReactE ); } @@ -147,7 +151,10 @@ function VariableCheckIndicator({ passed }: VariableCheckIndicatorProps): ReactE ); } diff --git a/public/app/features/variables/inspect/VariableUsagesButton.tsx b/public/app/features/variables/inspect/VariableUsagesButton.tsx index ca1f9e40c79..d40e83ff610 100644 --- a/public/app/features/variables/inspect/VariableUsagesButton.tsx +++ b/public/app/features/variables/inspect/VariableUsagesButton.tsx @@ -2,6 +2,7 @@ import { useMemo } from 'react'; import { reportInteraction } from '@grafana/runtime'; import { IconButton } from '@grafana/ui'; +import { t } from 'app/core/internationalization'; import { NetworkGraphModal } from './NetworkGraphModal'; import { UsagesToNetwork } from './utils'; @@ -35,7 +36,7 @@ export const VariableUsagesButton = ({ id, usages, isAdhoc }: Props) => { showModal(); }} name="code-branch" - tooltip="Show usages" + tooltip={t('variables.variable-usages-button.tooltip-show-usages', 'Show usages')} /> ); }} diff --git a/public/app/features/variables/inspect/VariablesDependenciesButton.tsx b/public/app/features/variables/inspect/VariablesDependenciesButton.tsx index a341637feb4..8901134e07f 100644 --- a/public/app/features/variables/inspect/VariablesDependenciesButton.tsx +++ b/public/app/features/variables/inspect/VariablesDependenciesButton.tsx @@ -3,6 +3,7 @@ import { useMemo } from 'react'; import { TypedVariableModel } from '@grafana/data'; import { reportInteraction } from '@grafana/runtime'; import { Button } from '@grafana/ui'; +import { t, Trans } from 'app/core/internationalization'; import { NetworkGraphModal } from './NetworkGraphModal'; import { createDependencyEdges, createDependencyNodes, filterNodesWithDependencies } from './utils'; @@ -22,7 +23,7 @@ export const VariablesDependenciesButton = ({ variables }: Props) => { return ( @@ -36,7 +37,7 @@ export const VariablesDependenciesButton = ({ variables }: Props) => { icon="channel-add" variant="secondary" > - Show dependencies + Show dependencies ); }} diff --git a/public/app/features/variables/inspect/VariablesUnknownButton.tsx b/public/app/features/variables/inspect/VariablesUnknownButton.tsx index ca60f473528..2c73b49b948 100644 --- a/public/app/features/variables/inspect/VariablesUnknownButton.tsx +++ b/public/app/features/variables/inspect/VariablesUnknownButton.tsx @@ -1,6 +1,7 @@ import { useMemo } from 'react'; import { IconButton } from '@grafana/ui'; +import { t } from 'app/core/internationalization'; import { NetworkGraphModal } from './NetworkGraphModal'; import { UsagesToNetwork } from './utils'; @@ -31,7 +32,7 @@ export const VariablesUnknownButton = ({ id, usages }: Props) => { showModal()} name="code-branch" - tooltip="Show usages" + tooltip={t('variables.variables-unknown-button.VariablesUnknownButton-tooltip-show-usages', 'Show usages')} data-testid="VariablesUnknownButton" /> ); diff --git a/public/app/features/variables/inspect/VariablesUnknownTable.tsx b/public/app/features/variables/inspect/VariablesUnknownTable.tsx index f197b584267..2c0dce367c7 100644 --- a/public/app/features/variables/inspect/VariablesUnknownTable.tsx +++ b/public/app/features/variables/inspect/VariablesUnknownTable.tsx @@ -5,6 +5,7 @@ import { useAsync } from 'react-use'; import { GrafanaTheme2 } from '@grafana/data'; import { reportInteraction } from '@grafana/runtime'; import { CollapsableSection, HorizontalGroup, Icon, Spinner, Tooltip, useStyles2, VerticalGroup } from '@grafana/ui'; +import { Trans } from 'app/core/internationalization'; import { DashboardModel } from '../../dashboard/state/DashboardModel'; import { VariableModel } from '../types'; @@ -57,7 +58,9 @@ export function VariablesUnknownTable({ variables, dashboard }: VariablesUnknown {loading && ( - Loading... + + Loading... + @@ -86,7 +89,13 @@ function CollapseLabel(): ReactElement { } function NoUnknowns(): ReactElement { - return No renamed or missing variables found.; + return ( + + + No renamed or missing variables found. + + + ); } function UnknownTable({ usages }: { usages: UsagesToNetwork[] }): ReactElement { @@ -95,7 +104,9 @@ function UnknownTable({ usages }: { usages: UsagesToNetwork[] }): ReactElement {
    FieldUse asSelectAdditional settings + Field + + Use as + + Select + + + Additional settings + +
    VariableDefinition + Variable + + Definition +
    - + diff --git a/public/app/features/variables/pickers/shared/VariableOptions.tsx b/public/app/features/variables/pickers/shared/VariableOptions.tsx index b31905f8b1b..041291a2ffd 100644 --- a/public/app/features/variables/pickers/shared/VariableOptions.tsx +++ b/public/app/features/variables/pickers/shared/VariableOptions.tsx @@ -121,7 +121,7 @@ class VariableOptions extends PureComponent { role="checkbox" aria-checked={selectedValues.length > 1 ? 'mixed' : 'false'} onClick={this.onToggleAll} - aria-label="Toggle all values" + aria-label={t('variables.variable-options.aria-label-toggle-all-values', 'Toggle all values')} data-placement="top" > void; @@ -32,7 +33,14 @@ export function QueryVariableRefreshSelect({ onChange, refresh, testId }: PropsW ); return ( - + - Text options + + Text options + ( - +
    Variable + Variable +
    Link + Link + {link.title} diff --git a/public/locales/en-US/grafana.json b/public/locales/en-US/grafana.json index f0f84ff36a0..0868a4cdbd0 100644 --- a/public/locales/en-US/grafana.json +++ b/public/locales/en-US/grafana.json @@ -4327,6 +4327,73 @@ "title": "You haven't created any service accounts yet" } }, + "serviceaccounts": { + "create-token-modal": { + "close": "Close", + "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", + "generate-token": "Generate token", + "label-display-name": "Display name", + "label-expiration": "Expiration", + "label-expiration-date": "Expiration date", + "label-token": "Token" + }, + "get-actions-cell": { + "add-token": "Add token", + "disable": "Disable", + "enable": "Enable" + }, + "get-role-cell": { + "aria-label-role": "Role" + }, + "service-account-list-item": { + "add-token": "Add token", + "aria-label-role": "Role", + "disable": "Disable", + "enable": "Enable", + "title-tokens": "Tokens" + }, + "service-account-page-unconnected": { + "add-service-account-token": "Add service account token", + "delete-service-account": "Delete service account", + "disable-service-account": "Disable service account", + "enable-service-account": "Enable service account", + "title-delete-service-account": "Delete service account", + "title-disable-service-account": "Disable service account", + "tokens": "Tokens" + }, + "service-account-permissions": { + "title-permissions": "Permissions" + }, + "service-account-profile": { + "information": "Information", + "label-creation-date": "Creation date", + "label-id": "ID", + "label-name": "Name", + "label-numerical-identifier": "Numerical identifier", + "label-roles": "Roles", + "used-by": "Used by" + }, + "service-account-role-row": { + "aria-label-role": "Role" + }, + "service-account-tokens-table": { + "created": "Created", + "expires": "Expires", + "last-used-at": "Last used at", + "name": "Name" + }, + "service-accounts-list-page-unconnected": { + "add-service-account": "Add service account", + "placeholder-search-service-account-by-name": "Search service account by name", + "title-delete-service-account": "Delete service account", + "title-disable-service-account": "Disable service account" + }, + "token-expiration": { + "never": "Never" + } + }, "share-dashboard": { "menu": { "export-json-title": "Export as JSON", @@ -4707,24 +4774,67 @@ } }, "trails": { + "add-to-filters-graph-action": { + "add-to-filters": "Add to filters" + }, "bookmarks": { "or-view-bookmarks": "Or view bookmarks" }, + "breakdown-search-scene": { + "placeholder-search-for-value": "Search for value" + }, + "build-normal-layout": { + "text-loading": "Loading..." + }, "card": { "date-created": "Date created: " }, + "create-bookmark-saved-notification": { + "view-bookmarks": "View bookmarks" + }, + "data-trail-card": { + "deleteButton-tooltip-remove-bookmark": "Remove bookmark" + }, + "data-trail-history": { + "history": "History" + }, + "data-trail-settings": { + "render-popover": { + "settings": "Settings" + } + }, "home": { "learn-more": "Learn more", "lets-start": "Let's start!", "start-your-metrics-exploration": "Start your metrics exploration!", "subtitle": "Explore your Prometheus-compatible metrics without writing a query." }, + "label-breakdown-scene": { + "label-search": "Search", + "label-view": "View" + }, + "metric-action-bar": { + "open": "Open", + "select-new-metric": "Select new metric", + "tooltip-open-in-explore": "Open in explore", + "tooltip-remove-existing-metric-choose": "Remove existing metric and choose a new metric" + }, "metric-select": { "filter-by": "Filter by", "native-histogram": "Native Histogram", "new-badge": "New", "otel-switch": "This switch enables filtering by OTel resources for OTel native data sources." }, + "metric-select-scene": { + "label-otel-experience": "OTel experience", + "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" + }, + "metrics-header": { + "explore-prometheuscompatible-metrics-without-writing-query": "Explore your Prometheus-compatible metrics without writing a query", + "metrics": "Metrics" + }, "native-histogram-banner": { "ch-heatmap": "Classic Histogram displayed as heatmap:", "ch-histogram": "Classic Histogram displayed as histogram:", @@ -4745,6 +4855,9 @@ "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": { + "tooltip-sorts-values-using-standard-smart-series": "Sorts values using standard or smart time series calculations." } }, "transformations": { @@ -4753,6 +4866,236 @@ "add-transformation-header": "Start transforming data" } }, + "transformers": { + "axis-editor": { + "placeholder-auto": "Auto" + }, + "basic-matcher-editor": { + "placeholder-value-or-variable": "Value or variable" + }, + "binary-operation-options-editor": { + "label-operation": "Operation", + "placeholder-field-or-number": "Field or number", + "placeholder-fields-or-number": "Field(s) or number" + }, + "calculate-field-transformer-editor": { + "label-alias": "Alias", + "label-mode": "Mode", + "label-replace-all-fields": "Replace all fields" + }, + "concatenate-transformer-editor": { + "label-label": "Label", + "label-name": "Name", + "placeholder-frame": "Frame" + }, + "config-from-query-transformer-editor": { + "label-apply-to": "Apply to", + "label-apply-to-options": "Apply to options", + "label-config-query": "Config query" + }, + "convert-field-type-transformer-editor": { + "label-date-format": "Date format", + "label-input-format": "Input format", + "label-join-with": "Join with", + "label-set-timezone": "Set timezone", + "tooltip-explicit-separator-joining-array-values": "Use an explicit separator when joining array values", + "tooltip-specify-the-output-format": "Specify the output format.", + "tooltip-timezone-manually": "Set the timezone of the date manually" + }, + "cumulative-options-editor": { + "label-calculation": "Calculation", + "label-field": "Field", + "placeholder-field": "Field" + }, + "draggable-field-name": { + "title-drag-and-drop-to-reorder": "Drag and drop to reorder" + }, + "enum-mapping-editor": { + "add-enum-value": "Add enum value", + "generate-enum-values-from-data": "Generate enum values from data" + }, + "enum-mapping-row": { + "remove-enum-row-aria-label-delete-enum-row": "Delete enum row", + "remove-enum-row-tooltip-delete": "Delete" + }, + "extract-fields-transformer-editor": { + "label-delimiter": "Delimiter", + "placeholder-select-delimiter": "Select delimiter..." + }, + "field-to-config-mapping-editor": { + "additional-settings": "Additional settings", + "field": "Field", + "select": "Select", + "use-as": "Use as" + }, + "filter-by-name-transformer-editor": { + "label-from-variable": "From variable", + "label-identifier": "Identifier", + "label-use-variable": "Use variable", + "label-variable": "Variable", + "placeholder-regular-expression-pattern": "Regular expression pattern" + }, + "filter-by-value-filter-editor": { + "label-field": "Field", + "label-match": "Match", + "label-value": "Value", + "placeholder-field-name": "Field name", + "placeholder-select-test": "Select test" + }, + "filter-by-value-transformer-editor": { + "add-condition": "Add condition", + "label-conditions": "Conditions", + "label-filter-type": "Filter type" + }, + "format-string-transfomer-editor": { + "label-format": "Format", + "label-substring-range": "Substring range" + }, + "format-time-transfomer-editor": { + "label-format": "Format", + "label-set-timezone": "Set timezone", + "label-time-field": "Time field", + "tooltip-timezone-manually": "Set the timezone of the date manually" + }, + "get-tooltips": { + "json-value": "JSON Value:" + }, + "group-by-field-configuration": { + "placeholder-ignored": "Ignored", + "placeholder-select-stats": "Select stats" + }, + "group-to-nested-table-transformer-editor": { + "label-show-field-names-in-nested-tables": "Show field names in nested tables" + }, + "grouping-to-matrix-transformer-editor": { + "label-cell-value": "Cell value", + "label-column": "Column", + "label-empty-value": "Empty value", + "label-row": "Row" + }, + "histogram-transformer-editor": { + "placeholder-default": "Default: 30" + }, + "index-options-editor": { + "label-as-percentile": "As percentile", + "tooltip-transform-index-percentile": "Transform the row index as a percentile." + }, + "join-by-labels-transformer-editor": { + "info": { + "input-contain-labels": "The input does not contain any labels", + "no-input-or-labels-found": "No input (or labels) found", + "title-no-input-found": "No input found", + "title-no-labels-found": "No labels found" + }, + "tooltip-select-label-indicating-values": "Select the label indicating the values name" + }, + "jsonpath-editor": { + "add-path": "Add path", + "label-alias": "Alias", + "label-field": "Field", + "placeholder-valid-objectvalue": "A valid json path, e.g. \"object.value1\" or \"object.value2[0]\"", + "tooltip-remove-path": "Remove path" + }, + "labels-as-fields-transformer-editor": { + "placeholder-optional-select-label": "(Optional) Select label", + "tooltip-replace-value-field-label": "Replace the value field name with a label" + }, + "limit-transformer-editor": { + "placeholder-value-or-variable": "Value or variable" + }, + "long-info": { + "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" + }, + "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", + "multiple-frames": "Multiple frames", + "string-values-are-represented-as-labels": "String values are represented as labels", + "time-in-ascending-order": "Time in ascending order" + }, + "partition-by-values-editor": { + "label-field": "Field", + "label-select-field": "Select field", + "partition-values-works-single-frame": "Partition by values only works with a single frame." + }, + "prepare-time-series-editor": { + "label-format": "Format", + "label-info": "Info" + }, + "range-matcher-editor": { + "and": "and", + "placeholder-from": "From", + "placeholder-to": "To" + }, + "reduce-row-options-editor": { + "label-calculation": "Calculation", + "label-operation": "Operation" + }, + "reduce-transformer-editor": { + "label-calculations": "Calculations", + "label-include-time": "Include time", + "label-labels-to-fields": "Labels to fields", + "label-mode": "Mode", + "placeholder-choose-stat": "Choose stat" + }, + "regex-matcher-editor": { + "placeholder-value-or-variable": "Value or variable" + }, + "regression-transformer-editor": { + "label-degree": "Degree", + "label-model-type": "Model type", + "label-predicted-points": "Predicted points", + "label-x-field": "X field", + "label-y-field": "Y field" + }, + "rename-by-regex-transformer-editor": { + "label-match": "Match", + "label-replace": "Replace", + "placeholder-regular-expression-pattern": "Regular expression pattern", + "placeholder-replacement-pattern": "Replacement pattern" + }, + "series-to-fields-transformer-editor": { + "label-field": "Field", + "label-mode": "Mode" + }, + "sort-by-transformer-editor": { + "label-field": "Field", + "label-reverse": "Reverse", + "placeholder-select-field": "Select field" + }, + "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." + }, + "transpose-transfomer-editor": { + "placeholder-field": "Field", + "placeholder-value": "Value" + }, + "unary-operation-editor": { + "label-operation": "Operation", + "placeholder-field": "Field" + }, + "wide-info": { + "multiple-value-fields-of-any-type": "Multiple value fields of any type", + "single-frame": "Single frame", + "st-field-is-shared-time": "1st field is shared time field", + "time-in-ascending-order": "Time in ascending order" + }, + "window-options-editor": { + "label-calculation": "Calculation", + "label-field": "Field", + "label-type": "Type", + "label-window-size-mode": "Window size mode", + "placeholder-auto": "Auto", + "placeholder-field": "Field" + } + }, "upgrade-box": { "discovery-text": "You’ve discovered a Pro feature!", "discovery-text-continued": "Get the Grafana Pro plan to access {{featureName}}.", @@ -4794,6 +5137,13 @@ "users": { "empty-state": { "message": "No users found" + }, + "token-revoked-modal": { + "sign-in": "Sign in" + }, + "users-action-bar-unconnected": { + "invite": "Invite", + "placeholder-search-login-email": "Search user by login, email or name" } }, "users-access-list": { @@ -4820,17 +5170,85 @@ } }, "variables": { + "ad-hoc-filter": { + "label-and": "AND" + }, + "confirm-delete-modal": { + "title-delete-variable": "Delete variable" + }, "empty-state": { "button-title": "Add variable", "info-box-content": "Variables enable more interactive and dynamic dashboards. Instead of hard-coding things like server or sensor names in your metric queries you can use variables in their place. Variables are shown as list boxes at the top of the dashboard. These drop-down lists make it easy to change the data being displayed in your dashboard.", "info-box-content-2": "Check out the <2>Templates and variables documentation for more information.", "title": "There are no variables added yet" }, + "legacy-variable-query-editor": { + "placeholder-metric-name-or-tags-query": "Metric name or tags query" + }, + "no-unknowns": { + "no-renamed-or-missing-variables-found": "No renamed or missing variables found." + }, + "query-variable-refresh-select": { + "description-update-values-variable": "When to update the values of this variable", + "label-refresh": "Refresh" + }, + "query-variable-sort-select": { + "description-values-variable": "How to sort the values of this variable" + }, + "text-box-variable-editor": { + "placeholder-default-value-if-any": "default value, if any", + "text-options": "Text options" + }, "unknown-table": { "loading": "Loading...", "no-unknowns": "No renamed or missing variables found.", "renamed-or-missing-variables": "Renamed or missing variables", "variable": "Variable" + }, + "variable-check-indicator": { + "title-variable-referenced-dashboard": "This variable is not referenced by any variable or dashboard.", + "title-variable-referenced-other-variables-dashboard": "This variable is referenced by other variables or dashboard." + }, + "variable-editor-editor-un-connected": { + "apply": "Apply", + "aria-label-variable-editor-form": "Variable editor Form", + "delete": "Delete", + "description-optional-display-name": "Optional display name", + "description-template-variable-characters": "The name of the template variable. (Max. 50 characters)", + "general": "General", + "placeholder-descriptive-text": "Descriptive text", + "placeholder-label-name": "Label name", + "placeholder-variable-name": "Variable name" + }, + "variable-editor-list": { + "definition": "Definition", + "new-variable": "New variable", + "variable": "Variable" + }, + "variable-editor-list-row": { + "tooltip-duplicate-variable": "Duplicate variable", + "tooltip-remove-variable": "Remove variable" + }, + "variable-options": { + "aria-label-toggle-all-values": "Toggle all values" + }, + "variable-usages-button": { + "tooltip-show-usages": "Show usages" + }, + "variables-dependencies-button": { + "show-dependencies": "Show dependencies", + "title-dependencies": "Dependencies" + }, + "variables-unknown-button": { + "VariablesUnknownButton-tooltip-show-usages": "Show usages" + }, + "variables-unknown-table": { + "loading": "Loading..." + } + }, + "visualization": { + "data-hover-view": { + "link": "Link" } } }