Udostępnij za pośrednictwem


Implementowanie tłumaczeń danych dla tabeli kalendarza

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.

Zrzut ekranu przedstawia wizualizacje raportu, które wyświetlają nazwy miesięcy i dni.

Przetłumaczone wersje ułatwiają odczytywanie wizualizacji w obsługiwanych językach.

Zrzut ekranu przedstawia wizualizacje raportu, które wyświetlają nazwy miesięcy i dni zlokalizowanych.

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 .

Zrzut ekranu przedstawia tabelę Languages (Języki), która jest kolumną kultury domyślnej.

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.

Diagram przedstawia tabelę Languages używaną jako źródło przekształcenia dodatku Power Query w celu utworzenia tabel nazw miesięcy i dni.

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.

Zrzut ekranu przedstawiający zapytanie tabeli Translated Month Names (Przetłumaczone nazwy miesięcy) i tabelę, która zostanie utworzona.

Podobnie zapytanie o nazwie Translated Day Names Table generuje tabelę z tłumaczeniami nazw dni powszednich.

Zrzut ekranu przedstawiający zapytanie Przetłumaczone nazwy dni i utworzoną tabelę.

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.

Zrzut ekranu przedstawia Edytor zaawansowany z językami wybranymi w bloku Kolejność sortowania.

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

Zrzut ekranu przedstawia kolumnę nazw miesięcy, która ma być sortowana według numeru miesiąca.

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

Zrzut ekranu przedstawia tabelę z kodem języka DAX.

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.

Zrzut ekranu przedstawiający widok Model z tabelą Translated Month Names (Przetłumaczone nazwy miesięcy) w relacji z tabelą Calendar (Kalendarz).

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.

Zrzut ekranu przedstawia widok tabeli Przetłumaczone nazwy miesięcy.

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.

Zrzut ekranu przedstawia tabelę Languages w relacji z kilkoma przetłumaczonych tabelami.

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.

Zrzut ekranu przedstawia wartość Dzień dla osi x w wizualizacji.

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.

Zrzut ekranu przedstawia filtr z wybranym językiem, a wizualizacje odzwierciedlają wybór.