diff --git a/LocalizationCompiler/Ids.Parsers.XliffGenerator/HtmlCompiler.fs b/LocalizationCompiler/Ids.Parsers.XliffGenerator/HtmlCompiler.fs index dc52638..43c5abd 100644 --- a/LocalizationCompiler/Ids.Parsers.XliffGenerator/HtmlCompiler.fs +++ b/LocalizationCompiler/Ids.Parsers.XliffGenerator/HtmlCompiler.fs @@ -77,7 +77,7 @@ module Generators = let private deTag (t : LocalizationSourcePart) : string = match t with | Text s -> s - | Variable s -> "{{" + s + "}}" + | Variable s -> s let private deTagAttr (t : LocalizationSourcePart) : string = match t with @@ -109,5 +109,11 @@ module Generators = let rest = Text.NormalizeNewlines(contents).Substring(int32(endPosition.Index)) match x with | [] -> rest - | x -> (x |> Seq.map(fun (leader, tag) -> (leader, generateIdTag(tag))) |> Seq.map (fun (leader, tag) -> leader + (getTranslation matches tag)) |> Seq.reduce (+)) + rest + | x -> (x + |> Seq.map(fun (leader, tag) -> (leader, generateIdTag(tag))) + // DS: The Trim() is there because the xml generator puts a variable on a new line + // if the string starts with a variable, which messes up js formatting because + // js strings can only be on one line. + |> Seq.map (fun (leader, tag) -> leader + (getTranslation matches tag).Trim()) + |> Seq.reduce (+)) + rest | Failure (reasons, state, _) -> reasons diff --git a/LocalizationCompiler/Ids.Parsers.XliffGenerator/XliffGenerator.fs b/LocalizationCompiler/Ids.Parsers.XliffGenerator/XliffGenerator.fs index e200914..a045475 100644 --- a/LocalizationCompiler/Ids.Parsers.XliffGenerator/XliffGenerator.fs +++ b/LocalizationCompiler/Ids.Parsers.XliffGenerator/XliffGenerator.fs @@ -93,7 +93,7 @@ module XliffGenerator = member x.Generate originalFileName (localizationTags : LocalizationTag seq) = fileNodeOriginalAttribute.Value <- originalFileName - targetLanguageAttribute.Value <- "en-US" + targetLanguageAttribute.Value <- "en" localizationTags |> Seq.map generateIdTag |> Seq.iter tagToXmlElement diff --git a/LocalizationCompiler/LocalizationCompiler.sln b/LocalizationCompiler/LocalizationCompiler.sln index 06a6af5..efe7c7f 100644 --- a/LocalizationCompiler/LocalizationCompiler.sln +++ b/LocalizationCompiler/LocalizationCompiler.sln @@ -49,11 +49,13 @@ Global {357E9998-74F6-48FD-8A08-6929114791BE}.Release|Mixed Platforms.Build.0 = Release|Any CPU {357E9998-74F6-48FD-8A08-6929114791BE}.Release|x86.ActiveCfg = Release|Any CPU {C74568BA-270A-4D22-8603-9A5321E50F1A}.Debug|Any CPU.ActiveCfg = Debug|x86 + {C74568BA-270A-4D22-8603-9A5321E50F1A}.Debug|Any CPU.Build.0 = Debug|x86 {C74568BA-270A-4D22-8603-9A5321E50F1A}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 {C74568BA-270A-4D22-8603-9A5321E50F1A}.Debug|Mixed Platforms.Build.0 = Debug|x86 {C74568BA-270A-4D22-8603-9A5321E50F1A}.Debug|x86.ActiveCfg = Debug|x86 {C74568BA-270A-4D22-8603-9A5321E50F1A}.Debug|x86.Build.0 = Debug|x86 {C74568BA-270A-4D22-8603-9A5321E50F1A}.Release|Any CPU.ActiveCfg = Release|x86 + {C74568BA-270A-4D22-8603-9A5321E50F1A}.Release|Any CPU.Build.0 = Release|x86 {C74568BA-270A-4D22-8603-9A5321E50F1A}.Release|Mixed Platforms.ActiveCfg = Release|x86 {C74568BA-270A-4D22-8603-9A5321E50F1A}.Release|Mixed Platforms.Build.0 = Release|x86 {C74568BA-270A-4D22-8603-9A5321E50F1A}.Release|x86.ActiveCfg = Release|x86 diff --git a/LocalizationCompiler/LocalizationCompiler/Program.fs b/LocalizationCompiler/LocalizationCompiler/Program.fs index 447d624..97e9bb5 100644 --- a/LocalizationCompiler/LocalizationCompiler/Program.fs +++ b/LocalizationCompiler/LocalizationCompiler/Program.fs @@ -16,12 +16,14 @@ module Program = open Ids.Generators open Ids.Localization.Parsers open Ids.Localization.Parsers.XliffGenerator.XliffGenerator + open System.Text.RegularExpressions + + let supportedFileTypes = new Regex("htm|html|js") let rec generateXlfFromFiles (d : DirectoryInfo) (x : XliffGenerator) = printfn "%s" d.FullName - let r = new System.Text.RegularExpressions.Regex("htm|html") d.EnumerateFiles() - |> Seq.filter(fun f -> r.IsMatch(f.Extension)) + |> Seq.filter(fun f -> supportedFileTypes.IsMatch(f.Extension)) |> Seq.iter(fun f -> printfn "\t%s" f.Name x.Generate f.Name (LocalizationTagParser.parse (File.ReadAllText(f.FullName))) |> ignore) @@ -39,12 +41,11 @@ module Program = let rec generateApplicationFromXlf (tags : LocalizationMatch seq) (applicationDirectory : DirectoryInfo) (outputDirectory : DirectoryInfo) = printfn "%s" applicationDirectory.FullName - let r = new System.Text.RegularExpressions.Regex("htm|html") applicationDirectory.EnumerateFiles() |> Seq.iter(fun f -> let outputName = Path.Combine(outputDirectory.FullName, f.Name) - if f.Extension |> r.IsMatch then + if f.Extension |> supportedFileTypes.IsMatch then printMatchedFile f let newContents = HtmlCompiler.generateNewHtmlFile (File.ReadAllText f.FullName) tags