public void LoadAndSaveTest() { var adapter = new ResXResourceBundleAdapter(new FileSystem()); var bundle = adapter.Load("ResXResourceBundleAdapterTest.Sample.resx"); Assert.AreEqual(2, bundle.Count); Assert.IsTrue(bundle.ContainsCulture("neutral")); Assert.IsTrue(bundle.ContainsCulture("el-GR")); var baseResourceSet = bundle.NeutralOrFirst(); var resourceSet = bundle["el-GR"]; Assert.AreEqual(2, resourceSet.CountTranslatedItems(baseResourceSet)); Assert.AreEqual(1, resourceSet.CountMarkedForReviewing()); Assert.AreEqual(ResourceSetStatus.Unaffected, resourceSet.Status); // simulate that contents have been updated and save bundle["neutral"].Status = ResourceSetStatus.Updated; bundle["el-GR"].Status = ResourceSetStatus.Updated; adapter.Save("SaveTest.resx", bundle); // compare original and new files Assert.AreEqual(XmlReader.Create("ResXResourceBundleAdapterTest.Sample.resx").ReadOuterXml(), XmlReader.Create("SaveTest.resx").ReadOuterXml()); Assert.AreEqual(XmlReader.Create("ResXResourceBundleAdapterTest.Sample.el-GR.resx").ReadOuterXml(), XmlReader.Create("SaveTest.el-GR.resx").ReadOuterXml()); }
public void AddRemoveResourceSetWhenBaseNameDoesNotContainCultureInfoTest() { var adapter = new ResXResourceBundleAdapter(new FileSystem()); const string fileName = "ResXResourceBundleAdapterTest.Sample.resx"; var bundle = adapter.Load(fileName); var newResourceSet = bundle.Add("hi"); newResourceSet.Add("s1", new ResourceStringItem { Name = "s1", Value = "test" }); adapter.Save(fileName, bundle); Assert.IsTrue(File.Exists("ResXResourceBundleAdapterTest.Sample.hi.resx")); }
public void AddRemoveResourceSetWhenBaseNameContainsCultureInfoTest() { var adapter = new ResXResourceBundleAdapter(new FileSystem()); const string fileName = "CrossLoopStrings.en.xml"; var bundle = adapter.Load(fileName); var newResourceSet = bundle.Add("el"); newResourceSet.Add("s1", new ResourceStringItem {Name = "s1", Value = "test"}); adapter.Save(fileName, bundle); Assert.IsTrue(File.Exists("CrossLoopStrings.el.xml")); }
public void Xml2ResourceSetTest() { var adapter = new ResXResourceBundleAdapter(new FileSystem()); var bundle = adapter.Load("CrossLoopStrings.en.xml"); Assert.IsTrue(bundle.ContainsCulture("en")); Assert.IsTrue(bundle.ContainsCulture("it")); Assert.IsTrue(bundle.ContainsCulture("ja")); var resourceSet = bundle["en"]; Assert.AreEqual(173, resourceSet.Count); Assert.AreEqual("Connected to help", resourceSet["s3"].Value); }
public void AddRemoveResourceSetWhenBaseNameContainsCultureInfoTest() { var adapter = new ResXResourceBundleAdapter(new FileSystem()); const string fileName = "CrossLoopStrings.en.xml"; var bundle = adapter.Load(fileName); var newResourceSet = bundle.Add("el"); newResourceSet.Add("s1", new ResourceStringItem { Name = "s1", Value = "test" }); adapter.Save(fileName, bundle); Assert.IsTrue(File.Exists("CrossLoopStrings.el.xml")); }
private void ResourceBundle_Save() { if (this.Context.CurrentProjectIsDirty) { ResXResourceBundleAdapter resXResourceBundle = new ResXResourceBundleAdapter(new StandardAdapters.Common.FileSystem()); resXResourceBundle.Save(this.Context.CurrentBaseFile, this.Context.CurrentResourceBundle); this.Context.CurrentProjectIsDirty = false; } this.RefreshButtonState(); }
private void ResourceBundle_Open(string fileName) { if (this.AskToSave()) { if (string.IsNullOrEmpty(fileName)) { if (OpenFileDialog1.ShowDialog() == DialogResult.OK) { fileName = OpenFileDialog1.FileName; } else { return; } } // change current directory to match the files directory FileInfo fileInfo = new FileInfo(fileName); // unsubscribe to change events of previous base resource set if (this.Context.CurrentBaseResourceSet != null) { this.Context.CurrentBaseResourceSet.CollectionChanged -= this.CurrentBaseResourceSet_CollectionChanged; this.Context.CurrentBaseResourceSet.ResourceItemChanged -= this.CurrentBaseResourceSet_ResourceItemChanged; } ResXResourceBundleAdapter resXResourceBundle = new ResXResourceBundleAdapter(new StandardAdapters.Common.FileSystem()); this.Context.CurrentResourceBundle = resXResourceBundle.Load(fileName); this.Context.CurrentBaseFile = fileName; this.Context.CurrentBaseResourceSet = this.Context.CurrentResourceBundle.NeutralOrFirst(); // subscribe to change events of base resource set this.Context.CurrentBaseResourceSet.CollectionChanged += this.CurrentBaseResourceSet_CollectionChanged; this.Context.CurrentBaseResourceSet.ResourceItemChanged += this.CurrentBaseResourceSet_ResourceItemChanged; // load bundle on UI this.RefreshCurrentBundle(); // insert into recent items list string fileNameStipped = StringTools.CompactText(fileName, 50); RecentItemsManager.PushItem(new RecentItem(fileNameStipped, "file", fileName)); // show caption Text = fileInfo.Name + " - " + Tools.GetAssemblyProduct(); this.Context.CurrentProjectIsDirty = false; this.Context.InvokeCurrentResourceBundleChanged(); this.RefreshButtonState(); // if there is only one resource set (the base one) the propose to create a new one // to start translation if (this.Context.CurrentResourceBundle.Count == 1) { this.ResourceSet_Add(); } } }