public void RoundTripExample6() { ResourceData rd1 = new ResourceData("rd1", new ResourceItem("ri1", new Source("https://open.vistatec.com/ocelot"))); JliffDocument graph = new JliffDocument("en-US", "it-IT", new Localization.Jliff.Graph.File("f1", new Unit("u1", new Segment(new List <IElement> { new SmElement("mrk1"), new TextElement("Ocelot"), new EmElement(), new TextElement(" is a free, open source editor with advanced features for reviewing and correcting translations.") }, new List <IElement>() { } ) ) ) ); graph.Files[0].ResourceData = rd1; }
public void RoundtripExample5() { JliffDocument model = new JliffDocument("en", "de", new Group("u1", new Unit("u2", new Segment(new List <IElement> { new TextElement("Press the "), new SmElement(), new TextElement("TAB KEY"), new EmElement(), new TextElement(".") }, new List <IElement> { new TextElement("Drücken Sie die "), new SmElement(), new TextElement("TAB-TASTE"), new EmElement(), new TextElement(".") } ) ) ) ); }
public void XlfWithModules() { JliffBuilder bldr = new JliffBuilder("en-US", "it-IT"); Xliff20Filter fltr = new Xliff20Filter(); fltr.XlfRootEvent += bldr.XlfRoot; fltr.XlfFileEvent += bldr.File; fltr.XlfUnitEvent += bldr.Unit; fltr.XlfGroupEvent += bldr.Group; fltr.XlfSegmentEvent += bldr.Segment; fltr.XlfSourceEvent += bldr.Source; fltr.XlfTargetEvent += bldr.Target; fltr.XlfIgnorableEvent += bldr.Ignorable; fltr.XlfPhElementEvent += bldr.PhElement; fltr.XlfSkeletonEvent += bldr.Skeleton; fltr.XlfTextEvent += bldr.Text; fltr.XlfSmElementEvent += bldr.SmElement; fltr.XlfEmElementEvent += bldr.EmElement; fltr.XlfScElementEvent += bldr.ScElement; fltr.XlfEcElementEvent += bldr.EcElement; fltr.XlfOriginalDataEvent += bldr.OriginalData; fltr.ModItsLocQualityIssues += bldr.LocQualityIssues; fltr.ModItsLocQualityIssue += bldr.LocQualityIssue; fltr.ModMetadataEvent += bldr.Metadata; fltr.ModMetaGroupEvent += bldr.MetaGroup; fltr.ModMetaitemEvent += bldr.Metaitem; fltr.ModResResourceDataEvent += bldr.ResourceData; fltr.ModResResourceItemEvent += bldr.ResourceItem; fltr.ModResSourceEvent += bldr.ResourceSource; fltr.ModGlsEntryEvent += bldr.GlossaryEntry; fltr.ModGlsDefinitionEvent += bldr.Definition; fltr.ModGlsTermEvent += bldr.Term; fltr.ModGlsTranslationEvent += bldr.Translation; fltr.ModTransCandMatchEvent += bldr.Match; fltr.ModCtrChangeTrackEvent += bldr.ChangeTrack; fltr.ModCtrRevisionsEvent += bldr.Revisions; fltr.ModCtrRevisionEvent += bldr.Revision; fltr.ModCtrRevisionItemEvent += bldr.RevisionItem; fltr.Filter(new StreamReader(Path.Combine(XlfFiles, "Ocelot.xlf"))); bldr.Serialize(Path.Combine(XlfFiles, "Ocelot.json")); JsonSchema schema = JsonSchema.Parse(schemaDef); var obGraph = JObject.FromObject(bldr.Jliff); Assert.IsTrue(obGraph.IsValid(schema)); JliffDocument jd = Converter.Deserialize(new FileInfo(Path.Combine(XlfFiles, "Ocelot.json"))); Group grp = jd.Files[0].Subfiles[1] as Group; Unit u = grp.Subgroups[1] as Unit; ChangeTrack ct = u.ChangeTrack; Assert.IsNotNull(ct); Assert.IsTrue(ct.Revisions.Items[1].Author.Equals("phil")); Assert.IsTrue(ct.Revisions.Items[1].Item.Text.StartsWith("Quando un segmento è selezionato nella Vista segmento")); }
public void RoundtripExample2() { var unit1 = new Unit("1"); var unit2 = new Unit("2"); var unit3 = new Unit("3"); var segment1 = new Segment( new TextElement("Quetzal"), new TextElement("Quetzal")); var segment2 = new Segment( new TextElement("An application to manipulate and process XLIFF documents"), new TextElement("XLIFF 文書を編集、または処理 するアプリケーションです。")); var segment3 = new Segment( new TextElement("XLIFF Data Manager"), new TextElement("XLIFF データ・マネージャ")); unit1.Subunits.Add(segment1); unit2.Subunits.Add(segment2); unit3.Subunits.Add(segment3); var model = new JliffDocument("en", "fr"); model.Files.Add(new Localization.Jliff.Graph.File("f1")); model.Files[0].Skeleton = new Skeleton("Graphic Example.psd.skl"); model.Files[0].Subfiles = new List <ISubfile> { unit1, unit2, unit3 }; var dllPath = Assembly.GetAssembly(typeof(ModelTests)).Location; var dllName = Assembly.GetAssembly(typeof(ModelTests)).GetName().Name; var outputPath = dllPath.Replace(dllName + ".dll", ""); Converter.Serialize(Path.Combine(outputPath, "example2.json"), model); Converter.Deserialize(new FileInfo(Path.Combine(outputPath, "example2.json"))); JsonSchema schema = JsonSchema.Parse(schemaDef); var obGraph = JObject.FromObject(model); Assert.IsTrue(obGraph.IsValid(schema)); }
public void RoundTripSegmentsFragment() { JliffDocument jd = new JliffDocument("en-GB", "it-IT", new Unit("unit000001", new Segment( new TextElement("Ocelot is open source and cross-platform."), new TextElement("")) ) ); Converter.Serialize(Path.Combine(OutputFolder, "SegmentFragment.json"), jd); schemaDef = System.IO.File.ReadAllText(Path.Combine($"{schemasLocation}\\JLIFF-2.1", "jliff-schema-2.1.json")); JsonSchema schema = JsonSchema.Parse(schemaDef); var obGraph = JObject.FromObject(jd); Assert.IsTrue(obGraph.IsValid(schema)); }
public void Fluent() { JliffDocument maximalist = new JliffDocument("en", "de", new File("d1e1", new Group("d1e1", new Group("d1e2", new Unit("d1e3", new Segment( new TextElement("Birds in Oregon"), new TextElement(""))), new Unit("d1e5", new Segment( new TextElement( "Oregon is a mostly temperate state. There are many different kinds of birds that thrive."), new TextElement("")) ), new Group("d1e7", new Unit("d1e8", new Segment( new TextElement("High Altitude Birds"), new TextElement("") ) ), new Unit("d1e10", new Segment( new TextElement( "Birds that thrive in the high altitude include the White-tailed Ptarmigan, Sharp-tailed Grouse, Yellow-billed Loon, Cattle Egret, Gyrfalcon, Snowy Owl, Yellow-billed Cuckoo, and Boreal Owl."), new TextElement("") ) ) ), new Group("d1e12", new Unit("d1e13", new Segment( new TextElement("Ocean Birds"), new TextElement("") ) ), new Unit("d1e15", new Segment( new TextElement( "Common ocean birds are Brandt's Cormorant, Double-crested Cormorant, Pelagic Cormorant, Pigeon Guillemot, and the Tufted Puffin."), new TextElement("") ) ) ), new Group("d1e17", new Unit("d1e18", new Segment( new TextElement("Desert Birds"), new TextElement("") ) ), new Unit("d1e20", new Segment( new TextElement( "Birds you find in the desert include the Sage Grouse, California Quail, and Prairie Falcon."), new TextElement("") ) ) ) ) ) ) ); maximalist.Context = new Context21(); var dllPath = Assembly.GetAssembly(typeof(ModelTests)).Location; var dllName = Assembly.GetAssembly(typeof(ModelTests)).GetName().Name; var outputPath = dllPath.Replace(dllName + ".dll", ""); Converter.Serialize(Path.Combine(outputPath, "XliffBook.json"), maximalist); JliffDocument w = Converter.Deserialize(new FileInfo(Path.Combine(outputPath, "XliffBook.json"))); Assert.AreEqual("de", w.TrgLang); JsonSchema schema = JsonSchema.Parse(schemaDef); var obGraph = JObject.FromObject(maximalist); Assert.IsTrue(obGraph.IsValid(schema)); }
public void Procedural() { JliffDocument j = new JliffDocument("en", "de"); j.Context = new Context21(); File f = new File("d1e1"); j.Files.Add(f); Group gd1e1 = new Group("d1e1"); f.Subfiles.Add(gd1e1); Group gd1e2 = new Group("d1e2"); gd1e1.Subgroups.Add(gd1e2); Unit ud1e3 = new Unit("d1e3"); TextElement sd1e3 = new TextElement("Birds in Oregon"); TextElement td1e3 = new TextElement(""); Segment sgd1e3 = new Segment(sd1e3, td1e3); ud1e3.Subunits.Add(sgd1e3); gd1e2.Subgroups.Add(ud1e3); Unit ud1e5 = new Unit("d1e5"); TextElement sd1e5 = new TextElement( "Oregon is a mostly temperate state. There are many different kinds of birds that thrive."); TextElement td1e5 = new TextElement(""); Segment sgd1e5 = new Segment(sd1e5, td1e5); ud1e5.Subunits.Add(sgd1e5); gd1e2.Subgroups.Add(ud1e5); Group gd1e7 = new Group("d1e7"); gd1e2.Subgroups.Add(gd1e7); Unit ud1e8 = new Unit("d1e8"); TextElement sd1e8 = new TextElement("High Altitude Birds"); TextElement td1e8 = new TextElement(""); Segment sgd1e8 = new Segment(sd1e8, td1e8); ud1e8.Subunits.Add(sgd1e8); gd1e7.Subgroups.Add(ud1e8); Unit ud1e10 = new Unit("d1e10"); TextElement sd1e10 = new TextElement( "Birds that thrive in the high altitude include the White-tailed Ptarmigan, Sharp-tailed Grouse, Yellow-billed Loon, Cattle Egret, Gyrfalcon, Snowy Owl, Yellow-billed Cuckoo, and Boreal Owl."); TextElement td1e10 = new TextElement(""); Segment sgd1e10 = new Segment(sd1e10, td1e10); ud1e10.Subunits.Add(sgd1e10); gd1e7.Subgroups.Add(ud1e10); Group gd1e12 = new Group("d1e12"); gd1e2.Subgroups.Add(gd1e12); Unit ud1e13 = new Unit("d1e13"); TextElement sd1e13 = new TextElement("Ocean Birds"); TextElement td1e13 = new TextElement(""); Segment sgd1e13 = new Segment(sd1e13, td1e13); ud1e13.Subunits.Add(sgd1e13); gd1e12.Subgroups.Add(ud1e13); Group gd1e17 = new Group("d1e17"); gd1e2.Subgroups.Add(gd1e17); Unit ud1e15 = new Unit("d1e15"); TextElement sd1e15 = new TextElement( "Common ocean birds are Brandt's Cormorant, Double-crested Cormorant, Pelagic Cormorant, Pigeon Guillemot, and the Tufted Puffin."); TextElement td1e15 = new TextElement(""); Segment sgd1e15 = new Segment(sd1e15, td1e15); ud1e15.Subunits.Add(sgd1e15); gd1e12.Subgroups.Add(ud1e15); Unit ud1e18 = new Unit("d1e18"); TextElement sd1e18 = new TextElement("Desert Birds"); TextElement td1e18 = new TextElement(""); Segment sgd1e18 = new Segment(sd1e18, td1e18); ud1e18.Subunits.Add(sgd1e18); gd1e17.Subgroups.Add(ud1e18); Unit ud1e20 = new Unit("d1e20"); TextElement sd1e20 = new TextElement( "Birds you find in the desert include the Sage Grouse, California Quail, and Prairie Falcon."); TextElement td1e20 = new TextElement(""); Segment sgd1e20 = new Segment(sd1e20, td1e20); ud1e20.Subunits.Add(sgd1e20); gd1e17.Subgroups.Add(ud1e20); var dllPath = Assembly.GetAssembly(typeof(ModelTests)).Location; var dllName = Assembly.GetAssembly(typeof(ModelTests)).GetName().Name; var outputPath = dllPath.Replace(dllName + ".dll", ""); Converter.Serialize(Path.Combine(outputPath, "XliffBook2.json"), j); JsonSchema schema = JsonSchema.Parse(schemaDef); var obGraph = JObject.FromObject(j); Assert.IsTrue(obGraph.IsValid(schema)); }
public void RoundtripExample4() { var u1 = new Unit("u1"); var te1 = new TextElement("Press the "); var te2 = new SmElement("m1"); var te3 = new TextElement("TAB key"); var te4 = new EmElement(); var te5 = new TextElement("."); var te6 = new TextElement("Drücken Sie die "); var te7 = new SmElement("m2"); var te8 = new TextElement("TAB-TASTE"); var te9 = new EcElement(); var te10 = new TextElement("."); var s1 = new Segment(); s1.Source.Add(te1); s1.Source.Add(te2); s1.Source.Add(te3); s1.Source.Add(te4); s1.Source.Add(te5); s1.Target.Add(te6); s1.Target.Add(te7); s1.Target.Add(te8); s1.Target.Add(te9); s1.Target.Add(te10); var unit1 = new Unit("u1"); unit1.Subunits.Add(s1); var gloss = new GlossaryEntry(); var def = new Definition(); def.Source = "publicTermbase"; def.Text = "A keyboard key that is traditionally used to insert tab characters into a document."; gloss.Definition = def; var t1 = new Translation("1", "myTermbase", "Tabstopptaste"); var t2 = new Translation("2", "myTermbase", "TAB-TASTE"); gloss.Translations.Add(t1); gloss.Translations.Add(t2); unit1.Glossary.Add(gloss); var model = new JliffDocument("en", "de"); model.Files.Add(new Localization.Jliff.Graph.File("f1")); model.Files[0].Subfiles = new List <ISubfile> { unit1 }; var dllPath = Assembly.GetAssembly(typeof(ModelTests)).Location; var dllName = Assembly.GetAssembly(typeof(ModelTests)).GetName().Name; var outputPath = dllPath.Replace(dllName + ".dll", ""); Converter.Serialize(Path.Combine(outputPath, "example4.json"), model); Converter.Deserialize(new FileInfo(Path.Combine(outputPath, "example4.json"))); JsonSchema schema = JsonSchema.Parse(schemaDef); var obGraph = JObject.FromObject(model); Assert.IsTrue(obGraph.IsValid(schema)); }
public void RoundtripExample3() { var unit1 = new Unit("1"); var unit2 = new Unit("2"); var segment1 = new Segment( new TextElement("Quetzal"), new TextElement("Quetzal")); var segment2 = new Segment( new TextElement("An application to manipulate and process XLIFF documents"), new TextElement("XLIFF 文書を編集、または処理 するアプリケーションです。")); var grp = new MetaGroup(); unit1.Subunits.Add(segment1); unit2.Subunits.Add(segment2); var md = new Metadata(); md.Id = "md14"; unit1.Metadata = md; var breakfast = new Metaitem("breakfast", "eggs"); var phase = new Metaitem("phase", "draft"); var version = new Metaitem("version", "3"); var grp2 = new MetaGroup(); grp2.Meta.Add(breakfast); var grp1 = new MetaGroup(); grp1.Meta.Add(version); grp1.Meta.Add(phase); grp1.Meta.Add(grp2); md.Groups.Add(grp1); var model = new JliffDocument("en-US", "ja-JP"); model.Files.Add(new Localization.Jliff.Graph.File("f1")); var test = new Metaitem("key", "value"); var test1 = new MetaGroup(); test1.Meta.Add(test); var list = new List <MetaGroup>(); list.Add(test1); model.Files[0].Metadata = list; model.Files[0].Skeleton = new Skeleton("Graphic Example.psd.skl"); model.Files[0].Subfiles = new List <ISubfile> { unit1, unit2 }; var dllPath = Assembly.GetAssembly(typeof(ModelTests)).Location; var dllName = Assembly.GetAssembly(typeof(ModelTests)).GetName().Name; var outputPath = dllPath.Replace(dllName + ".dll", ""); Converter.Serialize(Path.Combine(outputPath, "example3.json"), model); Converter.Deserialize(new FileInfo(Path.Combine(outputPath, "example3.json"))); JsonSchema schema = JsonSchema.Parse(schemaDef); var obGraph = JObject.FromObject(model); Assert.IsTrue(obGraph.IsValid(schema)); }
public void RoundtripExample1() { JliffDocument model = new JliffDocument("en", "fr", new Localization.Jliff.Graph.File("f1")); var u1 = new Unit("u1"); u1.OriginalData.Add("d1", "[C1/]"); u1.OriginalData.Add("d2", "[C2]"); u1.OriginalData.Add("d3", "[/C2]"); var seg = new Segment(); seg.State = Enumerations.State.translated.ToString(); seg.CanResegment = "yes"; var ph1 = new PhElement("c1"); ph1.DataRef = "d1"; var tph1 = new PhElement("c1"); tph1.DataRef = "d1"; var sc1 = new ScElement("c2"); sc1.DataRef = "d2"; var tsc1 = new ScElement("c2"); tsc1.DataRef = "d2"; var te3 = new TextElement("text"); var tte3 = new TextElement("AAA"); var ec1 = new EcElement(); ec1.DataRef = "d3"; ec1.StartRef = new Nmtoken("c2"); var tec1 = new EcElement(); tec1.DataRef = "d3"; tec1.StartRef = new Nmtoken("c2"); var te1 = new TextElement("aaa"); var tte1 = new TextElement("AAA"); var te2 = new TextElement(". "); var i1 = new Ignorable(); i1.Source.Add(te2); seg.Source.Add(ph1); seg.Source.Add(te1); seg.Source.Add(sc1); seg.Source.Add(te3); seg.Source.Add(ec1); seg.Target.Add(tph1); seg.Target.Add(tte1); seg.Target.Add(tsc1); seg.Target.Add(tte3); seg.Target.Add(tec1); u1.Subunits.Add(seg); u1.Subunits.Add(i1); model.Files[0].Subfiles.Add(u1); var g = new Group("g1"); var u2 = new Unit("u2"); var g2 = new Group("g2"); model.Files[0].Subfiles.Add(g); g.Subgroups.Add(u2); g.Subgroups.Add(g2); model.Context = new Context21(); var dllPath = Assembly.GetAssembly(typeof(ModelTests)).Location; var dllName = Assembly.GetAssembly(typeof(ModelTests)).GetName().Name; var outputPath = dllPath.Replace(dllName + ".dll", ""); Converter.Serialize(Path.Combine(outputPath, "example1.json"), model); Converter.Deserialize(new FileInfo(Path.Combine(outputPath, "example1.json"))); JsonSchema schema = JsonSchema.Parse(schemaDef); var obGraph = JObject.FromObject(model); Assert.IsTrue(obGraph.IsValid(schema)); }