コード例 #1
0
            private static IReadOnlyDictionary <CultureInfo, string> FindCultureFileNames(Uri assemblyLocation)
            {
                Dictionary <CultureInfo, string> cultures = null;
                var resourceFileName = $"{Path.GetFileNameWithoutExtension(assemblyLocation.AbsolutePath)}.resources.dll";
                var directoryName    = Path.GetDirectoryName(assemblyLocation.AbsolutePath);

                foreach (var folder in Directory.EnumerateDirectories(directoryName))
                {
                    var folderName = Path.GetFileName(folder);
                    if (Culture.Exists(folderName))
                    {
                        var match = Directory.EnumerateFiles(folder, resourceFileName, SearchOption.TopDirectoryOnly)
                                    .SingleOrDefault();
                        if (match == null)
                        {
                            continue;
                        }

                        var cultureInfo = CultureInfo.GetCultureInfo(folderName);
                        if (cultures == null)
                        {
                            cultures = new Dictionary <CultureInfo, string>(CultureInfoComparer.ByName);
                        }

                        cultures.Add(cultureInfo, string.Empty);
                    }
                }

                return(cultures ?? (IReadOnlyDictionary <CultureInfo, string>)EmptyReadOnlyDictionary <CultureInfo, string> .Default);
            }
コード例 #2
0
        public void RoundTripAll()
        {
            var cultures = CultureInfo.GetCultures(CultureTypes.AllCultures)
                           .Where(x => !string.IsNullOrEmpty(x.Name))
                           .ToArray();

            foreach (var culture in cultures)
            {
                var name = culture.Name;
                Assert.IsTrue(Culture.Exists(name));
                CultureInfo.GetCultureInfo(name);

                name = culture.TwoLetterISOLanguageName;
                Assert.IsTrue(Culture.Exists(name));
                CultureInfo.GetCultureInfo(name);
            }
        }
コード例 #3
0
            private static bool TryGetCultureAndFile(string directory, string searchPattern, out CultureInfo culture, out string fileName)
            {
                var folderName = System.IO.Path.GetFileName(directory);

                if (!Culture.Exists(folderName))
                {
                    culture  = null;
                    fileName = null;
                    return(false);
                }

                fileName = Directory.EnumerateFiles(directory, searchPattern, SearchOption.TopDirectoryOnly).SingleOrDefault();
                if (fileName == null)
                {
                    culture = null;
                    return(false);
                }

                culture = CultureInfo.GetCultureInfo(folderName);
                return(true);
            }