protected override void LoadProperty(SettingsStore store)
        {
            var value = store.GetString(CollectionName, nameof(TargetLanguage), "Lua");

            if (value == "Lua")
            {
                TargetLanguage = TargetLanguages.Lua;
            }
            else if (value == "JavaScript")
            {
                TargetLanguage = TargetLanguages.JavaScript;
            }
            else
            {
                TargetLanguage = TargetLanguages.Lua;
            }

            m_target_lang_string = value;

            // 纠正
            if (TargetLanguage == TargetLanguages.Lua)
            {
                m_target_lang_string = "Lua";
            }
        }
        public TranslateModel()
        {
            InputQueue = new InputQueue();

            TargetLanguages.Seed();
            this.Languages = TargetLanguages.Languages;

            GenreDropDownMenuItemCommand = new GeneralCommand(o => true, x =>
            {
                var selectedItem        = (Language)x;
                this.TargetLanguage     = selectedItem.Code;
                this.TargetLanguageText = selectedItem.Name;
                OnChangeTargetLanguage?.Invoke(selectedItem);

                UpdateRecentlyUsedLanguages(selectedItem);
            });
            foreach (var item in AppSettingsManager.Read().RecentlyUsedLanguages)
            {
                RecentlyUsedLanguages.Add(item);
            }

            InputQueue.OnStopInput += async text =>
            {
                LastInputText = text;
                await Translate();
            };
        }
Пример #3
0
        public TranslatorViewModel(Translator translator)
        {
            this.translator       = translator;
            this.TranslateCmd     = new RelayCommand(_ => { TranslateAsync(); });
            this.PronounceCmd     = new RelayCommand(_ => { PronounceAsync(); });
            this.SwapLanguagesCmd = new RelayCommand(_ => SwapLanguages());

            Dictionary <string, string> languages = translator.GetLanguagesAsync().Result;

            foreach (Language mainLanguge in MainLanguages.All)
            {
                SourceLanguages.Add(mainLanguge);
                TargetLanguages.Add(mainLanguge);
                languages.Remove(mainLanguge.Code);
            }

            foreach (KeyValuePair <string, string> kv in languages)
            {
                var lang = new Language {
                    Code = kv.Key, Name = kv.Value
                };
                SourceLanguages.Add(lang);
                TargetLanguages.Add(lang);
            }

            SourceLanguage = MainLanguages.DefaultFromLanguage;
            TargetLanguage = MainLanguages.DefaultToLanguage;
        }
Пример #4
0
        private async Task OnExecuteAsync(CancellationToken cancellationToken)
        {
            var configuration = new CsvConfiguration(CultureInfo.InvariantCulture)
            {
                HasHeaderRecord   = true,
                MissingFieldFound = null,
            };

            if (!(TargetLanguages?.Any() ?? false))
            {
                TargetLanguages = SteamConstants.SupportedLanguages.ToArray();
            }

            using (var textWriter = new StreamWriter(OutFile, false))
                using (var csvWriter = new CsvWriter(textWriter, configuration))
                {
                    csvWriter.Context.RegisterClassMap <GameInfoCsvClassMap>();
                    csvWriter.WriteHeader <GameInfo>();
                    csvWriter.NextRecord();
                    foreach (var targetLanguage in TargetLanguages)
                    {
                        _logger.LogInformation("Enumerating all generic category entries");
                        var entryCount = 0;
                        await foreach (var gameInfo in _gameLocalization.EnumerateGameInfoAsync(targetLanguage, cancellationToken))
                        {
                            entryCount++;
                            csvWriter.WriteRecord(gameInfo);
                            csvWriter.NextRecord();
                        }
                        _logger.LogInformation("Exported {totalCount} localized category entries for language {language}", entryCount, targetLanguage);
                    }
                }
        }
Пример #5
0
        public override async Task OnNavigatedToAsync(NavigationContext navigationContext)
        {
            foreach (var item in context.Configuration.Localization.Sources)
            {
                Sources.Add(item.Name);
            }

            foreach (var item in context.Configuration.Localization.Languages)
            {
                BaseLanguages.Add(new LanguageStruct(item.Icon, item.Name, item.DisplayName));
                TargetLanguages.Add(new LanguageStruct(item.Icon, item.Name, item.DisplayName));
            }

            if (navigationContext.Parameters.ContainsKey("Name"))
            {
                var Name = navigationContext.Parameters.GetValue <string>("Name");

                var lang = context.Configuration.Localization.Languages.FirstOrDefault(t => t.Name.Equals(Name));
                if (lang != null)
                {
                    SelectedBaseLanguage   = new LanguageStruct(lang.Icon, lang.Name, lang.DisplayName);
                    SelectedTargetLanguage = new LanguageStruct(lang.Icon, lang.Name, lang.DisplayName);
                }

                input.TargetValueFilter = "ALL";
                input.SourceName        = Sources.Last();
            }

            await RefreshAsync();
        }
    /// <summary>
    /// Validates the data. Returns error msg if something is not ok.
    /// </summary>
    public string ValidateData()
    {
        if (dtDeadline.SelectedDateTime < DateTime.Now)
        {
            // DateTime from the past is not allowed
            return(GetString("translationservice.invaliddeadline"));
        }

        // Validate maximal length (not supported by the control itself)
        var instructionsLength = txtInstruction.Text.Length;
        var maximumLength      = txtInstruction.MaxLength;

        if (instructionsLength > maximumLength)
        {
            return(string.Format(GetString("translationservice.instructionstoolong"), maximumLength, instructionsLength));
        }

        if ((TargetLanguages.Count == 0) || String.IsNullOrEmpty(TargetLanguages.FirstOrDefault()))
        {
            return(GetString("translationservice.invalidtargetlanguage"));
        }

        return(null);
    }
Пример #7
0
 public static string GetAttribute(this TargetLanguages targetLanguage)
 {
     return(targetLanguage.ToString().ToLower() + "-*-");
 }
Пример #8
0
 public bool CanSwap(string sourceLang, string targetLang)
 {
     return(TargetLanguages.Find(l => l.Code == sourceLang) != null &&
            SourceLanguages.Find(l => l.Code == targetLang) != null);
 }