public string Get(string lang, string key)
        {
#if DEBUG
            if (!AllLanguages.ContainsKey(lang))
            {
                Log.Error($"Translation: Unknown language {lang}");
                return(key);
            }
#endif

            // Try find translation in the current language first
            if (AllLanguages[lang].TryGetValue(key, out string ret))
            {
                return(ret);
            }

            // If not found, try also get translation in the default English
            // Untranslated keys are prefixed with ¶ in TEST & DEBUG builds;
            // in STABLE builds prefix (upto and including `:`) is trimmed.
            return(AllLanguages[Translation.DEFAULT_LANGUAGE_CODE]
                   .TryGetValue(key, out string ret2)
                       ? ret2
                       : (VersionUtil.BRANCH != "STABLE")
                            ? "¶" + key
                            : key.IndexOf(":") > 0
                                ? key.Substring(key.IndexOf(":") + 1)
                                : key);
        }
Esempio n. 2
0
        public LanguageCache(ILogger <LanguageCache> logger, IHostingEnvironment env)
        {
            _logger = logger;
            _env    = env;

            AllLanguages   = GenerateLanguageList().OrderByDescending(x => x.Text).ToList().AsReadOnly();
            AllLanguageSet = AllLanguages.Select(x => x.Value).ToImmutableHashSet();
        }
Esempio n. 3
0
 public static string ValidateLanguageCode(string languageCode)
 {
     return(AllLanguages.Contains(languageCode)
         ? languageCode
         : FallbackLanguages.ContainsKey(languageCode)
             ? FallbackLanguages[languageCode]
             : LanguageCodes.DefaultLanguage);
 }
Esempio n. 4
0
        /// <summary>
        /// Sets language corresponding to the same title.
        /// </summary>
        /// <param name="langName">language name to be set</param>
        public static void SetLanguage(string langName)
        {
            LiteLanguageUnit lite = null;

            if (AllLanguages.TryGetValue(langName, out lite))
            {
                BetterLanguagesPlugin.log.LogMessage("Putain ça marche ou quoi ?");
                CurrentLanguage     = loader.GetLang(lite);
                CurrentLanguageName = langName;
            }
        }
Esempio n. 5
0
 public static void SetLanguage(string lang)
 {
     if (AllLanguages.Contains(lang))
     {
         Directory        = Path + lang + "/";
         SelectedLanguage = lang;
         Reload();
         return;
     }
     Debug.LogError("Not found language: " + lang);
     SetLanguage(DefaultLanguage);
 }
Esempio n. 6
0
        private void UpdateAllLanguages()
        {
            var languageIds = languageSetter
                              .GetAppLangIds().ToArray();

            var languages = languageFactory.Get(languageIds)
                            .OrderBy(l => l.Name).ToArray();

            foreach (var language in languages)
            {
                AllLanguages.Add(language);
            }
        }
Esempio n. 7
0
 public static void LoadLanguages()
 {
     AllLanguages.Clear();
     using (var webClient = new WebClient())
     {
         string responcedString = webClient.DownloadString(SpecialPaths.LanguagesFilePath);
         foreach (var infoString in responcedString.Split('\n'))
         {
             var language = Language.GetLanguage(infoString);
             if (language != null)
             {
                 AllLanguages.Add(language);
             }
         }
     }
 }
Esempio n. 8
0
        ILanguage GetLanguage()
        {
            Guid guid;
            bool hasGuid = Guid.TryParse(language, out guid);

            return(AllLanguages.FirstOrDefault(a => {
                if (StringComparer.OrdinalIgnoreCase.Equals(language, a.UniqueNameUI))
                {
                    return true;
                }
                if (hasGuid && (guid.Equals(a.UniqueGuid) || guid.Equals(a.GenericGuid)))
                {
                    return true;
                }
                return false;
            }));
        }
Esempio n. 9
0
/*		public LanguageManager() {
 *                      managers.Add(this);
 *              }*/

/*		public static LanguageManager Start()
 *              {
 *                      LanguageManager Instance = new LanguageManager();
 *                      Instance.ReloadLanguages();
 *                      return Instance;
 *              }*/

        /// <summary>
        /// In case you See issues, you may call this function so that the data be reset
        /// </summary>
        public static void ReloadLanguages()
        {
            loader.LoadLanguages();
            AllLanguages = loader.getLanguagesList();

            LiteLanguageUnit lite        = null;
            string           FallbackKey = PluginSingleton <BetterLanguagesPlugin> .Instance.FallBackLanguage.Value;
            CultureInfo      ci          = LanguageLoader.GetCultureInfo(FallbackKey);

            if (ci == null || !AllLanguages.TryGetValue(ci.NativeName, out lite))
            {
                AllLanguages.TryGetValue(FallbackKey, out lite);
            }

            FallbackLanguage = loader.GetLang(lite);
            if (CurrentLanguage == null)
            {
                CurrentLanguage = FallbackLanguage;
            }
        }
        /// <summary>
        /// Starting point after click on Start Now button. Loads all source languages (first ComboBox).
        /// </summary>
        /// <param name="parameter"></param>
        /// <param name="mode"></param>
        /// <param name="suspensionState"></param>
        /// <returns></returns>
        public override async Task OnNavigatedToAsync(object parameter, NavigationMode mode, IDictionary <string, object> suspensionState)
        {
            var languages = await new OxfordDictionaryMVVMService().GetLanguageAsync();
            var results   = languages.results;

            if (results == null)
            {
                return;
            }

            foreach (var lang in results)
            {
                // load only those, which has source and target language too
                if (lang.sourceLanguage != null && lang.targetLanguage != null)
                {
                    AllLanguages.Add(lang);
                }
            }

            //Fire PropertyChangedEvent
            this.RaisePropertyChanged(nameof(AllLanguages));
            await base.OnNavigatedToAsync(parameter, mode, suspensionState);
        }
Esempio n. 11
0
        public string Get(string lang, string key)
        {
#if DEBUG
            if (!AllLanguages.ContainsKey(lang))
            {
                Log.Error($"Translation: Unknown language {lang}");
                return(key);
            }
#endif

            // Try find translation in the current language first
            if (AllLanguages[lang].TryGetValue(key, out string ret))
            {
                return(ret);
            }

            // If not found, try also get translation in the default English
            // Untranslated keys are prefixed with ¶
            return(AllLanguages[Translation.DEFAULT_LANGUAGE_CODE]
                   .TryGetValue(key, out string ret2)
                       ? ret2
                       : "¶" + key);
        }
Esempio n. 12
0
        /// <summary>
        /// Initializes a new serialized collection of LocalizedContent items using default languages.
        /// </summary>
        public static string Init()
        {
            var defaults = AllLanguages.Select(i => new LocalizedContent(i, ""));

            return(Serialize(defaults));
        }
Esempio n. 13
0
        public IEnumerable <OcrLanguage> GetMissingLanguages()
        {
            var downloadedCodes = GetDownloadedCodes();

            return(AllLanguages.Where(x => !downloadedCodes.Contains(x.Code)));
        }
Esempio n. 14
0
        private async void OnActivated(object sender, ActivationEventArgs activationEventArgs)
        {
            _config = _configService.GetEffectiveConfiguration();

            var chocolateyFeatures = await _chocolateyService.GetFeatures();

            foreach (var chocolateyFeature in chocolateyFeatures)
            {
#if !DEBUG // We hide this during DEBUG as it is a dark feature
                var descriptionKey = "Chocolatey_" + chocolateyFeature.Name + "Description";

                var newDescription = _translationSource[descriptionKey];

                if (string.IsNullOrEmpty(newDescription))
                {
                    descriptionKey = chocolateyFeature.Description;
                    newDescription = _translationSource[descriptionKey];
                }

                if (!string.IsNullOrEmpty(newDescription))
                {
                    chocolateyFeature.Description       = newDescription;
                    _translationSource.PropertyChanged += (s, e) =>
                    {
                        chocolateyFeature.Description = _translationSource[descriptionKey];
                    };
                }
#endif
                ChocolateyFeatures.Add(chocolateyFeature);
            }

            _changedChocolateyFeature = new Subject <ChocolateyFeature>();
            _changedChocolateyFeature
            .Select(f => Observable.FromAsync(() => UpdateChocolateyFeature(f)))
            .Concat()
            .Subscribe();

            var chocolateySettings = await _chocolateyService.GetSettings();

            foreach (var chocolateySetting in chocolateySettings)
            {
#if !DEBUG // We hide this during DEBUG as it is a dark feature
                var descriptionKey = "Chocolatey_" + chocolateySetting.Key + "Description";

                var newDescription = _translationSource[descriptionKey];

                if (string.IsNullOrEmpty(newDescription))
                {
                    descriptionKey = chocolateySetting.Description;
                    newDescription = _translationSource[descriptionKey];
                }

                if (!string.IsNullOrEmpty(newDescription))
                {
                    chocolateySetting.Description       = newDescription;
                    _translationSource.PropertyChanged += (s, e) =>
                    {
                        chocolateySetting.Description = _translationSource[descriptionKey];
                    };
                }
#endif
                ChocolateySettings.Add(chocolateySetting);
            }

            _changedChocolateySetting = new Subject <ChocolateySetting>();
            _changedChocolateySetting
            .Select(s => Observable.FromAsync(() => UpdateChocolateySetting(s)))
            .Concat()
            .Subscribe();

            var chocolateyGuiFeatures = _configService.GetFeatures(global: false, useResourceKeys: true);
            foreach (var chocolateyGuiFeature in chocolateyGuiFeatures)
            {
                chocolateyGuiFeature.DisplayTitle = _translationSource["ChocolateyGUI_" + chocolateyGuiFeature.Title + "Title"];
#if DEBUG
                var descriptionKey = string.Empty;
#else
                var descriptionKey = "ChocolateyGUI_" + chocolateyGuiFeature.Title + "Description";
#endif

                var newDescription = _translationSource[descriptionKey];

                if (string.IsNullOrEmpty(newDescription))
                {
                    descriptionKey = chocolateyGuiFeature.Description;
                    newDescription = _translationSource[descriptionKey];
                }

                if (!string.IsNullOrEmpty(newDescription))
                {
                    chocolateyGuiFeature.Description    = newDescription;
                    _translationSource.PropertyChanged += (s, e) =>
                    {
                        chocolateyGuiFeature.DisplayTitle = _translationSource["ChocolateyGUI_" + chocolateyGuiFeature.Title + "Title"];
                        chocolateyGuiFeature.Description  = _translationSource[descriptionKey];
                    };
                }

                ChocolateyGuiFeatures.Add(chocolateyGuiFeature);
            }

            _changedChocolateyGuiFeature = new Subject <ChocolateyGuiFeature>();
            _changedChocolateyGuiFeature
            .Select(s => Observable.FromAsync(() => UpdateChocolateyGuiFeature(s)))
            .Concat()
            .Subscribe();

            var chocolateyGuiSettings = _configService.GetSettings(global: false, useResourceKeys: true);
            foreach (var chocolateyGuiSetting in chocolateyGuiSettings.Where(c => !string.Equals(c.Key, nameof(UseLanguage), StringComparison.OrdinalIgnoreCase)))
            {
                chocolateyGuiSetting.DisplayName = _translationSource["ChocolateyGUI_" + chocolateyGuiSetting.Key + "Title"];
#if DEBUG
                var descriptionKey = string.Empty;
#else
                var descriptionKey = "ChocolateyGUI_" + chocolateyGuiSetting.Key + "Description";
#endif

                var newDescription = _translationSource[descriptionKey];

                if (string.IsNullOrEmpty(newDescription))
                {
                    descriptionKey = chocolateyGuiSetting.Description;
                    newDescription = _translationSource[descriptionKey];
                }

                if (!string.IsNullOrEmpty(newDescription))
                {
                    chocolateyGuiSetting.Description    = newDescription;
                    _translationSource.PropertyChanged += (s, e) =>
                    {
                        chocolateyGuiSetting.DisplayName =
                            _translationSource["ChocolateyGUI_" + chocolateyGuiSetting.Key + "Title"];
                        chocolateyGuiSetting.Description = _translationSource[descriptionKey];
                    };
                }

                ChocolateyGuiSettings.Add(chocolateyGuiSetting);
            }

            _changedChocolateyGuiSetting = new Subject <ChocolateyGuiSetting>();
            _changedChocolateyGuiSetting
            .Select(s => Observable.FromAsync(() => UpdateChocolateyGuiSetting(s)))
            .Concat()
            .Subscribe();

            var sources = await _chocolateyService.GetSources();

            foreach (var source in sources)
            {
                Sources.Add(source);
            }

            AllLanguages.Clear();

            foreach (var language in Internationalization.GetAllSupportedCultures().OrderBy(c => c.NativeName))
            {
                AllLanguages.Add(language);
            }

            var selectedLanguage = _config.UseLanguage;

            // We set it to the configuration itself, instead of the property
            // as we do not want to save the configuration file when it is not needed.
            _config.UseLanguage = Internationalization.GetSupportedCultureInfo(selectedLanguage).Name;
            NotifyOfPropertyChange(nameof(UseLanguage));
        }