public void Read_Crafted_00a() { var path = Path.Combine(IDIR, "Crafted00a.xliff"); var bundle = new XliffReader().Read(path); bundle.Assets.Count().Is(1); { var a = bundle.Assets.ElementAt(0); a.Package.Is(path); a.Original.Is("Crafted00a"); a.SourceLang.Is("en-US"); a.TargetLang.Is("x-xyz"); a.TransPairs.Count().Is(1); a.AltPairs.Count().Is(0); a.Properties.Count().Is(0); { var p = a.TransPairs.ElementAt(0); p.Serial.Is(1); p.Id.Is("1"); p.Source.ToString().Is(""); p.Target.ToString().Is(""); p.SourceLang.Is("en-US"); p.TargetLang.Is("x-xyz"); p.Notes?.Count().Is(0); } } }
public static void WhiteSpaces() { string data = "<xliff srcLang='en' version='2.0' xmlns='urn:oasis:names:tc:xliff:document:2.0'>" + "<file id='f1'><unit id='u1'>" + "<segment><source>Sentence 1.</source></segment>" + "<ignorable><source> </source></ignorable>" + "<segment><source>Sentence 2.</source></segment>" + "</unit></file></xliff>"; using (IO.MemoryStream ms = new IO.MemoryStream(Encoding.UTF8.GetBytes(data))) { XliffReader reader = new XliffReader(); XliffDocument doc = reader.Deserialize(ms); foreach (XliffElement e in doc.CollapseChildren <XliffElement>()) { Console.WriteLine("Type: " + e.GetType().ToString()); if (e is PlainText) { PlainText pt = (PlainText)e; Console.WriteLine("Content: '" + pt.Text + "'"); } } } Console.ReadKey(); }
public void Read_Crafted_01() { var path = Path.Combine(IDIR, "Crafted01.xliff"); var bundle = new XliffReader().Read(path); bundle.Assets.Count().Is(1); { var a = bundle.Assets.ElementAt(0); a.TransPairs.Count().Is(2); { var p = a.TransPairs.ElementAt(0); p.Serial.Is(1); p.Id.Is("101"); p.Source.ToString().Is("Simple Text"); p.Target.ToString().Is("Simple Text"); p.SourceLang.Is("en-US"); p.TargetLang.Is("x-xyz"); p.Notes?.Count().Is(0); } { var p = a.TransPairs.ElementAt(1); p.Serial.Is(2); p.Id.Is("102"); p.Source.ToString().Is("abc def ghi."); p.Target.ToString().Is("ABC DEF GHI."); p.SourceLang.Is("en-US"); p.TargetLang.Is("x-xyz"); p.Notes?.Count().Is(0); } } }
public void TestInitialize() { XliffReaderSettings settings; this._document = new XliffDocument(); settings = new XliffReaderSettings(); settings.Validators.Clear(); this._reader = new XliffReader(settings); }
/// <summary> /// Demonstrates how to read an XLIFF document from a file. /// </summary> /// <param name="file">The path to the document to read.</param> public static void ReadDocument(string file) { using (IO.FileStream stream = new IO.FileStream(file, IO.FileMode.Open, IO.FileAccess.Read)) { XliffDocument document; XliffReader reader; reader = new XliffReader(); document = reader.Deserialize(stream); } }
//Move to actual XliffReader private static XliffDocument LoadXliff(string xliff) { XliffDocument document = null; using (Stream stream = GenerateStreamFromString(xliff)) { var reader = new XliffReader(); document = reader.Deserialize(stream); } return(document); }
public void XliffWriter_InvalidSegmentId() { var unit = new Unit("u1"); var segment = new Segment(XmlConvert.EncodeNmToken("/this/is/legacy/id")) { Source = new Source(), Target = new Target() }; segment.Source.Text.Add(new CDataTag("from-source")); segment.Target.Text.Add(new CDataTag("to-target")); unit.Resources.Add(segment); var segment2 = new Segment(XmlConvert.EncodeNmToken("this+is+nested")) { Source = new Source(), Target = new Target() }; segment2.Source.Text.Add(new CDataTag("from-source-nested")); segment2.Target.Text.Add(new CDataTag("to-target-nested")); unit.Resources.Add(segment2); var segment3 = new Segment(XmlConvert.EncodeNmToken("this.is.normal.id")) { Source = new Source(), Target = new Target() }; segment3.Source.Text.Add(new CDataTag("from-source-normal")); segment3.Target.Text.Add(new CDataTag("to-target-normal")); unit.Resources.Add(segment3); _document.Files.Add(new File("f1")); _document.Files[0].Containers.Add(unit); var actualValue = Serialize(); var reader = new XliffReader(); var doc = reader.Deserialize(AsStream(actualValue)); var resources = doc.Files[0].Containers.OfType <Unit>().First().Resources; Assert.NotNull(resources.FirstOrDefault(r => XmlConvert.DecodeName(r.Id) == "this+is+nested")); Assert.NotNull(resources.FirstOrDefault(r => XmlConvert.DecodeName(r.Id) == "/this/is/legacy/id")); Assert.NotNull(resources.FirstOrDefault(r => XmlConvert.DecodeName(r.Id) == "this.is.normal.id")); }
public void Read_Basic_Xliff2() { var path = Path.Combine(IDIR, "Xliff2.xliff"); var bundle = new XliffReader().Read(path, -1); bundle.Assets.Count().Is(1); var asset0 = bundle.Assets.ElementAt(0); asset0.Package.Is(path); asset0.Original.Is(@"v12/messages.xml"); asset0.SourceLang.Is("en-US"); asset0.TargetLang.Is("fr-FR"); asset0.TransPairs.Count().Is(7); asset0.AltPairs.Count().Is(2); }
public void Read_Crafted_00() { var path = Path.Combine(IDIR, "Crafted00.xliff"); var bundle = new XliffReader().Read(path); bundle.Assets.Count().Is(1); { var a = bundle.Assets.ElementAt(0); a.Package.Is(path); a.Original.Is("Crafted00"); a.SourceLang.Is("en-US"); a.TargetLang.IsNull(); a.TransPairs.Count().Is(0); a.AltPairs.Count().Is(0); a.Properties.Count().Is(0); } }
public ParseResult Parse(string fileContent) { var reader = new XliffReader(); var doc = reader.Deserialize(AsStream(fileContent)); var result = new List <LocalizationResource>(); var languages = new List <string>(); foreach (var file in doc.Files) { foreach (var container in file.Containers.OfType <Unit>()) { foreach (var resource in container.Resources) { var targetLanguage = resource.Target.Language; var targetCulture = new CultureInfo(targetLanguage).Name; var newResource = new LocalizationResource(XmlConvert.DecodeName(resource.Id), false); newResource.Translations.AddRange(new List <LocalizationResourceTranslation> { new LocalizationResourceTranslation { Language = targetCulture, Value = resource.Target.Text.OfType <CDataTag>() .FirstOrDefault() ?.Text } }); result.Add(newResource); if (!languages.Contains(targetCulture)) { languages.Add(targetCulture); } } } } return(new ParseResult(result, languages.Select(l => new CultureInfo(l)).ToList())); }
public void Read_Basic_Xliff1() { var path = Path.Combine(IDIR, "Xliff1.xliff"); var bundle = new XliffReader().Read(path, -1); bundle.Assets.Count().Is(1); var asset0 = bundle.Assets.ElementAt(0); asset0.Package.Is(path); asset0.Original.Is(@"Graphic Example.psd"); asset0.SourceLang.Is("en-US"); asset0.TargetLang.Is("ja-JP"); asset0.TransPairs.Count().Is(3); asset0.AltPairs.Count().Is(0); var pairs0 = asset0.TransPairs.ToArray(); pairs0[0].Serial.Is(1); pairs0[0].Id.Is("1"); pairs0[0].Source.ToString().Is("Quetzal"); pairs0[0].Target.ToString().Is("Quetzal"); pairs0[0].SourceLang.Is("en-US"); pairs0[0].TargetLang.Is("ja-JP"); pairs0[1].Serial.Is(2); pairs0[1].Id.Is("3"); pairs0[1].Source.ToString().Is("An application to manipulate and process XLIFF documents"); pairs0[1].Target.ToString().Is("XLIFF 文書を編集し処理するアプリケーション"); pairs0[1].SourceLang.Is("en-US"); pairs0[1].TargetLang.Is("ja-JP"); pairs0[2].Serial.Is(3); pairs0[2].Id.Is("4"); pairs0[2].Source.ToString().Is("XLIFF Data Manager"); pairs0[2].Target.ToString().Is("XLIFF データ・マネージャ"); pairs0[2].SourceLang.Is("en-US"); pairs0[2].TargetLang.Is("ja-JP"); }
public ParseResult Parse(string fileContent) { var reader = new XliffReader(); var doc = reader.Deserialize(AsStream(fileContent)); var result = new List <LocalizationResource>(); var languages = new List <string>(); foreach (var file in doc.Files) { foreach (var container in file.Containers.OfType <Unit>()) { foreach (var resource in container.Resources) { // NOTE: some more modern resources cannot be imported as-is (nested classes) // this might be a dependency on export comp. - knowing how substitution works over there, but yeah.. result.Add(new LocalizationResource(resource.Id.Replace("---", "+")) { Translations = new List <LocalizationResourceTranslation> { new LocalizationResourceTranslation { Language = resource.Target.Language, Value = resource.Target.Text.OfType <CDataTag>().FirstOrDefault()?.Text } } }); if (!languages.Contains(resource.Target.Language)) { languages.Add(resource.Target.Language); } } } } return(new ParseResult(result, languages.Select(l => new CultureInfo(l)).ToList())); }
/// <summary> /// Deserializes a file and stores the resulting <see cref="XliffDocument"/> internally. /// </summary> /// <param name="data">The identifier of the document to deserialize.</param> /// <param name="validate">If true the document will be validated, otherwise it won't be validated.</param> /// <param name="handlers">The extension handlers to register.</param> /// <returns>The deserialized document.</returns> public static XliffDocument Deserialize(TestData data, bool validate, Dictionary <string, IExtensionHandler> handlers) { XliffDocument result; XliffReader reader; string path; if (validate) { reader = new XliffReader(); } else { XliffReaderSettings settings; settings = new XliffReaderSettings(); settings.Validators.Clear(); reader = new XliffReader(settings); } path = Path.Combine(Environment.CurrentDirectory, TestUtilities.TestDataDirectory, data.ToString() + ".xlf"); using (FileStream stream = new FileStream(path, FileMode.Open, FileAccess.Read)) { if (handlers != null) { foreach (string ns in handlers.Keys) { reader.RegisterExtensionHandler(ns, handlers[ns]); } } result = reader.Deserialize(stream); } Assert.IsNotNull(result, "Failed to deserialize."); return(result); }
public void GenerateFiles() { var xliff = new XliffReader(); #if false Dump(xliff, "Xliff1.xliff"); Dump(xliff, "Xliff2.xliff"); Dump(xliff, "git.html_jpn.mqxlz"); Dump(xliff, "Configuring_Spelling_Checker.doc.sdlxliff"); Dump(xliff, "Language_Support.doc.sdlxliff"); Dump(xliff, "New_features.ppt.sdlxliff"); #endif var tmx = new TmxReader(); #if false Dump(tmx, "my_memory.tmx"); Dump(tmx, "XuanZang.tmx"); #endif var sdltm = new SdltmReader(); #if false Dump(sdltm, "tea-party.sdltm"); #endif }
public void Read_Crafted_03() { var path = Path.Combine(IDIR, "Crafted03.xliff"); var bundle = new XliffReader().Read(path); var a = bundle.Assets.ElementAt(0); a.TransPairs.Count().Is(7); { var p = a.TransPairs.ElementAt(0); p.Id.Is("301"); p.Source.DebuggerDisplay.Is("Reordering of tags: abc [CODE1]text1[/CODE1] def [CODE2]text2[/CODE2] ghi."); p.Target.DebuggerDisplay.Is("Reordering of tags: ABC [CODE2]TEXT2[/CODE2] DEF [CODE1]TEXT1[/CODE1] GHI."); } { var p = a.TransPairs.ElementAt(1); p.Id.Is("302"); p.Source.DebuggerDisplay.Is("bpt/ept: abc {bpt;302.1}text1{ept;302.2} def {bpt;302.3}text2{ept;302.4} ghi."); p.Target.DebuggerDisplay.Is("bpt/ept: ABC {bpt;302.3}TEXT2{ept;302.4} DEF {bpt;302.1}TEXT1{ept;302.2} GHI."); VerifyTagOrderChanged(p); } { var p = a.TransPairs.ElementAt(2); p.Id.Is("303"); p.Source.DebuggerDisplay.Is("bx/ex: abc {bx;303.1}text1{ex;303.2} def {bx;303.3}text1{ex;303.4} ghi."); p.Target.DebuggerDisplay.Is("bx/ex: ABC {bx;303.3}TEXT2{ex;303.4} DEF {bx;303.1}TEXT1{ex;303.2} GHI."); VerifyTagOrderChanged(p); } { var p = a.TransPairs.ElementAt(3); p.Serial.Is(4); p.Id.Is("304"); p.Source.DebuggerDisplay.Is("g: abc {g;304.1}text1{g;304.1} def {g;304.2}text2{g;304.2} ghi."); p.Target.DebuggerDisplay.Is("g: ABC {g;304.2}TEXT2{g;304.2} DEF {g;304.1}TEXT1{g;304.1} GHI."); VerifyTagOrderChanged(p); } { var p = a.TransPairs.ElementAt(4); p.Serial.Is(5); p.Id.Is("305"); p.Source.DebuggerDisplay.Is("ph: abc {ph;305.1}text1{ph;305.2} def {ph;305.3}text2{ph;305.4} ghi."); p.Target.DebuggerDisplay.Is("ph: ABC {ph;305.3}TEXT2{ph;305.4} DEF {ph;305.1}TEXT1{ph;305.2} GHI."); VerifyTagOrderChanged(p); } { var p = a.TransPairs.ElementAt(5); p.Serial.Is(6); p.Id.Is("306"); p.Source.DebuggerDisplay.Is("x: abc {x;306.1}text1{x;306.2} def {x;306.3}text2{x;306.4} ghi."); p.Target.DebuggerDisplay.Is("x: ABC {x;306.3}TEXT2{x;306.4} DEF {x;306.1}TEXT1{x;306.2} GHI."); var s = p.Source.Tags.ToArray(); var t = p.Target.Tags.ToArray(); VerifyTagOrderChanged(p); } { var p = a.TransPairs.ElementAt(6); p.Serial.Is(7); p.Id.Is("307"); p.Source.DebuggerDisplay.Is("it: abc {it;307.1}text1{it;307.2} def {it;307.3}text2{it;307.4} ghi."); p.Target.DebuggerDisplay.Is("it: ABC {it;307.3}TEXT2{it;307.4} DEF {it;307.1}TEXT1{it;307.2} GHI."); VerifyTagOrderChanged(p); } }
/// <summary> /// Demonstrates how to store custom attributes and elements on a <see cref="File"/> element using a custom /// extension and element types. /// </summary> public static void StoreCustomExtension() { TestExtension extension; IExtensible extensible; Segment segment; XliffDocument document; XliffReader reader; Unit unit; string path; // This namespace will be stored on the document element like: <xliff xmlns:pre1="urn:custom:extension:1.0" const string customNamespace = "urn:custom:extension:1.0"; const string customPrefix = "customPrefix"; extension = new TestExtension(); document = new XliffDocument("en-us"); document.Files.Add(new File("f1")); unit = new Unit("u1"); document.Files[0].Containers.Add(unit); segment = new Segment("s1"); unit.Resources.Add(segment); segment.Source = new Source(); segment.Source.Text.Add(new PlainText("text")); extensible = document.Files[0]; // Create custom attributes that look like: <file id="f1" pre1:testattr1="testvalue1" pre1:testattr2="testvalue2"> if (extensible.SupportsAttributeExtensions) { extension.AddAttribute(new TestAttribute(customPrefix, customNamespace, "testattr1", "testvalue1")); extension.AddAttribute(new TestAttribute(customPrefix, customNamespace, "testattr2", "testvalue2")); extensible.Extensions.Add(extension); } // Create a custom element that looks like: <pre1:testelement1 pre1:testattr1="testvalue1" /> if (extensible.SupportsElementExtensions) { ElementInfo info; TestElement element; element = new TestElement(); element.SetAttribute(customPrefix, customNamespace, "testattr1", "testvalue1"); info = new ElementInfo(new XmlNameInfo(customPrefix, customNamespace, "testelement1"), element); extension.AddChild(info); } // Write the file just like any other file. path = IO.Path.GetTempFileName(); SampleCode.WriteDocument(document, path); // Read the file using an custom extension handler so the custom types are loaded. The loaded File will // have the custom extension and attributes and elements on it just like it was created above. reader = new XliffReader(); reader.RegisterExtensionHandler(customNamespace, new TestExtensionHandler()); using (IO.FileStream stream = new IO.FileStream(path, IO.FileMode.Open, IO.FileAccess.Read)) { document = reader.Deserialize(stream); } }
public void ChangeTracking_1() { var N = InlineString.RenderNormal; var L = InlineString.RenderOlder; var F = InlineString.RenderFlat; var D = InlineString.RenderDebug; var path = Path.Combine(IDIR, "ChangeTracking_memoQ_1.mqxliff"); var bundle = new XliffReader().Read(path); bundle.Assets.Count().Is(1); var pairs = bundle.Assets.ElementAt(0).TransPairs.ToArray(); { pairs[0].Source.ToString().Is("Change Tracking"); pairs[1].Source.ToString().Is("Paragraph #1."); pairs[2].Source.ToString().Is("Paragraph #2."); pairs[3].Source.ToString().Is("<b>Paragraph</b> #3 with <i>tags</i>."); pairs[4].Source.ToString().Is("<b>Paragraph</b> #4 with <i>tags</i>."); pairs[0].Source.ToString(N).Is("Change Tracking"); pairs[1].Source.ToString(N).Is("Paragraph #1."); pairs[2].Source.ToString(N).Is("Paragraph #2."); pairs[3].Source.ToString(N).Is("<b>Paragraph</b> #3 with <i>tags</i>."); pairs[4].Source.ToString(N).Is("<b>Paragraph</b> #4 with <i>tags</i>."); pairs[0].Source.ToString(L).Is("Change Tracking"); pairs[1].Source.ToString(L).Is("Paragraph #1."); pairs[2].Source.ToString(L).Is("Paragraph #2."); pairs[3].Source.ToString(L).Is("<b>Paragraph</b> #3 with <i>tags</i>."); pairs[4].Source.ToString(L).Is("<b>Paragraph</b> #4 with <i>tags</i>."); pairs[0].Source.ToString(F).Is("Change Tracking"); pairs[1].Source.ToString(F).Is("Paragraph #1."); pairs[2].Source.ToString(F).Is("Paragraph #2."); pairs[3].Source.ToString(F).Is("Paragraph #3 with tags."); pairs[4].Source.ToString(F).Is("Paragraph #4 with tags."); pairs[0].Source.ToString(D).Is("Change Tracking"); pairs[1].Source.ToString(D).Is("Paragraph #1."); pairs[2].Source.ToString(D).Is("Paragraph #2."); pairs[3].Source.ToString(D).Is("{bpt;1}Paragraph{ept;2} #3 with {bpt;3}tags{ept;4}."); pairs[4].Source.ToString(D).Is("{bpt;1}Paragraph{ept;2} #4 with {bpt;3}tags{ept;4}."); pairs[0].Target.ToString().Is("CHANGE TRACKING"); pairs[1].Target.ToString().Is("#1."); pairs[2].Target.ToString().Is("PARAGRAPH #2 INSERTED."); pairs[3].Target.ToString().Is("WITH <i>TAGS</i>, <b>PARAGRAPH</b> #3."); pairs[4].Target.ToString().Is("<b>ABRACADABRA</b> #4 with <i>TAGS</i>."); pairs[0].Target.ToString(N).Is("CHANGE TRACKING"); pairs[1].Target.ToString(N).Is("#1."); pairs[2].Target.ToString(N).Is("PARAGRAPH #2 INSERTED."); pairs[3].Target.ToString(N).Is("WITH <i>TAGS</i>, <b>PARAGRAPH</b> #3."); pairs[4].Target.ToString(N).Is("<b>ABRACADABRA</b> #4 with <i>TAGS</i>."); pairs[0].Target.ToString(L).Is("CHANGE TRACKING"); pairs[1].Target.ToString(L).Is("PARAGRAPH #1."); pairs[2].Target.ToString(L).Is("PARAGRAPH #2."); pairs[3].Target.ToString(L).Is("<b>PARAGRAPH</b> #3 WITH <i>TAGS</i>."); pairs[4].Target.ToString(L).Is("<b>PARAGRAPH</b> #4 with <i>TAGS</i>."); pairs[0].Target.ToString(F).Is("CHANGE TRACKING"); pairs[1].Target.ToString(F).Is("#1."); pairs[2].Target.ToString(F).Is("PARAGRAPH #2 INSERTED."); pairs[3].Target.ToString(F).Is("WITH TAGS, PARAGRAPH #3."); pairs[4].Target.ToString(F).Is("ABRACADABRA #4 with TAGS."); pairs[0].Target.ToString(D).Is("CHANGE TRACKING"); pairs[1].Target.ToString(D).Is("{Del}PARAGRAPH {None}#1."); pairs[2].Target.ToString(D).Is("PARAGRAPH #2{Ins} INSERTED{None}."); pairs[3].Target.ToString(D).Is("{Del}{bpt;1}PARAGRAPH{ept;2} #3 {None}WITH {bpt;3}TAGS{ept;4}{Ins}, {bpt;5}PARAGRAPH{ept;6} #3{None}."); pairs[4].Target.ToString(D).Is("{bpt;1}{Del}PARAGRAPH{Ins}ABRACADABRA{None}{ept;2} #4 with {bpt;3}TAGS{ept;4}."); } }
public void Xliff_DataDriven() { string path; ExpectedResult expectedResult; int errorNumber; errorNumber = -1; path = (string)this.TestContext.DataRow[FileBasedTests.TestEntryPathAttribute]; expectedResult = (ExpectedResult)Enum.Parse( typeof(ExpectedResult), (string)this.TestContext.DataRow[FileBasedTests.TestEntryResultAttribute]); if (expectedResult == ExpectedResult.ValidationError) { errorNumber = int.Parse((string)this.TestContext.DataRow[FileBasedTests.TestEntryErrorAttribute]); } Trace.WriteLine("Path: " + path); Trace.WriteLine("ExpectedResult: " + expectedResult); Trace.WriteLine("ErrorNumber: " + errorNumber); try { Assert.IsTrue(System.IO.File.Exists(path), "File '{0}' doesn't exist.", path); using (FileStream stream = new FileStream(path, FileMode.Open, FileAccess.Read)) { XliffDocument document; XliffReader reader; reader = new XliffReader(); document = reader.Deserialize(stream); } Assert.AreEqual(expectedResult, ExpectedResult.Success, "Expected result is incorrect."); } catch (FormatException) { if (expectedResult != ExpectedResult.BadFormat) { throw; } } catch (InvalidOperationException) { if (expectedResult != ExpectedResult.InvalidOperation) { throw; } } catch (NotSupportedException) { if (expectedResult != ExpectedResult.NotSupported) { throw; } } catch (ValidationException e) { if (expectedResult != ExpectedResult.ValidationError) { throw; } Assert.AreEqual(errorNumber, e.ErrorNumber, "ErrorNumber is incorrect."); } catch (XmlException) { if (expectedResult != ExpectedResult.ReadError) { throw; } } }
public void Read_Crafted_02() { var path = Path.Combine(IDIR, "Crafted02.xliff"); var bundle = new XliffReader().Read(path); var a = bundle.Assets.ElementAt(0); a.TransPairs.Count().Is(7); { var p = a.TransPairs.ElementAt(0); p.Serial.Is(1); p.Id.Is("201"); p.Source.DebuggerDisplay.Is("Various inline tags for: abc [CODE]text[/CODE] def."); p.Target.DebuggerDisplay.Is("Various inline tags for: ABC [CODE]TEXT[/CODE] DEF."); } { var p = a.TransPairs.ElementAt(1); p.Serial.Is(2); p.Id.Is("202"); p.Source.DebuggerDisplay.Is("bpt/ept: abc {bpt;202.1}text{ept;202.2} def."); p.Target.DebuggerDisplay.Is("bpt/ept: ABC {bpt;202.1}TEXT{ept;202.2} DEF."); { var t = p.Source.Tags.ElementAt(0); t.TagType.Is(Tag.B); t.Id.Is("202.1"); t.Rid.Is("202r1"); t.Name.Is("bpt"); t.Ctype.IsNull(); t.Display.IsNull(); t.Code.Is("[CODE]"); t.Number.Is(1); } { var t = p.Source.Tags.ElementAt(1); t.TagType.Is(Tag.E); t.Id.Is("202.2"); t.Rid.Is("202r1"); t.Name.Is("ept"); t.Ctype.IsNull(); t.Display.IsNull(); t.Code.Is("[/CODE]"); t.Number.Is(2); } { var t = p.Target.Tags.ElementAt(0); t.TagType.Is(Tag.B); t.Id.Is("202.1"); t.Rid.Is("202r1"); t.Name.Is("bpt"); t.Ctype.IsNull(); t.Display.IsNull(); t.Code.Is("[CODE]"); t.Number.Is(1); } { var t = p.Target.Tags.ElementAt(1); t.TagType.Is(Tag.E); t.Id.Is("202.2"); t.Rid.Is("202r1"); t.Name.Is("ept"); t.Ctype.IsNull(); t.Display.IsNull(); t.Code.Is("[/CODE]"); t.Number.Is(2); } p.Target.Tags.Is(p.Source.Tags); } { var p = a.TransPairs.ElementAt(2); p.Serial.Is(3); p.Id.Is("203"); p.Source.DebuggerDisplay.Is("bx/ex: abc {bx;203.1}text{ex;203.2} def."); p.Target.DebuggerDisplay.Is("bx/ex: ABC {bx;203.1}TEXT{ex;203.2} DEF."); { var t = p.Source.Tags.ElementAt(0); t.TagType.Is(Tag.B); t.Id.Is("203.1"); t.Rid.Is("203r1"); t.Name.Is("bx"); t.Ctype.IsNull(); t.Display.IsNull(); t.Code.IsNull(); t.Number.Is(1); } { var t = p.Source.Tags.ElementAt(1); t.TagType.Is(Tag.E); t.Id.Is("203.2"); t.Rid.Is("203r1"); t.Name.Is("ex"); t.Ctype.IsNull(); t.Display.IsNull(); t.Code.IsNull(); t.Number.Is(2); } p.Target.Tags.Is(p.Source.Tags); } { var p = a.TransPairs.ElementAt(3); p.Serial.Is(4); p.Id.Is("204"); p.Source.DebuggerDisplay.Is("g: abc {g;204.1}text{g;204.1} def."); p.Target.DebuggerDisplay.Is("g: ABC {g;204.1}TEXT{g;204.1} DEF."); { var t = p.Source.Tags.ElementAt(0); t.TagType.Is(Tag.B); t.Id.Is("204.1"); t.Rid.Is("204.1"); t.Name.Is("g"); t.Ctype.IsNull(); t.Display.IsNull(); t.Code.IsNull(); t.Number.Is(1); } { var t = p.Source.Tags.ElementAt(1); t.TagType.Is(Tag.E); t.Id.Is("204.1"); t.Rid.Is("204.1"); t.Name.Is("g"); t.Ctype.IsNull(); t.Display.IsNull(); t.Code.IsNull(); t.Number.Is(2); } p.Target.Tags.Is(p.Source.Tags); } { var p = a.TransPairs.ElementAt(4); p.Serial.Is(5); p.Id.Is("205"); p.Source.DebuggerDisplay.Is("ph: abc {ph;205.1}text{ph;205.2} def."); p.Target.DebuggerDisplay.Is("ph: ABC {ph;205.1}TEXT{ph;205.2} DEF."); { var t = p.Source.Tags.ElementAt(0); t.TagType.Is(Tag.S); t.Id.Is("205.1"); t.Rid.Is("205.1"); t.Name.Is("ph"); t.Ctype.IsNull(); t.Display.IsNull(); t.Code.Is("[CODE]"); t.Number.Is(1); } { var t = p.Source.Tags.ElementAt(1); t.TagType.Is(Tag.S); t.Id.Is("205.2"); t.Rid.Is("205.2"); t.Name.Is("ph"); t.Ctype.IsNull(); t.Display.IsNull(); t.Code.Is("[/CODE]"); t.Number.Is(2); } p.Target.Tags.Is(p.Source.Tags); } { var p = a.TransPairs.ElementAt(5); p.Serial.Is(6); p.Id.Is("206"); p.Source.DebuggerDisplay.Is("x: abc {x;206.1}text{x;206.2} def."); p.Target.DebuggerDisplay.Is("x: ABC {x;206.1}TEXT{x;206.2} DEF."); { var t = p.Source.Tags.ElementAt(0); t.TagType.Is(Tag.S); t.Id.Is("206.1"); t.Rid.Is("206.1"); t.Name.Is("x"); t.Ctype.IsNull(); t.Display.IsNull(); t.Code.IsNull(); t.Number.Is(1); } { var t = p.Source.Tags.ElementAt(1); t.TagType.Is(Tag.S); t.Id.Is("206.2"); t.Rid.Is("206.2"); t.Name.Is("x"); t.Ctype.IsNull(); t.Display.IsNull(); t.Code.IsNull(); t.Number.Is(2); } p.Target.Tags.Is(p.Source.Tags); } { var p = a.TransPairs.ElementAt(6); p.Serial.Is(7); p.Id.Is("207"); p.Source.DebuggerDisplay.Is("it: abc {it;207.1}text{it;207.2} def."); p.Target.DebuggerDisplay.Is("it: ABC {it;207.1}TEXT{it;207.2} DEF."); { var t = p.Source.Tags.ElementAt(0); t.TagType.Is(Tag.B); t.Id.Is("207.1"); t.Rid.Is("207r1"); t.Name.Is("it"); t.Ctype.IsNull(); t.Display.IsNull(); t.Code.Is("[CODE]"); t.Number.Is(1); } { var t = p.Source.Tags.ElementAt(1); t.TagType.Is(Tag.E); t.Id.Is("207.2"); t.Rid.Is("207r1"); t.Name.Is("it"); t.Ctype.IsNull(); t.Display.IsNull(); t.Code.Is("[/CODE]"); t.Number.Is(2); } p.Target.Tags.Is(p.Source.Tags); } }
public void Read_Crafted_04() { var path = Path.Combine(IDIR, "Crafted04.xliff"); var bundle = new XliffReader().Read(path); var a = bundle.Assets.ElementAt(0); var pairs = a.TransPairs.ToArray(); { var p = pairs[0]; p.Id.Is("401a"); p.Source.DebuggerDisplay.Is("Segmentation"); p.Target.DebuggerDisplay.Is("SEGMENTATION"); } { var p = pairs[1]; p.Source.DebuggerDisplay.Is(" "); p.Target.DebuggerDisplay.Is(" "); } { var p = pairs[2]; p.Id.Is("402a"); p.Source.DebuggerDisplay.Is("Spaces are excluded from the segment."); p.Target.DebuggerDisplay.Is("SPACES ARE EXCLUDED FROM THE SEGMENT."); } { var p = pairs[3]; p.Source.DebuggerDisplay.Is(" "); p.Target.DebuggerDisplay.Is(" "); } { var p = pairs[4]; p.Id.Is("403a"); p.Source.DebuggerDisplay.Is("Multiple sentences."); p.Target.DebuggerDisplay.Is("MULTIPLE SENTENCES."); } { var p = pairs[5]; p.Source.DebuggerDisplay.Is(" "); p.Target.DebuggerDisplay.Is(" "); } { var p = pairs[6]; p.Id.Is("403b"); p.Source.DebuggerDisplay.Is("In a trans-unit."); p.Target.DebuggerDisplay.Is("IN A trans-unit."); } { var p = pairs[7]; p.Source.DebuggerDisplay.Is(" "); p.Target.DebuggerDisplay.Is(" "); } { var p = pairs[8]; p.Id.Is("403c"); p.Source.DebuggerDisplay.Is("Broken into segments."); p.Target.DebuggerDisplay.Is("BROKEN INTO SEGMENTS."); } { var p = pairs[9]; p.Source.DebuggerDisplay.Is(" "); p.Target.DebuggerDisplay.Is(" "); } { var p = pairs[10]; p.Source.DebuggerDisplay.Is("\u0009{g;404.1}{ph;404.2} "); p.Target.DebuggerDisplay.Is("\u0009{g;404.1}{ph;404.2} "); } { var p = pairs[11]; p.Id.Is("404a"); p.Source.DebuggerDisplay.Is("Multiple sentences."); p.Target.DebuggerDisplay.Is("MULTIPLE SENTENCES."); } { var p = pairs[12]; p.Source.DebuggerDisplay.Is(" "); p.Target.DebuggerDisplay.Is(" "); } { var p = pairs[13]; p.Id.Is("404b"); p.Source.DebuggerDisplay.Is("In a single {g;404.3}g{g;404.3}."); p.Target.DebuggerDisplay.Is("IN A SINGLE {g;404.3}g{g;404.3}."); } { var p = pairs[14]; p.Source.DebuggerDisplay.Is(" {ph;404.4}{g;404.1} "); p.Target.DebuggerDisplay.Is(" {ph;404.4}{g;404.1} "); } pairs.Length.Is(15); }