/// <summary> /// Initializes a new instance of the <see cref="FwLexiconPlugin"/> class. /// </summary> public FwLexiconPlugin() { RegistryHelper.CompanyName = DirectoryFinder.CompanyName; RegistryHelper.ProductName = "FieldWorks"; // setup necessary environment variables on Linux if (MiscUtils.IsUnix) { // update ICU_DATA to location of ICU data files if (string.IsNullOrEmpty(Environment.GetEnvironmentVariable("ICU_DATA"))) { string codeIcuDataPath = Path.Combine(ParatextLexiconPluginDirectoryFinder.CodeDirectory, "Icu" + Icu.Version); #if DEBUG string icuDataPath = codeIcuDataPath; #else string icuDataPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), ".config/fieldworks/Icu" + Icu.Version); if (!Directory.Exists(icuDataPath)) { icuDataPath = codeIcuDataPath; } #endif Environment.SetEnvironmentVariable("ICU_DATA", icuDataPath); } // update COMPONENTS_MAP_PATH to point to code directory so that COM objects can be loaded properly if (string.IsNullOrEmpty(Environment.GetEnvironmentVariable("COMPONENTS_MAP_PATH"))) { string compMapPath = Path.GetDirectoryName(FileUtils.StripFilePrefix(Assembly.GetExecutingAssembly().CodeBase)); Environment.SetEnvironmentVariable("COMPONENTS_MAP_PATH", compMapPath); } // update FW_ROOTCODE so that strings-en.txt file can be found if (string.IsNullOrEmpty(Environment.GetEnvironmentVariable("FW_ROOTCODE"))) { Environment.SetEnvironmentVariable("FW_ROOTCODE", ParatextLexiconPluginDirectoryFinder.CodeDirectory); } } Icu.InitIcuDataDir(); m_syncRoot = new object(); m_lexiconCache = new FdoLexiconCollection(); m_fdoCacheCache = new FdoCacheCollection(); m_activationContext = new ActivationContextHelper("FwParatextLexiconPlugin.dll.manifest"); // initialize client-server services to use Db4O backend for FDO m_ui = new ParatextLexiconPluginFdoUI(m_activationContext); var dirs = ParatextLexiconPluginDirectoryFinder.FdoDirectories; ClientServerServices.SetCurrentToDb4OBackend(m_ui, dirs); }
/// <summary> /// Initializes a new instance of the <see cref="FwLexiconPlugin"/> class. /// </summary> public FwLexiconPlugin() { FwRegistryHelper.Initialize(); // setup necessary environment variables on Linux if (MiscUtils.IsUnix) { // update ICU_DATA to location of ICU data files if (string.IsNullOrEmpty(Environment.GetEnvironmentVariable("ICU_DATA"))) { string codeIcuDataPath = Path.Combine(ParatextLexiconPluginDirectoryFinder.CodeDirectory, "Icu" + CustomIcu.Version); #if DEBUG string icuDataPath = codeIcuDataPath; #else string icuDataPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), ".config/fieldworks/Icu" + CustomIcu.Version); if (!Directory.Exists(icuDataPath)) { icuDataPath = codeIcuDataPath; } #endif Environment.SetEnvironmentVariable("ICU_DATA", icuDataPath); } // update COMPONENTS_MAP_PATH to point to code directory so that COM objects can be loaded properly if (string.IsNullOrEmpty(Environment.GetEnvironmentVariable("COMPONENTS_MAP_PATH"))) { string compMapPath = Path.GetDirectoryName(FileUtils.StripFilePrefix(Assembly.GetExecutingAssembly().CodeBase)); Environment.SetEnvironmentVariable("COMPONENTS_MAP_PATH", compMapPath); } // update FW_ROOTCODE so that strings-en.txt file can be found if (string.IsNullOrEmpty(Environment.GetEnvironmentVariable("FW_ROOTCODE"))) { Environment.SetEnvironmentVariable("FW_ROOTCODE", ParatextLexiconPluginDirectoryFinder.CodeDirectory); } } FwUtils.InitializeIcu(); if (!Sldr.IsInitialized) { Sldr.Initialize(); } m_syncRoot = new object(); m_lexiconCache = new FdoLexiconCollection(); m_cacheCache = new LcmCacheCollection(); m_ui = new ParatextLexiconPluginLcmUI(); }