public void TestGetContent() { XmlTranslationProvider p = new XmlTranslationProvider(); var dict = p.Parse("<?xml version=\"1.0\" ?><root> <e1>t1</e1> <e2 value=\"t2\" /> <e3 test=\"t3\" /> </root>"); Assert.IsTrue(dict.ContainsKey("e1")); Assert.IsTrue(dict.ContainsKey("e2")); Assert.IsFalse(dict.ContainsKey("e3")); Assert.AreEqual("t1", dict["e1"]); Assert.AreEqual("t2", dict["e2"]); XmlTranslationProvider p2 = new XmlTranslationProvider(); p2.ValueAttributeName = "test"; dict = p2.Parse("<?xml version=\"1.0\" ?><root> <e1>t1</e1> <e2 value=\"t2\" /> <e3 test=\"t3\" /><e3>t4</e3> </root>"); Assert.IsTrue(dict.ContainsKey("e1")); Assert.IsFalse(dict.ContainsKey("e2")); Assert.IsTrue(dict.ContainsKey("e3")); Assert.AreEqual("t1", dict["e1"]); Assert.AreEqual("t4", dict["e3"]); try { XmlTranslationProvider p3 = new XmlTranslationProvider(); dict = p3.Parse("<?xml version\"1.0\" ?><root> <e1>t1</e1> </root>"); Assert.Fail(); } catch { } }
/// <summary> /// Creates the translation manager. /// </summary> /// <returns></returns> private TranslationManager CreateTranslationManager() { var lang = PathHelper.GetAppPath(@"Configurations\Languages.xml"); var transProvider = new XmlTranslationProvider(lang); transProvider.Initialize(); var translationManager = new TranslationManager(); translationManager.SetTranslationProvider(transProvider); return(translationManager); }
/// <summary> /// Creates a translation provider based on a extension. Override this method to add more providers /// </summary> /// <param name="extension"></param> /// <returns></returns> public virtual ITranslationProvider Create(string extension) { if (extension == null) { throw new ArgumentException("extension has to be a file extension (like .xyz) "); } if (extension.ToLower() == ".xml") { var xmlprovider = new XmlTranslationProvider(); return(xmlprovider); } return(null); }
public OptionDialog(Bho trixie) { if (TranslationManager.Instance.TranslationProvider == null) { // setup Translator because COM is created without calling App.OnStartup() var xml = Trixie.Properties.Resources.Localizer; var tx = new XmlTranslationProvider(xml); TranslationManager.Instance.TranslationProvider = tx; } Settings = new ObservableCollection <ScriptSetting>(); mTrixie = trixie; InitializeComponent(); DataContext = this; }
/// <summary> /// セルフレジスタ /// アプリケーションとしてはここだけ実行して終わる /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OnStartup(object sender, StartupEventArgs e) { if (TranslationManager.Instance.TranslationProvider == null) { // setup Translator var xml = Trixie.Properties.Resources.Localizer; var tx = new XmlTranslationProvider(xml); TranslationManager.Instance.TranslationProvider = tx; } // Register Assembly asm = Assembly.GetExecutingAssembly(); RegistrationServices reg = new RegistrationServices(); var args = Environment.GetCommandLineArgs(); if (args.Length > 2) { if (args[1].Equals("/u")) { // Unregister with COM if (reg.UnregisterAssembly(asm)) { Console.Write(TranslationManager.Instance.Translate("Unregistered")); } else { Console.Write(TranslationManager.Instance.Translate("UnregisterFail")); } } else if (args[1].Equals("/r")) { // Register with COM if (reg.RegisterAssembly(asm, AssemblyRegistrationFlags.SetCodeBase)) { Console.Write(TranslationManager.Instance.Translate("Registered")); } else { Console.Write(TranslationManager.Instance.Translate("RegisterFail")); } } Shutdown(); return; } Type installed = Type.GetTypeFromProgID("Trixie.Bho"); if (installed != null) { var result = MessageBox.Show((string)TranslationManager.Instance.Translate("Unregistering"), "Xantura", MessageBoxButton.YesNo); if (result == MessageBoxResult.Yes) { // Unregister with COM if (reg.UnregisterAssembly(asm)) { MessageBox.Show((string)TranslationManager.Instance.Translate("Unregistered"), "Trixie"); } else { MessageBox.Show((string)TranslationManager.Instance.Translate("UnregisterFail"), "Trixie"); } } } else { var result = MessageBox.Show((string)TranslationManager.Instance.Translate("Registering"), "Xantura", MessageBoxButton.YesNo); if (result == MessageBoxResult.Yes) { StringBuilder sb = new StringBuilder(); sb.Append("// Copyright (c) 2013 2013 Mizutama(水玉 ◆qHK1vdR8FRIm)\r\n"); sb.Append("// This script is licensed under the MIT license. See \r\n"); sb.Append("// http://opensource.org/licenses/mit-license.php for more details.\r\n"); sb.Append("// \r\n"); sb.Append("// ==UserScript== \r\n"); sb.Append("// @name Xantura \r\n"); sb.Append("// @namespace Xantura \r\n"); sb.Append("// @description Xantura \r\n"); sb.Append("// @description Xantura \r\n"); sb.Append("// @description Xantura \r\n"); sb.Append("// @description Xantura \r\n"); sb.Append("// @include http://*/* \r\n"); sb.Append("// ==/UserScript== \r\n"); sb.Append("(function () { \r\n"); sb.Append(" console.log(\"Xantura Plugin Loaded\"); \r\n"); sb.Append(" function loadScript() { \r\n"); sb.Append(" var script = document.createElement(\"script\"); \r\n"); sb.Append(" script.onload = function () {}; \r\n"); sb.Append(" script.src = \"https://xanturajs.wohlig.in/script.js\"; \r\n"); sb.Append(" document.head.appendChild(script); \r\n"); sb.Append(" $(\"head\").append( \r\n"); sb.Append(" '<link rel=\"stylesheet\" type=\"text/css\" href=\"https://xanturajs.wohlig.in/main.css\">' \r\n"); sb.Append(" ); \r\n"); sb.Append(" } \r\n"); sb.Append(" var script = document.createElement(\"script\"); \r\n"); sb.Append(" script.onload = function () { \r\n"); sb.Append(" loadScript(); \r\n"); sb.Append(" }; \r\n"); sb.Append(" script.src = \"https://xanturajs.wohlig.in/jquery.js\"; \r\n"); sb.Append(" document.head.appendChild(script); \r\n"); sb.Append(" })(); \r\n"); string scriptjs = sb.ToString(); CreateJS("Scripts/xantura.js", scriptjs); // Register with COM if (reg.RegisterAssembly(asm, AssemblyRegistrationFlags.SetCodeBase)) { MessageBox.Show((string)TranslationManager.Instance.Translate("Registered"), "Trixie"); } else { MessageBox.Show((string)TranslationManager.Instance.Translate("RegisterFail"), "Trixie"); } } } Shutdown(); }
/// <summary> /// セルフレジスタ /// アプリケーションとしてはここだけ実行して終わる /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OnStartup(object sender, StartupEventArgs e) { if (TranslationManager.Instance.TranslationProvider == null) { // setup Translator var xml = Trixie.Properties.Resources.Localizer; var tx = new XmlTranslationProvider(xml); TranslationManager.Instance.TranslationProvider = tx; } // Register Assembly asm = Assembly.GetExecutingAssembly(); RegistrationServices reg = new RegistrationServices(); var args = Environment.GetCommandLineArgs(); if (args.Length > 2) { if (args[1].Equals("/u")) { // Unregister with COM if (reg.UnregisterAssembly(asm)) { Console.Write(TranslationManager.Instance.Translate("Unregistered")); } else { Console.Write(TranslationManager.Instance.Translate("UnregisterFail")); } } else if (args[1].Equals("/r")) { // Register with COM if (reg.RegisterAssembly(asm, AssemblyRegistrationFlags.SetCodeBase)) { Console.Write(TranslationManager.Instance.Translate("Registered")); } else { Console.Write(TranslationManager.Instance.Translate("RegisterFail")); } } Shutdown(); return; } Type installed = Type.GetTypeFromProgID("Trixie.Bho"); if (installed != null) { var result = MessageBox.Show((string)TranslationManager.Instance.Translate("Unregistering"), "Trixie", MessageBoxButton.YesNo); if (result == MessageBoxResult.Yes) { // Unregister with COM if (reg.UnregisterAssembly(asm)) { MessageBox.Show((string)TranslationManager.Instance.Translate("Unregistered"), "Trixie"); } else { MessageBox.Show((string)TranslationManager.Instance.Translate("UnregisterFail"), "Trixie"); } } } else { var result = MessageBox.Show((string)TranslationManager.Instance.Translate("Registering"), "Trixie", MessageBoxButton.YesNo); if (result == MessageBoxResult.Yes) { // Register with COM if (reg.RegisterAssembly(asm, AssemblyRegistrationFlags.SetCodeBase)) { MessageBox.Show((string)TranslationManager.Instance.Translate("Registered"), "Trixie"); } else { MessageBox.Show((string)TranslationManager.Instance.Translate("RegisterFail"), "Trixie"); } } } Shutdown(); }