Example #1
0
            public LanguagePath ParseLanguagePath(string path)
            {
                const string language = "language";

                if (path.Length < language.Length + 1 ||
                    path.StartsWith(language, StringComparison.InvariantCultureIgnoreCase) == false ||
                    (path[language.Length] != '/' && path[language.Length] != '\\'))
                {
                    return(null);
                }

                var slashPos = path.IndexOfAny(new[] { '/', '\\' }, language.Length + 1);

                if (slashPos == -1)
                {
                    return(null);
                }

                var lang = new LanguagePath
                {
                    Language = path.Substring(language.Length + 1, slashPos - language.Length - 1),
                    Prefix   = path.Substring(0, slashPos),
                    Path     = path.Substring(slashPos + 1)
                };

                var dashPos = lang.Language.IndexOf('-');

                if (dashPos != -1)
                {
                    lang.ShortLanguage = lang.Language.Substring(0, dashPos);
                }

                return(lang);
            }
Example #2
0
            public IEnumerable <string> PathVariations(LanguagePath lang)
            {
                if (string.IsNullOrEmpty(lang.ShortLanguage))
                {
                    return(new[]
                    {
                        Path.ChangeExtension(lang.Path, lang.Language + ".spark"),
                        lang.Path
                    });
                }

                return(new[]
                {
                    Path.ChangeExtension(lang.Path, lang.Language + ".spark"),
                    Path.ChangeExtension(lang.Path, lang.ShortLanguage + ".spark"),
                    lang.Path
                });
            }
Example #3
0
            public IEnumerable<string> PathVariations(LanguagePath lang)
            {
                if (string.IsNullOrEmpty(lang.ShortLanguage))
                {
                    return new[]
                               {
                                   Path.ChangeExtension(lang.Path, lang.Language + ".spark"),
                                   lang.Path
                               };
                }

                return new[]
                           {
                               Path.ChangeExtension(lang.Path, lang.Language + ".spark"),
                               Path.ChangeExtension(lang.Path, lang.ShortLanguage + ".spark"),
                               lang.Path
                           };
            }
Example #4
0
            public LanguagePath ParseLanguagePath(string path)
            {
                const string language = "language";

                if (path.Length < language.Length + 1 ||
                    path.StartsWith(language, StringComparison.InvariantCultureIgnoreCase) == false ||
                    (path[language.Length] != '/' && path[language.Length] != '\\'))
                {
                    return null;
                }

                var slashPos = path.IndexOfAny(new[] { '/', '\\' }, language.Length + 1);
                if (slashPos == -1)
                    return null;

                var lang = new LanguagePath
                               {
                                   Language = path.Substring(language.Length + 1, slashPos - language.Length - 1),
                                   Prefix = path.Substring(0, slashPos),
                                   Path = path.Substring(slashPos + 1)
                               };

                var dashPos = lang.Language.IndexOf('-');
                if (dashPos != -1)
                    lang.ShortLanguage = lang.Language.Substring(0, dashPos);

                return lang;
            }