Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Jeśli implementujesz tłumaczenia danych, możesz dodać obsługę tłumaczenia dla kolumn tekstowych w tabelach kalendarza. Te tabele obejmują tłumaczenia nazw miesięcy lub dni tygodnia. Takie podejście umożliwia tworzenie wizualizacji, które wspominają dni lub miesiące.
Przetłumaczone wersje ułatwiają odczytywanie wizualizacji w obsługiwanych językach.
Strategia w tym artykule dotycząca tłumaczeń kolumn tabeli kalendarza używa dodatku Power Query i języka zapytań M. Dodatek Power Query udostępnia wbudowane funkcje, takie jak Date.MonthName
, które akceptują Date
parametr i zwracają nazwę kalendarza opartego na tekście. Jeśli projekt pbix ma en-US jako domyślny język i ustawienia regionalne, następujące wywołanie funkcji Power Query daje w wyniku wartość tekstową stycznia.
Date.MonthName( #date(2023, 1, 1) )
Funkcja Date.MonthName
akceptuje drugi, opcjonalny parametr ciągu, aby przekazać określony język i ustawienia regionalne.
Date.MonthName( #date(2023, 1, 1), "en-US")
Jeśli chcesz przetłumaczyć nazwę miesiąca na francuski, możesz przekazać wartość tekstową fr-FR.
Date.MonthName( #date(2022, 12, 1), "fr-FR")
Generowanie tabeli tłumaczenia kalendarza
Przyjrzyj się tabeli Languages użytej w poprzednich przykładach. Zawiera kolumnę DefaultCulture .
Dodatek Power Query jest oparty na funkcjonalnym języku zapytań o nazwie M. Za pomocą tego języka można iterować wiersze tabeli Languages , aby dowiedzieć się, jakie języki i jakie domyślne kultury obsługuje projekt. Możesz napisać zapytanie, które używa tabeli Languages jako źródła, aby wygenerować tabelę tłumaczenia kalendarza z nazwami miesięcy lub dni powszednie.
Oto kod języka M, który generuje tabelę Przetłumaczone nazwy miesięcy.
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
Napiwek
Możesz po prostu skopiować i wkleić kod M z przykładu ProductSalesMultiLanguage.pbix za każdym razem, gdy musisz dodać tabele tłumaczenia kalendarza do projektu.
Jeśli tabela Languages zawiera cztery wiersze dla języka angielskiego, hiszpańskiego, francuskiego i niemieckiego, zapytanie Przetłumaczone nazwy miesięcy generuje tabelę z czterema kolumnami tłumaczenia, jak pokazano na poniższym zrzucie ekranu.
Podobnie zapytanie o nazwie Translated Day Names Table generuje tabelę z tłumaczeniami nazw dni powszednich.
Dwie zapytania o nazwie Translated Month Names Table (Przetłumaczone nazwy miesięcy) i Translated Day Names Table (Przetłumaczone nazwy dni) zostały zapisane jako ogólne. Nie zawierają żadnych zakodowanych nazw kolumn. Te zapytania nie wymagają żadnych modyfikacji w przyszłości podczas dodawania ani usuwania języków z projektu. Wystarczy zaktualizować wiersze danych w zapytaniu.
Konfigurowanie wartości sortowania
Po pierwszym uruchomieniu tych dwóch zapytań tworzą dwie tabele w modelu semantycznym o nazwach Przetłumaczone nazwy miesięcy i Przetłumaczona tabela nazw dni. Dla każdego języka znajduje się kolumna tłumaczenia. Należy skonfigurować kolumnę sortowania dla każdej kolumny tłumaczenia:
- Skonfiguruj kolumny tłumaczenia w tabeli Przetłumaczone nazwy miesięcy, aby użyć kolumny sortowania MonthNumber
- Konfigurowanie kolumn translacji w tabeli Przetłumaczone nazwy dni w celu użycia kolumny sortowania DayNumber
Integrowanie tabel tłumaczenia
Następnym krokiem jest zintegrowanie dwóch tabel z modelem danych z tabelą Calendar . Tabela Calendar to tabela obliczeniowa oparta na następującym wyrażeniu języka DAX (Data Analysis Expressions).
Utwórz relację między tabelą Calendar i tabelami faktów, takimi jak Sales, przy użyciu kolumny Date w celu utworzenia relacji jeden do wielu. Relacje utworzone między tabelą Calendar a dwiema tabelami tłumaczeń są oparte na kolumnie MonthNumber i kolumnie DayNumber.
Po utworzeniu wymaganych relacji z tabelą Calendar utwórz nowy parametr pola dla każdej z dwóch tabel tłumaczeń kalendarza. Tworzenie parametru pola dla tabeli tłumaczenia kalendarza jest podobne do tworzenia parametrów pola dla nazw produktów i nazw kategorii pokazanych wcześniej.
Dodaj relację między tymi nowymi tabelami parametrów pól i tabelą Languages, aby upewnić się, że strategia filtrowania języka działa zgodnie z oczekiwaniami.
Po utworzeniu parametrów pola dla przetłumaczonych nazw miesięcy i przetłumaczonych nazw dni można zacząć wyświetlać je w raporcie przy użyciu wizualizacji kartezjańskich, tabel i macierzy.
Po skonfigurowaniu wszystkiego możesz przetestować swoją pracę przy użyciu filtru na poziomie raportu w tabeli Languages , aby przełączać się między językami i weryfikować tłumaczenia nazw miesięcy i dni tygodnia zgodnie z oczekiwaniami.