Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Si vous implémentez des traductions de données, vous pouvez ajouter la prise en charge de la traduction pour les colonnes basées sur du texte dans les tables de calendrier. Ces tableaux incluent des traductions pour les noms des mois ou des jours de la semaine. Cette approche vous permet de créer des visuels qui mention jours ou mois.
Les versions traduites facilitent la lecture du visuel dans les langues prises en charge.
La stratégie décrite dans cet article pour les traductions de colonnes de table de calendrier utilise Power Query et le langage de requête M. Power Query fournit des fonctions intégrées, telles que Date.MonthName
, qui acceptent un paramètre Date
et retournent un nom de calendrier textuel. Si votre projet .pbix a en-US comme langue et paramètres régionaux par défaut, l’appel de fonction Power Query suivant correspond à une valeur de janvier basée sur le texte.
Date.MonthName( #date(2023, 1, 1) )
La fonction Date.MonthName
accepte un deuxième paramètre de chaîne facultatif pour passer une langue et des paramètres régionaux spécifiques.
Date.MonthName( #date(2023, 1, 1), "en-US")
Si vous souhaitez traduire le nom du mois en Français, vous pouvez passer une valeur de texte de fr-FR.
Date.MonthName( #date(2022, 12, 1), "fr-FR")
Générer une table de traduction de calendrier
Examinez la table Langues utilisée dans les exemples précédents. Il inclut une colonne DefaultCulture.
Power Query repose sur un langage de requête fonctionnel nommé M. Avec cette langue, vous pouvez itérer dans les lignes de la table Langues pour découvrir quelles langues et quelles cultures par défaut le projet prend en charge. Vous pouvez écrire une requête qui utilise la table Languages comme source pour générer une table de traduction de calendrier avec les noms des mois ou des jours de la semaine.
Voici le code M qui génère la table Des noms de mois traduits.
let
Source = #table( type table [ MonthNumber = Int64.Type ], List.Split({1..12},1)),
Translations = Table.AddColumn( Source, "Translations",
each
[ MonthDate = #date( 2022, [ MonthNumber ], 1 ),
Translations = List.Transform(Languages[DefaultCulture], each Date.MonthName( MonthDate, _ ) ),
TranslationTable = Table.FromList( Translations, null ),
TranslationsTranspose = Table.Transpose(TranslationTable),
TranslationsColumns = Table.RenameColumns(
TranslationsTranspose,
List.Zip({ Table.ColumnNames( TranslationsTranspose ),
List.Transform(Languages[Language],
each "MonthNameTranslations" & _ ) })
)
]
),
ExpandedTranslations = Table.ExpandRecordColumn(Translations,
"Translations",
{ "TranslationsColumns" },
{ "TranslationsColumns" }),
ColumnsCollection = List.Transform(Languages[Language], each "MonthNameTranslations" & _ ),
ExpandedTranslationsColumns = Table.ExpandTableColumn(ExpandedTranslations,
"TranslationsColumns",
ColumnsCollection,
ColumnsCollection ),
TypedColumnsCollection = List.Transform(ColumnsCollection, each {_, type text}),
QueryOutput = Table.TransformColumnTypes(ExpandedTranslationsColumns, TypedColumnsCollection)
in
QueryOutput
Conseil
Vous pouvez simplement copier et coller le code M de l’exemple ProductSalesMultiLanguage.pbix chaque fois que vous avez besoin d’ajouter des tables de traduction de calendrier à votre projet.
Si la table Langues contient quatre lignes pour l’anglais, l’espagnol, le français et l’allemand, la requête Table des noms de mois traduits génère une table avec quatre colonnes de traduction, comme illustré dans la capture d’écran suivante.
De même, la requête nommée Translation Day Names Table génère une table avec des traductions de noms en semaine.
Les deux requêtes nommées Table des noms de mois traduits et Table des noms de jour traduits ont été écrites pour être génériques. Ils ne contiennent aucun nom de colonne codé en dur. Ces requêtes ne nécessitent aucune modification à l’avenir lorsque vous ajoutez ou supprimez des langues du projet. Il vous suffit de mettre à jour les lignes de données de la requête.
Configurer des valeurs de tri
Lorsque vous exécutez ces deux requêtes pour la première fois, elles créent deux tables dans le modèle sémantique avec les noms de la table Des noms de mois traduits et la table Noms de jour traduits. Il existe une colonne de traduction pour chaque langue. Vous devez configurer la colonne de tri pour chacune des colonnes de traduction :
- Configurer les colonnes de traduction dans Translated Month Names Table pour utiliser la colonne de tri MonthNumber
- Configurer les colonnes de traduction dans Translated Day Names Table pour utiliser la colonne de tri DayNumber
Intégrer des tables de traduction
L’étape suivante consiste à intégrer les deux tables dans le modèle de données avec une table Calendrier. La table Calendar est une table calculée basée sur l’expression DAX (Data Analysis Expressions) suivante.
Créez une relation entre la table Calendrier et les tables de faits, telles que Ventes, à l’aide de la colonne Date pour créer une relation un-à-plusieurs. Les relations créées entre la table Calendrier et les deux tables de traductions sont basées sur la colonne MonthNumber et la colonne DayNumber .
Après avoir créé les relations requises avec la table Calendrier, créez un paramètre de champ pour chacune des deux tables de traductions de calendrier. La création d’un paramètre de champ pour une table de traduction de calendrier équivaut à créer les paramètres de champ pour les noms de produits et les noms de catégorie indiqués précédemment.
Ajoutez une relation entre ces nouvelles tables de paramètres de champ et la table Languages pour vous assurer que la stratégie de filtrage linguistique fonctionne comme prévu.
Après avoir créé les paramètres de champ pour Translated Month Names et Translated Day Names, vous pouvez commencer à les exposer dans un rapport à l’aide de visuels cartésiens, de tables et de matrices.
Après avoir tout configuré, vous pouvez tester votre travail à l’aide d’un filtre au niveau du rapport dans la table Langues pour basculer entre les langues et vérifier les traductions des noms des mois et des jours de la semaine comme prévu.