Udostępnij za pośrednictwem


Ładowanie raportów w wielu językach

Aby załadować raporty w wielu językach w języku użytkownika, możesz użyć zakładek lub osadzić raporty.

Wybieranie języka za pomocą zakładek

Jeśli planujesz opublikować raport usługi Power BI z tłumaczeniami danych na potrzeby dostępu użytkowników za pośrednictwem usługa Power BI, musisz załadować raport z poprawnym językiem dla bieżącego użytkownika. Utwórz zestaw zakładek, które stosują filtry do tabeli Languages .

  1. Utwórz oddzielną zakładkę dla każdego języka, który obsługuje tłumaczenia danych.

    Screenshot shows the Filters pane with a language selected and a corresponding bookmark.

  2. Wyłącz opcję Wyświetl i Bieżąca strona i włącz tylko zachowanie danych .

    Screenshot shows the context menu for a bookmark with Data selected.

  3. Aby zastosować zakładkę dla określonego języka, podaj drugi parametr w adresie URL raportu.

    ?language=es&bookmarkGuid=Bookmark856920573e02a8ab1c2a
    

    Ten parametr adresu URL raportu ma nazwę bookmarkGuid. Filtrowanie w tabeli Languages jest stosowane przed wyświetleniem wszelkich danych użytkownikowi.

Osadzanie raportów implementujących tłumaczenia danych

Ładowanie raportów przy użyciu osadzania usługi Power BI zapewnia większą elastyczność niż proces ładowania raportów dla użytkowników, którzy uzyskują dostęp do raportu za pośrednictwem usługa Power BI. Raport można załadować przy użyciu określonego języka i ustawień regionalnych, rozszerzając config obiekt przekazany do powerbi.embed obiektu zawierającego localeSettings language właściwość .

let config = {
  type: "report",
  id: reportId,
  embedUrl: embedUrl,
  accessToken: embedToken,
  tokenType: models.TokenType.Embed,
  localeSettings: { language: "de-DE" }
};

// embed report using config object
let report = powerbi.embed(reportContainer, config);

W przypadku osadzania raportu za pomocą obiektu konfiguracji, takiego jak ten, który ustawia właściwość języka obiektu ustawień regionalnych Ustawienia tłumaczenia metadanych i translacji etykiet raportu działają zgodnie z oczekiwaniami. Istnieje jednak jeszcze jeden krok wymagany do filtrowania tabeli Languages w celu wybrania odpowiedniego języka dla bieżącego użytkownika.

Istnieje możliwość zastosowania zakładki do osadzonego raportu. Zamiast tego można zastosować filtr bezpośrednio w tabeli Languages w miarę ładowania raportu przy użyciu interfejsu API języka JavaScript usługi Power BI. Nie ma potrzeby dodawania zakładek do filtrowania tabeli Languages , jeśli zamierzasz używać raportu tylko przy użyciu osadzania usługi Power BI.

Aby zastosować filtrowanie podczas ładowania osadzonego raportu, zarejestruj program obsługi zdarzeń dla loaded zdarzenia. Podczas rejestrowania programu obsługi zdarzeń dla zdarzenia osadzonego raportu loaded można udostępnić program obsługi zdarzeń języka JavaScript uruchamiany przed rozpoczęciem procesu renderowania. Takie podejście sprawia, loaded że zdarzenie jest idealnym miejscem do zarejestrowania programu obsługi zdarzeń, którego celem jest zastosowanie poprawnego filtrowania w tabeli Languages .

Oto przykład kodu JavaScript, który rejestruje procedurę obsługi zdarzeń dla loaded zdarzenia w celu zastosowania filtru do tabeli Languages dla języka hiszpańskiego.

let report = powerbi.embed(reportContainer, config);

report.on("loaded", async (event: any) => {

  // let's filter data translations for Spanish
  let languageToLoad = "es";

  // create filter object
  const filters = [{
    $schema: "http://powerbi.comproduct/schema#basic",
    target: {      table: "Languages", 
      column: "LanguageId"
    },
    operator: "In",  
    values: [ languageToLoad ], // <- Filter based on Spanish
    filterType: models.FilterType.Basic,
    requireSingleSelection: true
  }];

  // call updateFilters and pass filter object to set data translations to Spanish
  await report.updateFilters(models.FiltersOperations.Replace, filters);

});

Napiwek

W przypadku ustawiania filtrów przy użyciu interfejsu API języka JavaScript usługi Power BI należy preferować updateFilters metodę za pomocą setFilters metody . Metoda updateFilters umożliwia usunięcie istniejących filtrów, ale setFilters nie.