Compartir a través de


Carga de informes de varios idiomas

Para cargar informes de varios idiomas en el idioma del usuario, puede usar marcadores o insertar informes.

Uso de marcadores para seleccionar un idioma

Si tiene previsto publicar un informe de Power BI con las traducciones de datos al que los usuarios accedan mediante el servicio Power BI, debe cargar el informe con el idioma correcto para el usuario actual. Cree un conjunto de marcadores que apliquen filtros a la tabla Languages (Idiomas).

  1. Cree un marcador independiente para cada idioma que admita las traducciones de datos.

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

  2. Deshabilite Mostrar y Página actual y habilite solo el comportamiento de los datos.

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

  3. Para aplicar el marcador de un idioma específico, proporcione un segundo parámetro en la dirección URL del informe.

    ?language=es&bookmarkGuid=Bookmark856920573e02a8ab1c2a
    

    Este parámetro de dirección URL del informe se denomina bookmarkGuid. El filtrado de la tabla Languages (Idiomas) se aplica antes de que se muestren los datos al usuario.

Inserción de informes que implementan traducciones de datos

Cargar informes con la inserción de Power BI brinda más flexibilidad que el proceso de carga de informes para los usuarios que acceden al informe mediante el servicio Power BI. Puede cargar un informe con un idioma y una configuración regional específicos si extiende el objeto config que se pasa a powerbi.embed con un objeto localeSettings que contiene una propiedad language.

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);

Al insertar un informe con un objeto config como este, que establece la propiedad language del objeto localeSettings, las traducciones de metadatos y las traducciones de etiquetas de informes funcionan según lo previsto. Sin embargo, queda un paso más para filtrar la tabla Languages (Idiomas) para seleccionar el idioma adecuado para el usuario actual.

Es posible aplicar un marcador a un informe insertado. En su lugar, puede aplicar un filtro directamente en la tabla Languages (Idiomas) a medida que el informe se carga mediante la API de JavaScript de Power BI. No es necesario agregar marcadores para filtrar la tabla Languages (Idiomas) si solo va a usar un informe mediante la inserción de Power BI.

Para aplicar un filtrado durante el proceso de carga de un informe insertado, registre un controlador de eventos para el evento loaded. Al registrar un controlador de eventos para el evento loaded de un informe insertado, puede proporcionar un controlador de eventos de JavaScript que se ejecute antes de que comience el proceso de representación. Este enfoque hace que el evento loaded sea el lugar ideal para registrar un controlador de eventos cuyo propósito es aplicar el filtrado correcto en la tabla Languages (Idiomas).

Este es un ejemplo de código JavaScript que registra un controlador de eventos para que el evento loaded aplique un filtro a la tabla Languages (Idiomas) para español.

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);

});

Sugerencia

Al establecer los filtros con la API de JavaScript de Power BI, es preferible el método updateFilters sobre el método setFilters. El método updateFilters permite quitar filtros existentes mientras que setFilters no lo permite.