Beispiel #1
0
        private void SetLanguageEntites(string languageTag)
        {
            // Use BCP47 Format
            string bcp47Tag = GetRegionFromBCP47LanguageTag(languageTag);

            //Apply the PrimaryLanguage
            ApplicationLanguages.PrimaryLanguageOverride = languageTag;

            if (ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 5))
            {
                // set user language
                if (Windows.Globalization.Language.IsWellFormed(languageTag))
                {
                    try
                    {
                        //Set the Region
                        GlobalizationPreferences.TrySetHomeGeographicRegion(bcp47Tag);

                        //Set the Speech  Language
                        Task.Run(async() =>
                        {
                            Language speechLanguage = new Language(languageTag);
                            await SpeechRecognizer.TrySetSystemSpeechLanguageAsync(speechLanguage);
                        });
                    }
                    catch (InvalidCastException)
                    {
                        // This is indicitive of EmbeddedMode not being enabled (i.e.
                        // running IotCoreDefaultApp on Desktop or Mobile without
                        // enabling EmbeddedMode)
                        //  https://developer.microsoft.com/en-us/windows/iot/docs/embeddedmode
                    }
                }
            } //Only for ApiContract > 5
        }
Beispiel #2
0
        private LanguageManager()
        {
            List <string> imageLanguagesList = GetImageSupportedLanguages();

            //Only Image Enable Map
            displayNameToImageLanguageMap = new SortedDictionary <string, string>(
                imageLanguagesList.Select(tag =>
            {
                var lang = new Language(tag);
                return(new KeyValuePair <string, string>(lang.NativeName, GetLocaleFromLanguageTag(lang.LanguageTag)));
            }).ToDictionary(keyitem => keyitem.Key, valueItem => valueItem.Value)
                );

            ImageLanguageDisplayNames = displayNameToImageLanguageMap.Keys.ToList();


            displayNameToLanguageMap = new Dictionary <string, string> (
                ApplicationLanguages.ManifestLanguages.Union(imageLanguagesList).Select(tag =>
            {
                var lang = new Language(tag);
                return(new KeyValuePair <string, string>(lang.NativeName, GetLocaleFromLanguageTag(lang.LanguageTag)));
            }).OrderBy(a => a.Key).ToDictionary(keyitem => keyitem.Key, valueItem => valueItem.Value)
                );

            LanguageDisplayNames = displayNameToLanguageMap.Keys.ToList();

            displayNameToInputLanguageMap = new SortedDictionary <string, string>(
                InputLanguages.Select(tag =>
            {
                var lang = new Language(tag);
                return(new KeyValuePair <string, string>(lang.NativeName, GetLocaleFromLanguageTag(lang.LanguageTag)));
            }).ToDictionary(keyitem => keyitem.Key, valueItem => valueItem.Value)
                );


            InputLanguageDisplayNames = displayNameToInputLanguageMap.Keys.ToList();

            //Exception when running in Local Machine
            try
            {
                //Add Image Enabled Languages as Global Preferences List
                if (ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 5))
                {
                    GlobalizationPreferences.TrySetLanguages(displayNameToImageLanguageMap.Values);
                }
            }
            catch (UnauthorizedAccessException ex)
            {
                // This is indicative of EmbeddedMode not being enabled (i.e.
                // running IotCoreDefaultApp on Desktop or Mobile without
                // enabling EmbeddedMode)
                //  https://developer.microsoft.com/en-us/windows/iot/docs/embeddedmode
                Log.Write(ex.ToString());
                Log.Write("UnauthorizedAccessException: Check to see if Embedded Mode is enabled");
            }
        }
        private void SetLanguageEntities(string languageTag)
        {
            // Use BCP47 Format
            string bcp47Tag = GetRegionFromBCP47LanguageTag(languageTag);

            // Apply the PrimaryLanguage
            ApplicationLanguages.PrimaryLanguageOverride = languageTag;

            if (ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 5))
            {
                // Set user language
                if (Language.IsWellFormed(languageTag))
                {
                    try
                    {
                        // Set the Region
                        GlobalizationPreferences.TrySetHomeGeographicRegion(bcp47Tag);

                        // Set the Speech Language
                        Task.Run(async() =>
                        {
                            Language speechLanguage = new Language(languageTag);
                            await SpeechRecognizer.TrySetSystemSpeechLanguageAsync(speechLanguage);
                        });
                    }
                    catch (UnauthorizedAccessException ex)
                    {
                        // This is indicative of EmbeddedMode not being enabled (i.e.
                        // running on Desktop or Mobile without enabling EmbeddedMode)
                        //  https://developer.microsoft.com/en-us/windows/iot/docs/embeddedmode
                        App.LogService.Write(ex.ToString());
                        App.LogService.Write("UnauthorizedAccessException: Check to see if Embedded Mode is enabled");
                    }
                }
            } // Only for ApiContract > 5
        }
        private LanguageManager()
        {
            List <string> imageLanguagesList = GetImageSupportedLanguages();

            // Only Image Enable Map
            _displayNameToImageLanguageMap = new SortedDictionary <string, string>(
                imageLanguagesList.Select(tag =>
            {
                var lang = new Language(tag);
                return(new KeyValuePair <string, string>(lang.NativeName, GetLocaleFromLanguageTag(lang.LanguageTag)));
            }).ToDictionary(keyitem => keyitem.Key, valueItem => valueItem.Value)
                );

            ImageLanguageDisplayNames = _displayNameToImageLanguageMap.Keys.ToList();

            _displayNameToLanguageMap = new Dictionary <string, string>(
                ApplicationLanguages.ManifestLanguages.Union(imageLanguagesList).Select(tag =>
            {
                var lang = new Language(tag);
                return(new KeyValuePair <string, string>(lang.NativeName, GetLocaleFromLanguageTag(lang.LanguageTag)));
            }).Distinct().OrderBy(a => a.Key).ToDictionary(keyitem => keyitem.Key, valueItem => valueItem.Value)
                );

            LanguageDisplayNames = _displayNameToLanguageMap.Keys.ToList();

            _displayNameToInputLanguageMap = new SortedDictionary <string, string>(
                _inputLanguages.Select(tag =>
            {
                var lang = new Language(tag);
                return(new KeyValuePair <string, string>(lang.NativeName, GetLocaleFromLanguageTag(lang.LanguageTag)));
            }).ToDictionary(keyitem => keyitem.Key, valueItem => valueItem.Value)
                );

            InputLanguageDisplayNames = _displayNameToInputLanguageMap.Keys.ToList();

            // Exception when running in Local Machine
            try
            {
                // Add Image Enabled Languages as Global Preferences List
                if (ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 5))
                {
                    // Find language currently set as UI language. This should be
                    // the first language in the list passed to TrySetLanguages
                    var uiLanguageTag = GlobalizationPreferences.Languages[0];
                    var index         = imageLanguagesList.IndexOf(uiLanguageTag);
                    if (index != 0)
                    {
                        if (index != -1)
                        {
                            imageLanguagesList.Remove(uiLanguageTag);
                        }
                        imageLanguagesList.Insert(0, uiLanguageTag);
                    }
                    GlobalizationPreferences.TrySetLanguages(imageLanguagesList);
                }
            }
            catch (UnauthorizedAccessException ex)
            {
                // This is indicative of EmbeddedMode not being enabled (i.e.
                // running on Desktop or Mobile without enabling EmbeddedMode)
                //  https://developer.microsoft.com/en-us/windows/iot/docs/embeddedmode
                App.LogService.Write(ex.ToString());
            }
        }