Exemplo n.º 1
0
        public static List <CultureInfo> GetCultures(CultureTypes cultureTypes)
        {
            List <CultureInfo>        cultures     = new List <CultureInfo>();
            EnumLocalesProcExDelegate enumCallback = (locale, flags, lParam) =>
            {
                try
                {
                    cultures.Add(new CultureInfo(locale));
                }
                catch (CultureNotFoundException)
                {
                    // This culture is not supported by .NET (not happened so far)
                    // Must be ignored.
                }
                return(true);
            };

            if (EnumSystemLocalesEx(enumCallback, (LocaleType)cultureTypes, 0, (IntPtr)0) == false)
            {
                int errorCode = Marshal.GetLastWin32Error();
                throw new LocalesRetrievalException("Win32 error " + errorCode + " while trying to get the Windows locales");
            }

            // Add the two neutral cultures that Windows misses
            // (CultureInfo.GetCultures adds them also):
            if (cultureTypes == CultureTypes.NeutralCultures || cultureTypes == CultureTypes.AllCultures)
            {
                cultures.Add(new CultureInfo("en-US"));
                //cultures.Add(new CultureInfo("zh-CHS"));
                //cultures.Add(new CultureInfo("zh-CHT"));
            }

            return(cultures);
        }
Exemplo n.º 2
0
 private static extern bool EnumSystemLocalesEx(EnumLocalesProcExDelegate pEnumProcEx,
                                                LocaleType dwFlags, int lParam, IntPtr lpReserved);
 private static extern bool EnumSystemLocalesEx(EnumLocalesProcExDelegate pEnumProcEx, LocaleType dwFlags, int lParam, IntPtr lpReserved);
Exemplo n.º 4
0
        public static extern bool EnumSystemLocalesEx(
			EnumLocalesProcExDelegate pEnumProcEx,
			LOCALETYPE dwFlags,
			int lParam,
			IntPtr lpReserved);