コード例 #1
0
ファイル: Program.cs プロジェクト: pauldotknopf/Noodle
        static void Main(string[] args)
        {
            try
            {
                var arguements = Args.Parse<Arguements>(args);

                var resources = new LanguageFileParser().DeserializeLanguagesFile(arguements.InputFile);

                foreach (var language in resources)
                {
                    var languageDirectory = new DirectoryInfo(Path.Combine(arguements.OutputDirectory, language.First.LanguageCulture));

                    if(!languageDirectory.Exists)
                        languageDirectory.Create();

                    if (arguements.CleanOutputDirectory)
                    {
                        foreach (var file in languageDirectory.GetFiles())
                            file.Delete();
                        foreach (var dir in languageDirectory.GetDirectories())
                            dir.Delete(true);
                    }

                    foreach (var resource in language.Second)
                    {
                        var destination = Path.Combine(languageDirectory.FullName, resource.ResourceName + ".mp3");
                        if(File.Exists(destination))
                            File.Delete(destination);
                        DownloadGoogleVoice(language.First.LanguageCulture, resource.ResourceValue, destination);
                    }
                }

                Console.WriteLine("The audio has been generate for {0} to the directory {1}", arguements.InputFile, arguements.OutputDirectory);
            }
            catch (ArgException ex)
            {
                Console.WriteLine(ArgUsage.GetUsage<Arguements>());
            }
            catch (Exception ex)
            {
                Console.Error.WriteLine(ex.Message);
            }
        }
コード例 #2
0
        /// <summary>
        /// Import an xml file
        /// </summary>
        private void Import()
        {
            try
            {
                var ofd = new OpenFileDialog();
                ofd.FileOk += (sender, args) => args.Cancel = string.IsNullOrEmpty(ofd.FileName) || !Path.GetExtension(ofd.FileName.ToLower()).Equals(".xml");
                var result = ofd.ShowDialog();
                if (result.Value)
                {
                    var deserializedLanguages = new LanguageFileParser().DeserializeLanguagesFile(ofd.FileName);

                    _languages.Clear();
                    _possibleValues.Clear();

                    foreach (var possibleValue in deserializedLanguages.SelectMany(x => x.Second).Select(x => x.ResourceName).Distinct().ToList())
                    {
                        _possibleValues.Add(possibleValue);
                    }

                    foreach (var pair in deserializedLanguages)
                    {
                        var language = new Pair<Language, ObservableCollection<LocaleStringResourceModel>>();
                        language.First = pair.First;
                        language.Second = new ObservableCollection<LocaleStringResourceModel>();
                        foreach (var possibleValue in _possibleValues)
                        {
                            var resourceModel = new LocaleStringResourceModel(pair.Second.FirstOrDefault(x => x.ResourceName == possibleValue));
                            if (resourceModel.IsMissing)
                                resourceModel.ResourceName = possibleValue;
                            language.Second.Add(resourceModel);
                        }
                        _languages.Add(language);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error");
            }
        }