コード例 #1
0
        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;
        }
コード例 #2
0
 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(".")
     }
                                                                            )
                                                                )
                                                       )
                                             );
 }
コード例 #3
0
        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"));
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        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));
        }
コード例 #6
0
        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));
        }
コード例 #7
0
        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));
        }
コード例 #8
0
        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));
        }
コード例 #9
0
        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));
        }
コード例 #10
0
        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));
        }