From be1138d356130846dda421b3cba5e97910198886 Mon Sep 17 00:00:00 2001 From: Kay Unkroth Date: Tue, 6 Apr 2021 17:20:08 -0700 Subject: [PATCH] Fallback to default locale and static resx key name generation (instead of random GUIDs) added. --- MetadataTranslator/MTCmd/Program.cs | 26 +++++++++------- MetadataTranslator/MTCmd/Strings.Designer.cs | 18 +++++++++++ MetadataTranslator/MTCmd/Strings.resx | 6 ++++ .../Metadata Translator/Data/DataModel.cs | 14 +++++---- .../Data/DisplayFolderContainer.cs | 18 +++++++++++ .../Data/MetadataObjectContainer.cs | 18 +++++++++++ ...atic key names instead of random GUIDs.png | Bin 0 -> 140865 bytes .../Documentation/README.md | 28 +++++++++++++++++- .../Helpers/ListExtensions.cs | 8 ++--- 9 files changed, 115 insertions(+), 21 deletions(-) create mode 100644 MetadataTranslator/Metadata Translator/Documentation/Images/A resx with static key names instead of random GUIDs.png diff --git a/MetadataTranslator/MTCmd/Program.cs b/MetadataTranslator/MTCmd/Program.cs index 5656c13..4b6dfe2 100644 --- a/MetadataTranslator/MTCmd/Program.cs +++ b/MetadataTranslator/MTCmd/Program.cs @@ -35,12 +35,16 @@ namespace MTCmd new Option( new string[]{ "--import-file", "-if" }, Strings.ifDescription).ExistingOnly(), new Option( - new string[]{ "--locale-id", "-lcid" }, Strings.lcidDescription) - }; + new string[]{ "--locale-id", "-lcid" }, Strings.lcidDescription), + new Option( + new string[]{ "--fallback-mode", "-fm" }, Strings.fallbackDescription), + new Option( + new string[]{ "--key-prefix", "-kp" }, Strings.keyPrefixDescription) + }; // Note that the parameters of the handler method are matched according to the names of the options - rootCommand.Handler = CommandHandler.Create((connectionString, mode, exportFolder, importFile, localeId) => + rootCommand.Handler = CommandHandler.Create((connectionString, mode, exportFolder, importFile, localeId, fallbackMode, keyPrefix) => { try { @@ -51,13 +55,13 @@ namespace MTCmd { case Mode.Export: case Mode.ExportResx: - Export(mode, model, exportFolder, localeId); + Export(mode, model, exportFolder, localeId, keyPrefix); break; case Mode.Import: - Import(model, importFile, false); + Import(model, importFile, false, fallbackMode); break; case Mode.Overwrite: - Import(model, importFile, true); + Import(model, importFile, true, fallbackMode); break; default: break; @@ -73,12 +77,12 @@ namespace MTCmd return rootCommand.InvokeAsync(args).Result; } - static void Import(DataModel model, FileInfo importFile, bool overwriteMode) + static void Import(DataModel model, FileInfo importFile, bool overwriteMode, bool fallbackDefault) { Func import = (lcid) => { if (Path.GetExtension(importFile.Name).Equals(".csv", StringComparison.InvariantCultureIgnoreCase)) { - model.ImportFromCsv(importFile.FullName, lcid, overwriteMode); + model.ImportFromCsv(importFile.FullName, lcid, overwriteMode, fallbackDefault); return true; } else if (Path.GetExtension(importFile.Name).Equals(".resx", StringComparison.InvariantCultureIgnoreCase)) @@ -88,7 +92,7 @@ namespace MTCmd { try { - model.ImportFromResx(importFile.FullName, referenceResx, lcid, overwriteMode); + model.ImportFromResx(importFile.FullName, referenceResx, lcid, overwriteMode, fallbackDefault); return true; } catch (NoResxMatchesException noMatch) @@ -132,9 +136,9 @@ namespace MTCmd } } - static void Export(Mode mode, DataModel model, DirectoryInfo exportFolder, string lcid) + static void Export(Mode mode, DataModel model, DirectoryInfo exportFolder, string lcid, string keyPrefix) { - Action export = () => { if (mode == Mode.ExportResx) model.ExportToResx(exportFolder.FullName); else model.ExportToCsv(exportFolder.FullName); }; + Action export = () => { if (mode == Mode.ExportResx) model.ExportToResx(exportFolder.FullName, keyPrefix); else model.ExportToCsv(exportFolder.FullName); }; if (exportFolder != null) { diff --git a/MetadataTranslator/MTCmd/Strings.Designer.cs b/MetadataTranslator/MTCmd/Strings.Designer.cs index 92aa295..b2da225 100644 --- a/MetadataTranslator/MTCmd/Strings.Designer.cs +++ b/MetadataTranslator/MTCmd/Strings.Designer.cs @@ -87,6 +87,15 @@ namespace MTCmd { } } + /// + /// Looks up a localized string similar to In Import mode, determines if the string from the default locale should be applied to the translated locale if the translated string is missing or cannot be found. The default setting is false, which leaves the translated string empty in the translated locale.. + /// + internal static string fallbackDescription { + get { + return ResourceManager.GetString("fallbackDescription", resourceCulture); + } + } + /// /// Looks up a localized string similar to The full path and name of the comma-separated values (csv) or resource (resx) translation file to import.. /// @@ -123,6 +132,15 @@ namespace MTCmd { } } + /// + /// Looks up a localized string similar to In ExportResx mode, influences how Metadata Translator generates the names of the key/value pairs. By default, a random GUID is generated as the name. If a key prefix is specified, then Metadata Translator generates keys based on the translated property types and the metadata object names.. + /// + internal static string keyPrefixDescription { + get { + return ResourceManager.GetString("keyPrefixDescription", resourceCulture); + } + } + /// /// Looks up a localized string similar to A valid Windows Language Code Identifier (LCID), aka language tag, such as en-US, af-NA, and zh-CN.. /// diff --git a/MetadataTranslator/MTCmd/Strings.resx b/MetadataTranslator/MTCmd/Strings.resx index 6444fed..0edbd39 100644 --- a/MetadataTranslator/MTCmd/Strings.resx +++ b/MetadataTranslator/MTCmd/Strings.resx @@ -126,6 +126,9 @@ Existing translations exported to: {0} + + In Import mode, determines if the string from the default locale should be applied to the translated locale if the translated string is missing or cannot be found. The default setting is false, which leaves the translated string empty in the translated locale. + The full path and name of the comma-separated values (csv) or resource (resx) translation file to import. @@ -138,6 +141,9 @@ Either the imported language matches the default locale, or the file name does not correspond to a supported locale identifier. The file name convention is <lcid>.csv or <lcid>.resx. + + In ExportResx mode, influences how Metadata Translator generates the names of the key/value pairs. By default, a random GUID is generated as the name. If a key prefix is specified, then Metadata Translator generates keys based on the translated property types and the metadata object names. + A valid Windows Language Code Identifier (LCID), aka language tag, such as en-US, af-NA, and zh-CN. diff --git a/MetadataTranslator/Metadata Translator/Data/DataModel.cs b/MetadataTranslator/Metadata Translator/Data/DataModel.cs index cbc1d33..7cb7fb0 100644 --- a/MetadataTranslator/Metadata Translator/Data/DataModel.cs +++ b/MetadataTranslator/Metadata Translator/Data/DataModel.cs @@ -474,7 +474,7 @@ namespace Metadata_Translator /// The files are placed into the specified export folder. /// /// - public void ExportToResx(string exportFolderPath) + public void ExportToResx(string exportFolderPath, string keyPrefix) { List dataRows = GetAllDataRows(); if (dataRows != null && dataRows.Count > 0) @@ -487,7 +487,7 @@ namespace Metadata_Translator { using (ResXResourceWriter resx = new ResXResourceWriter(System.IO.Path.Combine(exportFolderPath, $"{lcid}.resx"))) { - foreach(var kvp in dataRows.GetValues(ContainerColumnHeader, lcid)) + foreach(var kvp in dataRows.GetKeyValuePairs(ContainerColumnHeader, lcid, keyPrefix)) { resx.AddResource(kvp.Key.ToString(), kvp.Value); } @@ -503,7 +503,7 @@ namespace Metadata_Translator /// /// /// - public void ImportFromCsv(string filePath, string lcid, bool replaceExistingTranslations) + public void ImportFromCsv(string filePath, string lcid, bool replaceExistingTranslations, bool fallbackToDefaultLocale = false) { string csvData = File.ReadAllText(filePath); if (string.IsNullOrEmpty(csvData)) return; @@ -528,7 +528,7 @@ namespace Metadata_Translator { Type = textFields[0], Original = textFields[1], - Translation = textFields[2] + Translation = (fallbackToDefaultLocale && string.IsNullOrEmpty(textFields[2]))? textFields[1] : textFields[2] }); } } @@ -537,7 +537,7 @@ namespace Metadata_Translator ApplyTranslation(lcid, parsedRows, replaceExistingTranslations); } - public void ImportFromResx(string filePath, string referencePath, string lcid, bool replaceExistingTranslations) + public void ImportFromResx(string filePath, string referencePath, string lcid, bool replaceExistingTranslations, bool fallbackToDefaultLocale) { List parsedRows = new List(); @@ -549,6 +549,10 @@ namespace Metadata_Translator string key = kvp.Key.ToString(); string value = kvp.Value?.ToString(); string translation = translatedStrings.GetString(key); + + if (fallbackToDefaultLocale && string.IsNullOrEmpty(translation)) + translation = value; + if (!string.IsNullOrEmpty(value) && !string.IsNullOrEmpty(translation)) { parsedRows.Add(new CsvRow diff --git a/MetadataTranslator/Metadata Translator/Data/DisplayFolderContainer.cs b/MetadataTranslator/Metadata Translator/Data/DisplayFolderContainer.cs index ce03d0a..cf4d18f 100644 --- a/MetadataTranslator/Metadata Translator/Data/DisplayFolderContainer.cs +++ b/MetadataTranslator/Metadata Translator/Data/DisplayFolderContainer.cs @@ -24,5 +24,23 @@ namespace Metadata_Translator $"DisplayFolder - {TabularObjects.Count} Objects" : $"DisplayFolder - 1 {TabularObject.ObjectType}"; } + + protected override string GetFullName(MetadataObject metadataObject) + { + if (metadataObject is Measure measure) + { + return "#" + Convert.ToBase64String(Encoding.UTF8.GetBytes(measure.DisplayFolder)); + } + else if (metadataObject is Column column) + { + return "#" + Convert.ToBase64String(Encoding.UTF8.GetBytes(column.DisplayFolder)); + } + else if (metadataObject is Hierarchy hierarchy) + { + return "#" + Convert.ToBase64String(Encoding.UTF8.GetBytes(hierarchy.DisplayFolder)); + } + + return string.Empty; + } } } diff --git a/MetadataTranslator/Metadata Translator/Data/MetadataObjectContainer.cs b/MetadataTranslator/Metadata Translator/Data/MetadataObjectContainer.cs index 6ed2eb3..e9661c2 100644 --- a/MetadataTranslator/Metadata Translator/Data/MetadataObjectContainer.cs +++ b/MetadataTranslator/Metadata Translator/Data/MetadataObjectContainer.cs @@ -34,5 +34,23 @@ namespace Metadata_Translator return TabularObject.ObjectType.ToString(); } } + + public virtual string GetUniqueName(string namePrefix) + { + return (string.IsNullOrEmpty(namePrefix)) ? TemporaryObjectId.ToString() : $"{namePrefix}{GetFullName(TabularObject)}#{TranslatedProperty}"; + } + + protected virtual string GetFullName(MetadataObject metadataObject) + { + string fullName = string.Empty; + + if(metadataObject is NamedMetadataObject tabularObject) + { + string parentName = (tabularObject.Parent != null) ? GetFullName(tabularObject.Parent) : string.Empty; + fullName = string.Concat(parentName, "#", tabularObject.Name); + } + + return fullName; + } } } diff --git a/MetadataTranslator/Metadata Translator/Documentation/Images/A resx with static key names instead of random GUIDs.png b/MetadataTranslator/Metadata Translator/Documentation/Images/A resx with static key names instead of random GUIDs.png new file mode 100644 index 0000000000000000000000000000000000000000..c8d0362d0070fac61e2ae2a56c3f09991a79f6e3 GIT binary patch literal 140865 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 > MTCmd.exe only imports one translation file at a time. To import multiple languages, run MTCmd.exe in a loop. +### Fallback to the default locale + +By default, Metadata Translator leaves untranslated strings empty in the translated cultures. This is generally acceptable because Power BI can fall back to the default locale if a translated string cannot be found for a caption, description, or display folder. However, DAX measures using the USERCULTURE() function might require translated strings to be present. In order to accommodate these scenarios, you can set the --fallback-mode option to true so that the command line tool takes the string from the default locale and adds it to the translated culture if the translated string is missing or cannot be found. + +The following command imports German translations from a .csv file called de-DE.csv into an AdventureWorks dataset hosted in Power BI, overwriting any existing German strings in the dataset and applying the strings from the default locale if any translations are missing: + +`MTCmd -cs "powerbi://api.powerbi.com/v1.0/myorg/AdventureWorksSource;initial catalog=AdventureWorks" -if C:\Translations\de-DE.csv -m Overwrite -fm true` + +> Note +> +> Only the command-line tool, MTCmd.exe, supports falling back to the strings of the default locale in import mode. The GUI tool, Metadata Translator.exe, does not provide an option to enable this operation. + ### Working with resx files While the graphical user interface of Metadata Translator only works with csv files, the command-line tool supports an additional option to work with XML resource (.resx) files as well. Resx files rely on a well-defined XML schema, including a header followed by data in name/value pairs. These files are often used for software localization. Among other things, Visual Studio provides a convenient interface for creating and maintaining resx files. And with command-line support for resx files in Metadata Translator, you can reuse these software translations by applying them to your Power BI datasets. @@ -182,6 +194,20 @@ For illustration, imagine the following scenario: > > To avoid orphaned resx files, it is a good idea to always export all locales together. If you must export individual languages, make sure you export them into a separate (empty) folder to avoid possibly overwriting an existing resx file of the default locale. +#### Generating static key names instead of random GUIDs + +If you find GUID-based resx files difficult to work with, you can switch to more statically generated key names based on the translated property types and the metadata object names in your dataset. In this case, use the --key-prefix option to specify an arbitrary prefix in ExportResx mode. With a key prefix specified, Metadata Translator generates key names following the format: ##. + +The following command exports all translations from an AdventureWorks dataset hosted in Power BI into resx files in a folder called ExportedTranslations using static key names instead of random GUIDs in the resx files (see also the following screenshot for a generated resx): + +`MTCmd -cs "powerbi://api.powerbi.com/v1.0/myorg/AdventureWorksSource;initial catalog=AdventureWorks" -ef C:\ExportedTranslations -m ExportResx` + +![A resx with static key names instead of random GUIDs](https://github.com/microsoft/Analysis-Services/blob/master/MetadataTranslator/Metadata%20Translator/Documentation/Images/A%20resx%20with%20static%20key%20names%20instead%20of%20random%20GUIDs.png) + +> Note +> +> Because Metadata Translator generates the static key names based on the translated property types and the metadata object names in your dataset, be aware that the static key names change if you re-export your translations into resx files following a rename of metadata objects in the dataset. + #### Importing translations from resx files Importing translations from resx files is practically identical to importing from csv files. Simply specify the resx import file by using the --import-file (-if) parameter. Metadata Translator detects the import mode based in the .resx file name extension. For more details, refer to the section "Importing translations" earlier in this document. diff --git a/MetadataTranslator/Metadata Translator/Helpers/ListExtensions.cs b/MetadataTranslator/Metadata Translator/Helpers/ListExtensions.cs index 0f7e22b..6dfc28b 100644 --- a/MetadataTranslator/Metadata Translator/Helpers/ListExtensions.cs +++ b/MetadataTranslator/Metadata Translator/Helpers/ListExtensions.cs @@ -27,11 +27,11 @@ namespace Metadata_Translator return values; } - public static Dictionary GetValues(this List collection, string containerColumnName, string columnName) + public static Dictionary GetKeyValuePairs(this List collection, string containerColumnName, string columnName, string namePrefix) { - if (collection == null) return new Dictionary(); + if (collection == null) return new Dictionary(); - var values = new Dictionary(); + var values = new Dictionary(); foreach (ExpandoObject row in collection) { var metaContainer = (MetadataObjectContainer)row.GetObject(containerColumnName); @@ -41,7 +41,7 @@ namespace Metadata_Translator { try { - values.Add(metaContainer.TemporaryObjectId, columnValue); + values.Add(metaContainer.GetUniqueName(namePrefix), columnValue); } catch (Exception ex) {