diff --git a/pkg/registry/apis/provisioning/secrets/repository.go b/pkg/registry/apis/provisioning/secrets/repository.go index 09ba78e1389..c6f90cc79b3 100644 --- a/pkg/registry/apis/provisioning/secrets/repository.go +++ b/pkg/registry/apis/provisioning/secrets/repository.go @@ -21,7 +21,7 @@ func ProvideRepositorySecrets( decryptSvc secret.DecryptService, cfg *setting.Cfg, ) RepositorySecrets { - return NewRepositorySecrets(features, NewSecretsService(secretsSvc, decryptSvc, cfg), NewSingleTenant(legacySecretsSvc)) + return NewRepositorySecrets(features, NewSecretsService(secretsSvc, decryptSvc, cfg.SecretsManagement.GrpcGrafanaServiceName), NewSingleTenant(legacySecretsSvc)) } //go:generate mockery --name RepositorySecrets --structname MockRepositorySecrets --inpackage --filename repository_secrets_mock.go --with-expecter diff --git a/pkg/registry/apis/provisioning/secrets/secret.go b/pkg/registry/apis/provisioning/secrets/secret.go index 9c58a1f39ae..19131b93765 100644 --- a/pkg/registry/apis/provisioning/secrets/secret.go +++ b/pkg/registry/apis/provisioning/secrets/secret.go @@ -11,7 +11,6 @@ import ( provisioning "github.com/grafana/grafana/apps/provisioning/pkg/apis/provisioning/v0alpha1" "github.com/grafana/grafana/pkg/registry/apis/secret" "github.com/grafana/grafana/pkg/registry/apis/secret/contracts" - "github.com/grafana/grafana/pkg/setting" ) const svcName = provisioning.GROUP @@ -30,16 +29,16 @@ var _ Service = (*secretsService)(nil) //go:generate mockery --name DecryptService --structname MockDecryptService --srcpkg=github.com/grafana/grafana/pkg/registry/apis/secret --filename decrypt_service_mock.go --with-expecter type secretsService struct { - secureValues SecureValueClient - decryptSvc secret.DecryptService - cfg *setting.Cfg + secureValues SecureValueClient + decryptSvc secret.DecryptService + decrypterServiceName string } -func NewSecretsService(secretsSvc SecureValueClient, decryptSvc secret.DecryptService, cfg *setting.Cfg) Service { +func NewSecretsService(secretsSvc SecureValueClient, decryptSvc secret.DecryptService, grpcGrafanaServiceName string) Service { return &secretsService{ - secureValues: secretsSvc, - decryptSvc: decryptSvc, - cfg: cfg, + secureValues: secretsSvc, + decryptSvc: decryptSvc, + decrypterServiceName: grpcGrafanaServiceName, } } @@ -78,8 +77,8 @@ func (s *secretsService) Encrypt(ctx context.Context, namespace, name string, da } decrypters := []string{svcName} - if s.cfg.SecretsManagement.GrpcGrafanaServiceName != "" { - decrypters = append(decrypters, s.cfg.SecretsManagement.GrpcGrafanaServiceName) + if s.decrypterServiceName != "" { + decrypters = append(decrypters, s.decrypterServiceName) } // Create the secret directly as unstructured diff --git a/pkg/registry/apis/provisioning/secrets/secret_test.go b/pkg/registry/apis/provisioning/secrets/secret_test.go index 744b9ccbd41..9fccd4cebbe 100644 --- a/pkg/registry/apis/provisioning/secrets/secret_test.go +++ b/pkg/registry/apis/provisioning/secrets/secret_test.go @@ -16,7 +16,6 @@ import ( secretv1beta1 "github.com/grafana/grafana/apps/secret/pkg/apis/secret/v1beta1" "github.com/grafana/grafana/pkg/registry/apis/secret" "github.com/grafana/grafana/pkg/registry/apis/secret/contracts" - "github.com/grafana/grafana/pkg/setting" ) // mockDynamicInterface implements a simplified version of the dynamic.ResourceInterface @@ -51,7 +50,7 @@ func TestNewSecretsService(t *testing.T) { mockSecretsSvc := NewMockSecureValueClient(t) mockDecryptSvc := &secret.MockDecryptService{} - svc := NewSecretsService(mockSecretsSvc, mockDecryptSvc, &setting.Cfg{}) + svc := NewSecretsService(mockSecretsSvc, mockDecryptSvc, "") assert.NotNil(t, svc) assert.IsType(t, &secretsService{}, svc) @@ -209,7 +208,7 @@ func TestSecretsService_Encrypt(t *testing.T) { tt.setupMocks(mockSecretsSvc, mockDecryptSvc, mockResourceInterface) - svc := NewSecretsService(mockSecretsSvc, mockDecryptSvc, &setting.Cfg{}) + svc := NewSecretsService(mockSecretsSvc, mockDecryptSvc, "") ctx := context.Background() @@ -233,7 +232,7 @@ func TestSecretsService_Encrypt_ClientError(t *testing.T) { // Setup client to return error mockSecretsSvc.EXPECT().Client(mock.Anything, "test-namespace").Return(nil, errors.New("client error")) - svc := NewSecretsService(mockSecretsSvc, mockDecryptSvc, &setting.Cfg{}) + svc := NewSecretsService(mockSecretsSvc, mockDecryptSvc, "") ctx := context.Background() @@ -336,7 +335,7 @@ func TestSecretsService_Decrypt(t *testing.T) { tt.setupMocks(mockSecretsSvc, mockDecryptSvc) - svc := NewSecretsService(mockSecretsSvc, mockDecryptSvc, &setting.Cfg{}) + svc := NewSecretsService(mockSecretsSvc, mockDecryptSvc, "") ctx := context.Background() @@ -374,7 +373,7 @@ func TestSecretsService_Decrypt_ServiceIdentityContext(t *testing.T) { "test-secret": mockResult, }, nil) - svc := NewSecretsService(mockSecretsSvc, mockDecryptSvc, &setting.Cfg{}) + svc := NewSecretsService(mockSecretsSvc, mockDecryptSvc, "") ctx := context.Background() result, err := svc.Decrypt(ctx, "test-namespace", "test-secret") @@ -436,7 +435,7 @@ func TestSecretsService_Delete(t *testing.T) { tt.setupMocks(mockSecretsSvc, mockDecryptSvc, mockResourceInterface) - svc := NewSecretsService(mockSecretsSvc, mockDecryptSvc, &setting.Cfg{}) + svc := NewSecretsService(mockSecretsSvc, mockDecryptSvc, "") ctx := context.Background() err := svc.Delete(ctx, tt.namespace, tt.secretName) @@ -521,7 +520,7 @@ func TestSecretsService_Encrypt_WithK8sNotFoundError(t *testing.T) { } mockResourceInterface.createErr = nil - svc := NewSecretsService(mockSecretsSvc, mockDecryptSvc, &setting.Cfg{}) + svc := NewSecretsService(mockSecretsSvc, mockDecryptSvc, "") ctx := context.Background() result, err := svc.Encrypt(ctx, "test-namespace", "test-secret", "secret-data") @@ -542,7 +541,7 @@ func TestSecretsService_Delete_WithK8sNotFoundError(t *testing.T) { k8sNotFoundErr := apierrors.NewNotFound(schema.GroupResource{Group: "secret.grafana.app", Resource: "securevalues"}, "test-secret") mockResourceInterface.deleteErr = k8sNotFoundErr - svc := NewSecretsService(mockSecretsSvc, mockDecryptSvc, &setting.Cfg{}) + svc := NewSecretsService(mockSecretsSvc, mockDecryptSvc, "") ctx := context.Background() err := svc.Delete(ctx, "test-namespace", "test-secret") @@ -563,7 +562,7 @@ func TestSecretsService_Delete_WithGrafanaNotFoundError(t *testing.T) { // Mock Delete call to return Grafana not found error mockResourceInterface.deleteErr = contracts.ErrSecureValueNotFound - svc := NewSecretsService(mockSecretsSvc, mockDecryptSvc, &setting.Cfg{}) + svc := NewSecretsService(mockSecretsSvc, mockDecryptSvc, "") ctx := context.Background() err := svc.Delete(ctx, "test-namespace", "test-secret") diff --git a/public/locales/cs-CZ/grafana.json b/public/locales/cs-CZ/grafana.json index 191e2bc4b3d..e64da24ddad 100644 --- a/public/locales/cs-CZ/grafana.json +++ b/public/locales/cs-CZ/grafana.json @@ -501,6 +501,11 @@ "title-muting-grouping-and-timings": "Ztlumení, seskupení a časování" }, "alert-manager-picker": { + "external-alertmanagers-group": "", + "extra-config-warning": { + "content": "", + "title": "" + }, "noOptionsMessage-no-datasources-found": "Nebyly nalezeny žádné zdroje dat" }, "alert-menu": { @@ -2487,6 +2492,7 @@ }, "empty-data-source": "Nebyla nalezena žádná pravidla", "error-button": "Chyba", + "export-all-grafana-rules": "", "filter-view": { "cancel-search": "Zrušit vyhledávání", "no-more-results": "Žádné další výsledky – nalezená pravidla: {{numberOfRules}}", @@ -4207,7 +4213,8 @@ } }, "connect-data": { - "category-header-label": "Zdroje dat", + "apps-header": "", + "datasources-header": "", "empty-message": "Nebyly nalezeny žádné výsledky odpovídající vašemu dotazu", "request-data-source": "Požádat o nový zdroj dat", "roadmap": "Zobrazit plán" @@ -6587,9 +6594,11 @@ "explore": "Prozkoumat" }, "edit-data-source-actions": { + "add-favorite": "", "build-a-dashboard": "Vytvořit nástěnku", "explore-data": "Prozkoumat data", - "open-in-explore": "" + "open-in-explore": "", + "remove-favorite": "" }, "error-details-link": { "aria-label-more-details-about-the-error": "Další podrobnosti o chybě" diff --git a/public/locales/de-DE/grafana.json b/public/locales/de-DE/grafana.json index 5bc88e83ba2..d0e17a078c2 100644 --- a/public/locales/de-DE/grafana.json +++ b/public/locales/de-DE/grafana.json @@ -493,6 +493,11 @@ "title-muting-grouping-and-timings": "Stummschaltung, Gruppierung und Zeitsteuerung" }, "alert-manager-picker": { + "external-alertmanagers-group": "", + "extra-config-warning": { + "content": "", + "title": "" + }, "noOptionsMessage-no-datasources-found": "Keine Datenquellen gefunden" }, "alert-menu": { @@ -2467,6 +2472,7 @@ }, "empty-data-source": "Keine Regeln gefunden", "error-button": "Fehler", + "export-all-grafana-rules": "", "filter-view": { "cancel-search": "Suche abbrechen", "no-more-results": "Keine weiteren Ergebnisse – {{numberOfRules}} Regeln gefunden", @@ -4171,7 +4177,8 @@ } }, "connect-data": { - "category-header-label": "Datenquellen", + "apps-header": "", + "datasources-header": "", "empty-message": "Es wurden keine Ergebnisse gefunden, die Ihrer Abfrage entsprechen", "request-data-source": "Neue Datenquelle anfordern", "roadmap": "Roadmap anzeigen" @@ -6545,9 +6552,11 @@ "explore": "Entdecken" }, "edit-data-source-actions": { + "add-favorite": "", "build-a-dashboard": "Dashboard erstellen", "explore-data": "Daten untersuchen", - "open-in-explore": "" + "open-in-explore": "", + "remove-favorite": "" }, "error-details-link": { "aria-label-more-details-about-the-error": "Weitere Details zum Fehler" diff --git a/public/locales/es-ES/grafana.json b/public/locales/es-ES/grafana.json index db2688eca8b..05912a5e5f9 100644 --- a/public/locales/es-ES/grafana.json +++ b/public/locales/es-ES/grafana.json @@ -493,6 +493,11 @@ "title-muting-grouping-and-timings": "Silencio, agrupación y temporización" }, "alert-manager-picker": { + "external-alertmanagers-group": "", + "extra-config-warning": { + "content": "", + "title": "" + }, "noOptionsMessage-no-datasources-found": "No se han encontrado fuentes de datos" }, "alert-menu": { @@ -2467,6 +2472,7 @@ }, "empty-data-source": "No se han encontrado reglas", "error-button": "Error", + "export-all-grafana-rules": "", "filter-view": { "cancel-search": "Cancelar búsqueda", "no-more-results": "No hay más resultados. Se han encontrado {{numberOfRules}} reglas", @@ -4171,7 +4177,8 @@ } }, "connect-data": { - "category-header-label": "Orígenes de datos", + "apps-header": "", + "datasources-header": "", "empty-message": "No se han encontrado resultados que coincidan con tu consulta", "request-data-source": "Solicitar una nueva fuente de datos", "roadmap": "Ver hoja de ruta" @@ -6545,9 +6552,11 @@ "explore": "Explorar" }, "edit-data-source-actions": { + "add-favorite": "", "build-a-dashboard": "Crear un dashboard", "explore-data": "Explorar datos", - "open-in-explore": "" + "open-in-explore": "", + "remove-favorite": "" }, "error-details-link": { "aria-label-more-details-about-the-error": "Más detalles sobre el error" diff --git a/public/locales/fr-FR/grafana.json b/public/locales/fr-FR/grafana.json index 86db61892e7..58b51d7b92a 100644 --- a/public/locales/fr-FR/grafana.json +++ b/public/locales/fr-FR/grafana.json @@ -493,6 +493,11 @@ "title-muting-grouping-and-timings": "Mise en sourdine, regroupement et horaires" }, "alert-manager-picker": { + "external-alertmanagers-group": "", + "extra-config-warning": { + "content": "", + "title": "" + }, "noOptionsMessage-no-datasources-found": "Aucune source de données trouvée" }, "alert-menu": { @@ -2467,6 +2472,7 @@ }, "empty-data-source": "Aucune règle trouvée", "error-button": "Erreur", + "export-all-grafana-rules": "", "filter-view": { "cancel-search": "Annuler la recherche", "no-more-results": "Plus aucun résultat : {{numberOfRules}} règles trouvées", @@ -4171,7 +4177,8 @@ } }, "connect-data": { - "category-header-label": "Sources de données", + "apps-header": "", + "datasources-header": "", "empty-message": "Aucun résultat correspondant à votre requête n'a été trouvé", "request-data-source": "Demander une nouvelle source de données", "roadmap": "Voir la feuille de route" @@ -6545,9 +6552,11 @@ "explore": "Explorer" }, "edit-data-source-actions": { + "add-favorite": "", "build-a-dashboard": "Créer un tableau de bord", "explore-data": "Explorer les données", - "open-in-explore": "" + "open-in-explore": "", + "remove-favorite": "" }, "error-details-link": { "aria-label-more-details-about-the-error": "Plus de détails sur l’erreur" diff --git a/public/locales/hu-HU/grafana.json b/public/locales/hu-HU/grafana.json index 47e53c0d620..7d58b837fab 100644 --- a/public/locales/hu-HU/grafana.json +++ b/public/locales/hu-HU/grafana.json @@ -493,6 +493,11 @@ "title-muting-grouping-and-timings": "Némítás, csoportosítás és időzítés" }, "alert-manager-picker": { + "external-alertmanagers-group": "", + "extra-config-warning": { + "content": "", + "title": "" + }, "noOptionsMessage-no-datasources-found": "Nem található adatforrás" }, "alert-menu": { @@ -2467,6 +2472,7 @@ }, "empty-data-source": "Nem található szabály", "error-button": "Hiba", + "export-all-grafana-rules": "", "filter-view": { "cancel-search": "Keresés visszavonása", "no-more-results": "Nincs több találat – {{numberOfRules}} szabályt sikerült találni", @@ -4171,7 +4177,8 @@ } }, "connect-data": { - "category-header-label": "Adatforrások", + "apps-header": "", + "datasources-header": "", "empty-message": "Nincs találat a lekérdezésre", "request-data-source": "Új adatforrás kérése", "roadmap": "Ütemterv megtekintése" @@ -6545,9 +6552,11 @@ "explore": "Explore" }, "edit-data-source-actions": { + "add-favorite": "", "build-a-dashboard": "Irányítópult létrehozása", "explore-data": "Adatok felfedezése", - "open-in-explore": "" + "open-in-explore": "", + "remove-favorite": "" }, "error-details-link": { "aria-label-more-details-about-the-error": "További részletek a hibáról" diff --git a/public/locales/id-ID/grafana.json b/public/locales/id-ID/grafana.json index 263e9aeacd7..c38637f7ba6 100644 --- a/public/locales/id-ID/grafana.json +++ b/public/locales/id-ID/grafana.json @@ -489,6 +489,11 @@ "title-muting-grouping-and-timings": "Pembisuan, pengelompokan, dan pengaturan waktu" }, "alert-manager-picker": { + "external-alertmanagers-group": "", + "extra-config-warning": { + "content": "", + "title": "" + }, "noOptionsMessage-no-datasources-found": "Tidak ada sumber data yang ditemukan" }, "alert-menu": { @@ -2457,6 +2462,7 @@ }, "empty-data-source": "Tidak ada aturan yang ditemukan", "error-button": "Kesalahan", + "export-all-grafana-rules": "", "filter-view": { "cancel-search": "Batalkan pencarian", "no-more-results": "Tidak ada hasil lagi – {{numberOfRules}} aturan ditemukan", @@ -4153,7 +4159,8 @@ } }, "connect-data": { - "category-header-label": "Sumber data", + "apps-header": "", + "datasources-header": "", "empty-message": "Hasil yang cocok dengan kueri Anda tidak ditemukan", "request-data-source": "Minta sumber data baru", "roadmap": "Lihat peta jalan" @@ -6524,9 +6531,11 @@ "explore": "Jelajahi" }, "edit-data-source-actions": { + "add-favorite": "", "build-a-dashboard": "Buat dasbor", "explore-data": "Jelajahi data", - "open-in-explore": "" + "open-in-explore": "", + "remove-favorite": "" }, "error-details-link": { "aria-label-more-details-about-the-error": "Detail lebih lanjut tentang kesalahan" diff --git a/public/locales/it-IT/grafana.json b/public/locales/it-IT/grafana.json index 3fa1b26e232..31c16a2cb1f 100644 --- a/public/locales/it-IT/grafana.json +++ b/public/locales/it-IT/grafana.json @@ -493,6 +493,11 @@ "title-muting-grouping-and-timings": "Disattivazione audio, raggruppamento e orari" }, "alert-manager-picker": { + "external-alertmanagers-group": "", + "extra-config-warning": { + "content": "", + "title": "" + }, "noOptionsMessage-no-datasources-found": "Nessuna fonte dati trovata" }, "alert-menu": { @@ -2467,6 +2472,7 @@ }, "empty-data-source": "Nessuna regola trovata", "error-button": "Errore", + "export-all-grafana-rules": "", "filter-view": { "cancel-search": "Annulla ricerca", "no-more-results": "Nessun altro risultato: {{numberOfRules}} regole trovate", @@ -4171,7 +4177,8 @@ } }, "connect-data": { - "category-header-label": "Fonti dei dati", + "apps-header": "", + "datasources-header": "", "empty-message": "Nessun risultato trovato corrisponde alla tua ricerca", "request-data-source": "Richiedi una nuova origine dati", "roadmap": "Visualizza roadmap" @@ -6545,9 +6552,11 @@ "explore": "Esplora" }, "edit-data-source-actions": { + "add-favorite": "", "build-a-dashboard": "Crea una dashboard", "explore-data": "Esplora i dati", - "open-in-explore": "" + "open-in-explore": "", + "remove-favorite": "" }, "error-details-link": { "aria-label-more-details-about-the-error": "Maggiori dettagli sull'errore" diff --git a/public/locales/ja-JP/grafana.json b/public/locales/ja-JP/grafana.json index 32b5d0a9cbf..ca2986e06b0 100644 --- a/public/locales/ja-JP/grafana.json +++ b/public/locales/ja-JP/grafana.json @@ -489,6 +489,11 @@ "title-muting-grouping-and-timings": "ミュート、グループ化、タイミング" }, "alert-manager-picker": { + "external-alertmanagers-group": "", + "extra-config-warning": { + "content": "", + "title": "" + }, "noOptionsMessage-no-datasources-found": "データソースが見つかりません" }, "alert-menu": { @@ -2457,6 +2462,7 @@ }, "empty-data-source": "ルールが見つかりません", "error-button": "エラー", + "export-all-grafana-rules": "", "filter-view": { "cancel-search": "検索をキャンセル", "no-more-results": "これ以上の結果はありません – {{numberOfRules}}件のルールが見つかりました", @@ -4153,7 +4159,8 @@ } }, "connect-data": { - "category-header-label": "データソース", + "apps-header": "", + "datasources-header": "", "empty-message": "クエリに一致する結果が見つかりませんでした", "request-data-source": "新しいデータソースをリクエストする", "roadmap": "ロードマップを表示" @@ -6524,9 +6531,11 @@ "explore": "探検" }, "edit-data-source-actions": { + "add-favorite": "", "build-a-dashboard": "ダッシュボードを作成", "explore-data": "データを調査", - "open-in-explore": "" + "open-in-explore": "", + "remove-favorite": "" }, "error-details-link": { "aria-label-more-details-about-the-error": "エラーの詳細" diff --git a/public/locales/ko-KR/grafana.json b/public/locales/ko-KR/grafana.json index 8027efb70e9..b3196f8878a 100644 --- a/public/locales/ko-KR/grafana.json +++ b/public/locales/ko-KR/grafana.json @@ -489,6 +489,11 @@ "title-muting-grouping-and-timings": "알림 비활성화, 그룹화 및 타이밍" }, "alert-manager-picker": { + "external-alertmanagers-group": "", + "extra-config-warning": { + "content": "", + "title": "" + }, "noOptionsMessage-no-datasources-found": "데이터 소스를 찾을 수 없습니다" }, "alert-menu": { @@ -2457,6 +2462,7 @@ }, "empty-data-source": "규칙을 찾을 수 없습니다", "error-button": "오류", + "export-all-grafana-rules": "", "filter-view": { "cancel-search": "검색 취소", "no-more-results": "더 이상 결과 없음 – {{numberOfRules}}개의 규칙 찾음", @@ -4153,7 +4159,8 @@ } }, "connect-data": { - "category-header-label": "데이터 소스", + "apps-header": "", + "datasources-header": "", "empty-message": "쿼리와 일치하는 결과를 찾을 수 없음", "request-data-source": "새 데이터 소스 요청", "roadmap": "로드맵 보기" @@ -6524,9 +6531,11 @@ "explore": "탐색" }, "edit-data-source-actions": { + "add-favorite": "", "build-a-dashboard": "대시보드 구축", "explore-data": "데이터 탐색", - "open-in-explore": "" + "open-in-explore": "", + "remove-favorite": "" }, "error-details-link": { "aria-label-more-details-about-the-error": "오류에 대한 자세한 정보" diff --git a/public/locales/nl-NL/grafana.json b/public/locales/nl-NL/grafana.json index ddef727192b..796c4213e22 100644 --- a/public/locales/nl-NL/grafana.json +++ b/public/locales/nl-NL/grafana.json @@ -493,6 +493,11 @@ "title-muting-grouping-and-timings": "Dempen, groeperen en timings" }, "alert-manager-picker": { + "external-alertmanagers-group": "", + "extra-config-warning": { + "content": "", + "title": "" + }, "noOptionsMessage-no-datasources-found": "Geen gegevensbronnen gevonden" }, "alert-menu": { @@ -2467,6 +2472,7 @@ }, "empty-data-source": "Geen regels gevonden", "error-button": "Fout", + "export-all-grafana-rules": "", "filter-view": { "cancel-search": "Zoekopdracht annuleren", "no-more-results": "Geen resultaten - {{numberOfRules}} regels gevonden", @@ -4171,7 +4177,8 @@ } }, "connect-data": { - "category-header-label": "Gegevensbronnen", + "apps-header": "", + "datasources-header": "", "empty-message": "Er zijn geen resultaten gevonden die overeenkomen met je query", "request-data-source": "Een nieuwe gegevensbron aanvragen", "roadmap": "Routekaart weergeven" @@ -6545,9 +6552,11 @@ "explore": "Verkennen" }, "edit-data-source-actions": { + "add-favorite": "", "build-a-dashboard": "Maak een dashboard", "explore-data": "Gegevens verkennen", - "open-in-explore": "" + "open-in-explore": "", + "remove-favorite": "" }, "error-details-link": { "aria-label-more-details-about-the-error": "Meer informatie over de fout" diff --git a/public/locales/pl-PL/grafana.json b/public/locales/pl-PL/grafana.json index 9ad579318b0..420e5e613be 100644 --- a/public/locales/pl-PL/grafana.json +++ b/public/locales/pl-PL/grafana.json @@ -501,6 +501,11 @@ "title-muting-grouping-and-timings": "Wyciszanie, grupowanie i harmonogramy" }, "alert-manager-picker": { + "external-alertmanagers-group": "", + "extra-config-warning": { + "content": "", + "title": "" + }, "noOptionsMessage-no-datasources-found": "Nie znaleziono źródeł danych" }, "alert-menu": { @@ -2487,6 +2492,7 @@ }, "empty-data-source": "Nie znaleziono reguł", "error-button": "Błąd", + "export-all-grafana-rules": "", "filter-view": { "cancel-search": "Anuluj wyszukiwanie", "no-more-results": "Nie ma więcej wyników – liczba znalezionych reguł: {{numberOfRules}}", @@ -4207,7 +4213,8 @@ } }, "connect-data": { - "category-header-label": "Źródła danych", + "apps-header": "", + "datasources-header": "", "empty-message": "Nie znaleziono wyników pasujących do Twojego zapytania", "request-data-source": "Poproś o nowe źródło danych", "roadmap": "Widok etapów" @@ -6587,9 +6594,11 @@ "explore": "Eksploruj" }, "edit-data-source-actions": { + "add-favorite": "", "build-a-dashboard": "Utwórz pulpit", "explore-data": "Przeglądaj dane", - "open-in-explore": "" + "open-in-explore": "", + "remove-favorite": "" }, "error-details-link": { "aria-label-more-details-about-the-error": "Więcej informacji o błędzie" diff --git a/public/locales/pt-BR/grafana.json b/public/locales/pt-BR/grafana.json index 44590492e26..0b1e15c8a82 100644 --- a/public/locales/pt-BR/grafana.json +++ b/public/locales/pt-BR/grafana.json @@ -493,6 +493,11 @@ "title-muting-grouping-and-timings": "Silenciamento, agrupamento e cronogramas" }, "alert-manager-picker": { + "external-alertmanagers-group": "", + "extra-config-warning": { + "content": "", + "title": "" + }, "noOptionsMessage-no-datasources-found": "Nenhuma fonte de dados encontrada" }, "alert-menu": { @@ -2467,6 +2472,7 @@ }, "empty-data-source": "Nenhuma regra encontrada", "error-button": "Erro", + "export-all-grafana-rules": "", "filter-view": { "cancel-search": "Cancelar pesquisa", "no-more-results": "Não há mais resultados. Foram encontradas {{numberOfRules}} regras", @@ -4171,7 +4177,8 @@ } }, "connect-data": { - "category-header-label": "Fontes de dados", + "apps-header": "", + "datasources-header": "", "empty-message": "Nenhum resultado foi encontrado para a sua consulta", "request-data-source": "Solicitar uma nova fonte de dados", "roadmap": "Ver roteiro" @@ -6545,9 +6552,11 @@ "explore": "Explorar" }, "edit-data-source-actions": { + "add-favorite": "", "build-a-dashboard": "Criar um painel", "explore-data": "Explorar dados", - "open-in-explore": "" + "open-in-explore": "", + "remove-favorite": "" }, "error-details-link": { "aria-label-more-details-about-the-error": "Mais detalhes sobre o erro" diff --git a/public/locales/pt-PT/grafana.json b/public/locales/pt-PT/grafana.json index f6580c073ab..d00ab726ab9 100644 --- a/public/locales/pt-PT/grafana.json +++ b/public/locales/pt-PT/grafana.json @@ -493,6 +493,11 @@ "title-muting-grouping-and-timings": "Silêncio, agrupamento e tempos" }, "alert-manager-picker": { + "external-alertmanagers-group": "", + "extra-config-warning": { + "content": "", + "title": "" + }, "noOptionsMessage-no-datasources-found": "Nenhuma fonte de dados encontrada" }, "alert-menu": { @@ -2467,6 +2472,7 @@ }, "empty-data-source": "Nenhuma regra encontrada", "error-button": "Erro", + "export-all-grafana-rules": "", "filter-view": { "cancel-search": "Cancelar pesquisa", "no-more-results": "Não existem mais resultados – {{numberOfRules}} regras encontradas", @@ -4171,7 +4177,8 @@ } }, "connect-data": { - "category-header-label": "Origens de dados", + "apps-header": "", + "datasources-header": "", "empty-message": "Não foram encontrados resultados que correspondam à sua consulta", "request-data-source": "Solicitar uma nova origem de dados", "roadmap": "Ver roteiro" @@ -6545,9 +6552,11 @@ "explore": "Explorar" }, "edit-data-source-actions": { + "add-favorite": "", "build-a-dashboard": "Criar um painel de controlo", "explore-data": "Explorar dados", - "open-in-explore": "" + "open-in-explore": "", + "remove-favorite": "" }, "error-details-link": { "aria-label-more-details-about-the-error": "Mais detalhes sobre o erro" diff --git a/public/locales/ru-RU/grafana.json b/public/locales/ru-RU/grafana.json index c3c14958ddd..bfd88914620 100644 --- a/public/locales/ru-RU/grafana.json +++ b/public/locales/ru-RU/grafana.json @@ -501,6 +501,11 @@ "title-muting-grouping-and-timings": "Отключение звука, группировка и определение времени" }, "alert-manager-picker": { + "external-alertmanagers-group": "", + "extra-config-warning": { + "content": "", + "title": "" + }, "noOptionsMessage-no-datasources-found": "Источники данных не найдены" }, "alert-menu": { @@ -2487,6 +2492,7 @@ }, "empty-data-source": "Правила не найдены", "error-button": "Ошибка", + "export-all-grafana-rules": "", "filter-view": { "cancel-search": "Отменить поиск", "no-more-results": "Больше нет результатов. Найдено правил: {{numberOfRules}}", @@ -4207,7 +4213,8 @@ } }, "connect-data": { - "category-header-label": "Источники данных", + "apps-header": "", + "datasources-header": "", "empty-message": "По вашему запросу ничего не найдено", "request-data-source": "Запросить новый источник данных", "roadmap": "Просмотр дорожной карты" @@ -6587,9 +6594,11 @@ "explore": "Explore" }, "edit-data-source-actions": { + "add-favorite": "", "build-a-dashboard": "Создать дашборд", "explore-data": "Просмотреть данные", - "open-in-explore": "" + "open-in-explore": "", + "remove-favorite": "" }, "error-details-link": { "aria-label-more-details-about-the-error": "Подробнее об ошибке" diff --git a/public/locales/sv-SE/grafana.json b/public/locales/sv-SE/grafana.json index 4418ba363fa..d7b44f1827d 100644 --- a/public/locales/sv-SE/grafana.json +++ b/public/locales/sv-SE/grafana.json @@ -493,6 +493,11 @@ "title-muting-grouping-and-timings": "Tystnad, gruppering och tidsinställningar" }, "alert-manager-picker": { + "external-alertmanagers-group": "", + "extra-config-warning": { + "content": "", + "title": "" + }, "noOptionsMessage-no-datasources-found": "Inga datakällor hittades" }, "alert-menu": { @@ -2467,6 +2472,7 @@ }, "empty-data-source": "Inga regler hittades", "error-button": "Fel", + "export-all-grafana-rules": "", "filter-view": { "cancel-search": "Avbryt sökning", "no-more-results": "Inga fler resultat – hittade {{numberOfRules}} regler", @@ -4171,7 +4177,8 @@ } }, "connect-data": { - "category-header-label": "Datakällor", + "apps-header": "", + "datasources-header": "", "empty-message": "Inga resultat som matchar din fråga hittades", "request-data-source": "Begär en ny datakälla", "roadmap": "Visa planering" @@ -6545,9 +6552,11 @@ "explore": "Utforska" }, "edit-data-source-actions": { + "add-favorite": "", "build-a-dashboard": "Bygg en instrumentpanel", "explore-data": "Utforska data", - "open-in-explore": "" + "open-in-explore": "", + "remove-favorite": "" }, "error-details-link": { "aria-label-more-details-about-the-error": "Mer information om felet" diff --git a/public/locales/tr-TR/grafana.json b/public/locales/tr-TR/grafana.json index 3f660db45cc..71411fabcdd 100644 --- a/public/locales/tr-TR/grafana.json +++ b/public/locales/tr-TR/grafana.json @@ -493,6 +493,11 @@ "title-muting-grouping-and-timings": "Sessize alma, gruplandırma ve zamanlamalar" }, "alert-manager-picker": { + "external-alertmanagers-group": "", + "extra-config-warning": { + "content": "", + "title": "" + }, "noOptionsMessage-no-datasources-found": "Veri kaynağı bulunamadı" }, "alert-menu": { @@ -2467,6 +2472,7 @@ }, "empty-data-source": "Kural bulunamadı", "error-button": "Hata", + "export-all-grafana-rules": "", "filter-view": { "cancel-search": "Aramayı iptal et", "no-more-results": "Başka sonuç yok - {{numberOfRules}} kural bulundu", @@ -4171,7 +4177,8 @@ } }, "connect-data": { - "category-header-label": "Veri kaynakları", + "apps-header": "", + "datasources-header": "", "empty-message": "Sorgunuzla eşleşen sonuç bulunamadı", "request-data-source": "Yeni veri kaynağı talep et", "roadmap": "Yol haritasını görüntüle" @@ -6545,9 +6552,11 @@ "explore": "Keşfet" }, "edit-data-source-actions": { + "add-favorite": "", "build-a-dashboard": "Pano oluştur", "explore-data": "Verileri keşfedin", - "open-in-explore": "" + "open-in-explore": "", + "remove-favorite": "" }, "error-details-link": { "aria-label-more-details-about-the-error": "Hata hakkında daha fazla bilgi" diff --git a/public/locales/zh-Hans/grafana.json b/public/locales/zh-Hans/grafana.json index 17abd39c60e..542150c3144 100644 --- a/public/locales/zh-Hans/grafana.json +++ b/public/locales/zh-Hans/grafana.json @@ -489,6 +489,11 @@ "title-muting-grouping-and-timings": "静音、分组和时间设定" }, "alert-manager-picker": { + "external-alertmanagers-group": "", + "extra-config-warning": { + "content": "", + "title": "" + }, "noOptionsMessage-no-datasources-found": "未找到数据源" }, "alert-menu": { @@ -2457,6 +2462,7 @@ }, "empty-data-source": "未找到规则", "error-button": "错误", + "export-all-grafana-rules": "", "filter-view": { "cancel-search": "取消搜索", "no-more-results": "没有更多结果 – 找到 {{numberOfRules}} 个规则", @@ -4153,7 +4159,8 @@ } }, "connect-data": { - "category-header-label": "数据源", + "apps-header": "", + "datasources-header": "", "empty-message": "未找到与您的查询匹配的结果", "request-data-source": "请求新的数据源", "roadmap": "查看路线图" @@ -6524,9 +6531,11 @@ "explore": "探索" }, "edit-data-source-actions": { + "add-favorite": "", "build-a-dashboard": "构建数据面板", "explore-data": "浏览数据", - "open-in-explore": "" + "open-in-explore": "", + "remove-favorite": "" }, "error-details-link": { "aria-label-more-details-about-the-error": "有关错误的更多详情" diff --git a/public/locales/zh-Hant/grafana.json b/public/locales/zh-Hant/grafana.json index cc7b70ab485..a03d8f5cc20 100644 --- a/public/locales/zh-Hant/grafana.json +++ b/public/locales/zh-Hant/grafana.json @@ -489,6 +489,11 @@ "title-muting-grouping-and-timings": "靜音、分組和時間" }, "alert-manager-picker": { + "external-alertmanagers-group": "", + "extra-config-warning": { + "content": "", + "title": "" + }, "noOptionsMessage-no-datasources-found": "未找到資料來源" }, "alert-menu": { @@ -2457,6 +2462,7 @@ }, "empty-data-source": "未找到規則", "error-button": "錯誤", + "export-all-grafana-rules": "", "filter-view": { "cancel-search": "取消搜尋", "no-more-results": "沒有更多結果 – 找到 {{numberOfRules}} 個規則", @@ -4153,7 +4159,8 @@ } }, "connect-data": { - "category-header-label": "資料來源", + "apps-header": "", + "datasources-header": "", "empty-message": "未找到符合您查詢的結果", "request-data-source": "請求新的資料來源", "roadmap": "檢視藍圖" @@ -6524,9 +6531,11 @@ "explore": "探索" }, "edit-data-source-actions": { + "add-favorite": "", "build-a-dashboard": "建立儀表板", "explore-data": "探索資料", - "open-in-explore": "" + "open-in-explore": "", + "remove-favorite": "" }, "error-details-link": { "aria-label-more-details-about-the-error": "有關錯誤的更多詳細資料"