From 22eafbe597f1f7124e78536740ffa861fb31f6be Mon Sep 17 00:00:00 2001 From: Raymond Martin Date: Wed, 15 Feb 2017 12:11:37 -0800 Subject: [PATCH] Task: RESX and XLIFF transformations (#237) * organizing files and adding to cake script * temp gitignore change * custom nuget packages * reapplying git ignore * fixing indents * more weird indents * fixing spacing in strings file * updating xlf --- bin/mssql.ResX.nupkg | Bin 0 -> 4845 bytes bin/mssql.XliffParser.nupkg | Bin 0 -> 12354 bytes build.cake | 82 ++- scripts/cake-bootstrap.ps1 | 1 + scripts/cake-bootstrap.sh | 1 + scripts/packages.config | 1 + .../{ => Localization}/sr.Designer.cs | 0 .../{ => Localization}/sr.cs | 2 +- .../{ => Localization}/sr.es.resx | 2 +- .../{ => Localization}/sr.resx | 0 .../{ => Localization}/sr.strings | 5 + .../Localization/sr.xlf | 514 ++++++++++++++++++ .../Localization/transXliff/sr.es.xlf | 12 + 13 files changed, 588 insertions(+), 32 deletions(-) create mode 100644 bin/mssql.ResX.nupkg create mode 100644 bin/mssql.XliffParser.nupkg rename src/Microsoft.SqlTools.ServiceLayer/{ => Localization}/sr.Designer.cs (100%) rename src/Microsoft.SqlTools.ServiceLayer/{ => Localization}/sr.cs (99%) rename src/Microsoft.SqlTools.ServiceLayer/{ => Localization}/sr.es.resx (99%) rename src/Microsoft.SqlTools.ServiceLayer/{ => Localization}/sr.resx (100%) rename src/Microsoft.SqlTools.ServiceLayer/{ => Localization}/sr.strings (99%) create mode 100644 src/Microsoft.SqlTools.ServiceLayer/Localization/sr.xlf create mode 100644 src/Microsoft.SqlTools.ServiceLayer/Localization/transXliff/sr.es.xlf diff --git a/bin/mssql.ResX.nupkg b/bin/mssql.ResX.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..0012be07b5e066f4af1796448ed126ed8f6bb78f GIT binary patch literal 4845 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 E02~RdMgRZ+ literal 0 HcmV?d00001 diff --git a/build.cake b/build.cake index 595c7818..9005628b 100644 --- a/build.cake +++ b/build.cake @@ -1,4 +1,6 @@ #addin "Newtonsoft.Json" +#addin "mssql.ResX" +#addin "mssql.XliffParser" #load "scripts/runhelpers.cake" #load "scripts/archiving.cake" @@ -9,7 +11,8 @@ using System.ComponentModel; using System.Net; using Newtonsoft.Json; using Newtonsoft.Json.Linq; -using Cake.Common.IO +using Cake.Common.IO; +using XliffParser; // Basic arguments var target = Argument("target", "Default"); @@ -510,39 +513,58 @@ Task("SetPackageVersions") Task("SRGen") .Does(() => { - var projects = System.IO.Directory.GetFiles(sourceFolder, "project.json", SearchOption.AllDirectories).ToList(); - foreach(var project in projects) { - var projectDir = System.IO.Path.GetDirectoryName(project); - var projectName = (new System.IO.DirectoryInfo(projectDir)).Name; - var projectStrings = System.IO.Path.Combine(projectDir, "sr.strings"); + var projects = System.IO.Directory.GetFiles(sourceFolder, "project.json", SearchOption.AllDirectories).ToList(); - if (!System.IO.File.Exists(projectStrings)) - { - Information("Project {0} doesn't contain 'sr.strings' file", projectName); - continue; - } + foreach(var project in projects) { + var projectDir = System.IO.Path.GetDirectoryName(project); + var localizationDir = System.IO.Path.Combine(projectDir, "Localization"); + var projectName = (new System.IO.DirectoryInfo(projectDir)).Name; + var projectNameSpace = projectName + ".Localization"; + var projectStrings = System.IO.Path.Combine(localizationDir, "sr.strings"); - var srgenPath = System.IO.Path.Combine(toolsFolder, "Microsoft.DataTools.SrGen", "lib", "netcoreapp1.0", "srgen.dll"); - var outputResx = System.IO.Path.Combine(projectDir, "sr.resx"); - var outputCs = System.IO.Path.Combine(projectDir, "sr.cs"); + if (!System.IO.File.Exists(projectStrings)) + { + Information("Project {0} doesn't contain 'sr.strings' file", projectName); + continue; + } - // Delete preexisting resx and designer files - if (System.IO.File.Exists(outputResx)) - { - System.IO.File.Delete(outputResx); - } - if (System.IO.File.Exists(outputCs)) - { - System.IO.File.Delete(outputCs); - } + var srgenPath = System.IO.Path.Combine(toolsFolder, "Microsoft.DataTools.SrGen", "lib", "netcoreapp1.0", "srgen.dll"); + var outputResx = System.IO.Path.Combine(localizationDir, "sr.resx"); + var inputXliff = System.IO.Path.Combine(localizationDir, "transXliff"); + var outputXlf = System.IO.Path.Combine(localizationDir, "sr.xlf"); + var outputCs = System.IO.Path.Combine(localizationDir, "sr.cs"); - // Run SRGen - var dotnetArgs = string.Format("{0} -or \"{1}\" -oc \"{2}\" -ns \"{3}\" -an \"{4}\" -cn SR -l CS -dnx \"{5}\"", - srgenPath, outputResx, outputCs, projectName, projectName, projectStrings); - Information("{0}", dotnetArgs); - Run(dotnetcli, dotnetArgs) - .ExceptionOnError("Failed to run SRGen."); - } + // Delete preexisting resx and designer files + if (System.IO.File.Exists(outputResx)) + { + System.IO.File.Delete(outputResx); + } + if (System.IO.File.Exists(outputCs)) + { + System.IO.File.Delete(outputCs); + } + + // Run SRGen + var dotnetArgs = string.Format("{0} -or \"{1}\" -oc \"{2}\" -ns \"{3}\" -an \"{4}\" -cn SR -l CS -dnx \"{5}\"", + srgenPath, outputResx, outputCs, projectName, projectNameSpace, projectStrings); + Information("{0}", dotnetArgs); + Run(dotnetcli, dotnetArgs) + .ExceptionOnError("Failed to run SRGen."); + + // Update XLF file from new Resx file + var doc = new XliffParser.XlfDocument(outputXlf); + doc.UpdateFromSource(); + doc.Save(); + + // Update ResX files from new xliff files + var xlfDocNames = System.IO.Directory.GetFiles(inputXliff, "*.xlf", SearchOption.AllDirectories).ToList(); + foreach(var docName in xlfDocNames) + { + var xlfDoc = new XliffParser.XlfDocument(docName); + var newPath = System.IO.Path.Combine(localizationDir, System.IO.Path.GetFileName(docName)); + xlfDoc.SaveAsResX(newPath.Replace("xlf","resx")); + } + } }); /// diff --git a/scripts/cake-bootstrap.ps1 b/scripts/cake-bootstrap.ps1 index 7f0bc382..a6e34175 100644 --- a/scripts/cake-bootstrap.ps1 +++ b/scripts/cake-bootstrap.ps1 @@ -89,6 +89,7 @@ if(-Not $SkipToolPackageRestore.IsPresent) Set-Location $TOOLS_DIR Write-Verbose -Message "Restoring tools from NuGet..." + $NuGetConfig = Invoke-Expression "&`"$NUGET_EXE`" config -configfile ../nuget.config" $NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install $PACKAGES_CONFIG -ExcludeVersion -OutputDirectory `"$TOOLS_DIR`"" Write-Verbose -Message ($NuGetOutput | out-string) diff --git a/scripts/cake-bootstrap.sh b/scripts/cake-bootstrap.sh index abc3ed43..6d8f0664 100644 --- a/scripts/cake-bootstrap.sh +++ b/scripts/cake-bootstrap.sh @@ -48,6 +48,7 @@ fi # Restore tools from NuGet. pushd "$TOOLS_DIR" >/dev/null +mono "$NUGET_EXE" config -configfile ../nuget.config mono "$NUGET_EXE" install "$PACKAGES_CONFIG" -ExcludeVersion -OutputDirectory "$TOOLS_DIR" if [ $? -ne 0 ]; then echo "Could not restore NuGet packages." diff --git a/scripts/packages.config b/scripts/packages.config index fd0de851..10e4f480 100644 --- a/scripts/packages.config +++ b/scripts/packages.config @@ -4,4 +4,5 @@ + \ No newline at end of file diff --git a/src/Microsoft.SqlTools.ServiceLayer/sr.Designer.cs b/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.Designer.cs similarity index 100% rename from src/Microsoft.SqlTools.ServiceLayer/sr.Designer.cs rename to src/Microsoft.SqlTools.ServiceLayer/Localization/sr.Designer.cs diff --git a/src/Microsoft.SqlTools.ServiceLayer/sr.cs b/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.cs similarity index 99% rename from src/Microsoft.SqlTools.ServiceLayer/sr.cs rename to src/Microsoft.SqlTools.ServiceLayer/Localization/sr.cs index dd310334..221bfe95 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/sr.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.cs @@ -788,7 +788,7 @@ namespace Microsoft.SqlTools.ServiceLayer [System.Runtime.CompilerServices.CompilerGeneratedAttribute()] public class Keys { - static ResourceManager resourceManager = new ResourceManager("Microsoft.SqlTools.ServiceLayer.SR", typeof(SR).GetTypeInfo().Assembly); + static ResourceManager resourceManager = new ResourceManager("Microsoft.SqlTools.ServiceLayer.Localization.SR", typeof(SR).GetTypeInfo().Assembly); static CultureInfo _culture = null; diff --git a/src/Microsoft.SqlTools.ServiceLayer/sr.es.resx b/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.es.resx similarity index 99% rename from src/Microsoft.SqlTools.ServiceLayer/sr.es.resx rename to src/Microsoft.SqlTools.ServiceLayer/Localization/sr.es.resx index b1657f70..d65a6f96 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/sr.es.resx +++ b/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.es.resx @@ -1,4 +1,4 @@ - +