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); }
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 }); }
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 }; }
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; }