예제 #1
0
        public TranslationIOUnit(EditorInternalConfig config, DefaultLocalizationRepository defaultLocalizationRepository, EditorTranslationIORepository editorTranslationRepository)
        {
            if (defaultLocalizationRepository == null)
            {
                throw new ArgumentNullException(nameof(DefaultLocalizationRepository));
            }

            if (editorTranslationRepository == null)
            {
                throw new ArgumentNullException(nameof(EditorTranslationIORepository));
            }

            if (config == null)
            {
                throw new ArgumentNullException(nameof(EditorInternalConfig));
            }

            this._defaultLocalizationRepository = defaultLocalizationRepository;
            this._editorTranslationRepository   = editorTranslationRepository;

            var exporterType = ReflectionHelper
                               .GetAllSubtypes(typeof(ITranslationExport))
                               .First(e => e.Name == config.TranslationExportProvider);

            this._translationExport = (ITranslationExport)Activator.CreateInstance(exporterType);

            var importerType = ReflectionHelper
                               .GetAllSubtypes(typeof(ITranslationImport))
                               .First(e => e.Name == config.TranslationImportProvider);

            this._translationImport = (ITranslationImport)Activator.CreateInstance(importerType);
        }
예제 #2
0
        public static void ShowTranslationsWindow()
        {
            var config = new EditorConfigRepository().GetInternalConfig();
            var defaultLocalizationRepository = new DefaultLocalizationRepository();
            var editorTranslationIORepository = new EditorTranslationIORepository(new TranslationStorageProvider());

            var ioUnit = new TranslationIOUnit(config, defaultLocalizationRepository, editorTranslationIORepository);

            new TranslationInfoPresenter(
                new EditorTranslationInfoRepository(), ioUnit)
            .Run();
        }