Потребителски вход

Запомни ме | Регистрация
Постинг
28.12.2012 15:25 - 4овешките езици
Автор: milcho128 Категория: Технологии   
Прочетен: 901 Коментари: 0 Гласове:
-1



Списък на човешките езици

 

imageПонякога при разработката на уеб приложения (и не само) се налага да се поддържа списък с всички езици в света (или поне по-популярните от тях). Актуални списъци със световните езици се поддържа на този линк. Форматът е малко неудобен и за това реших да си го парсна до CLR обекти с езика C#, откъдето вече лесно може да се вкарат в най-различни други формати (в SQL Server, например). По-надолу има списък с езиците (както на по-разпространените, така и пълен списък с всички човешки езици). Добавил съм и C# код, който сваля списък с всички езици и после изкарва на конзолата имената на съвременните езици.

Списък на разпространените човешки езици Abkhazian, Afar, Afrikaans, Akan, Albanian, Amharic, Arabic, Aragonese, Armenian, Assamese, Avaric, Avestan, Aymara, Azerbaijani, Bambara, Bashkir, Basque, Belarusian, Bengali, Bislama, Bosnian, Breton, Bulgarian, Burmese, Valencian, Central Khmer, Chamorro, Chechen, Chinese, Old Slavonic, Chuvash, Cornish, Corsican, Cree, Croatian, Czech, Danish, Maldivian, Flemish, Dzongkha, English, Esperanto, Estonian, Ewe, Faroese, Fijian, Finnish, French, Fulah, Galician, Ganda, Georgian, German, Guarani, Gujarati, Haitian Creole, Hausa, Hebrew, Herero, Hindi, Hiri Motu, Hungarian, Icelandic, Ido, Igbo, Indonesian, Interlingua (International Auxiliary Language Association), Occidental, Inuktitut, Inupiaq, Irish, Italian, Japanese, Javanese, Kalaallisut, Kannada, Kanuri, Kashmiri, Kazakh, Kikuyu, Kinyarwanda, Kyrgyz, Komi, Kongo, Korean, Kwanyama, Kurdish, Lao, Latin, Latvian, Limburgish, Lingala, Lithuanian, Luba-Katanga, Luxembourgish, Macedonian, Malagasy, Malay, Malayalam, Maltese, Manx, Maori, Marathi, Marshallese, Modern Greek, Mongolian, Nauru, Navajo, Ndonga, Nepali, North Ndebele, Northern Sami, Norwegian, Norwegian Bokmal, Norwegian Nynorsk, Nyanja, Occitan, Ojibwa, Oriya, Oromo, Ossetic, Pali, Punjabi, Persian, Polish, Portuguese, Pushto, Quechua, Romanian, Romansh, Rundi, Russian, Samoan, Sango, Sanskrit, Sardinian, Scottish Gaelic, Serbian, Serbo-Croatian, Shona, Sichuan Yi, Sindhi, Sinhalese, Slovak, Slovenian, Somali, South Ndebele, Southern Sotho, Spanish, Sundanese, Swahili, Swati, Swedish, Tagalog, Tahitian, Tajik, Tamil, Tatar, Telugu, Thai, Tibetan, Tigrinya, Tonga (Tonga Islands), Tsonga, Tswana, Turkish, Turkmen, Twi, Uyghur, Ukrainian, Urdu, Uzbek, Venda, Vietnamese, Volapuk, Walloon, Welsh, Western Frisian, Wolof, Xhosa, Yiddish, Yoruba, Zhuang, Zulu C# код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Text;   class HumanLanguagesList {     private const string LanguagesListFileName = "LanguagesList.txt";     private const string LanguagesNamesFileName = "LanguagesNames.txt";     private const string LanguagesListFileUrl = "http://www.sil.org/iso639-3/iso-639-3_20120816.tab";     private const string LanguagesNamesFileUrl = "http://www.sil.org/iso639-3/iso-639-3_Name_Index_20120816.tab";     private const char ElementsSplitter = "t";       static void Main()     {         var languages = new List < Language > ();           using (var webClient = new WebClient())         {             try             {                 webClient.DownloadFile(LanguagesListFileUrl, LanguagesListFileName);                 webClient.DownloadFile(LanguagesNamesFileUrl, LanguagesNamesFileName);             }             catch (WebException)             {                 Console.WriteLine("One or more of the files cannot be downloaded!");                 return;             }         }           var firstLine = true;         using (var sr = new StreamReader(LanguagesListFileName))         {             while (!sr.EndOfStream)             {                 var line = sr.ReadLine();                 if (line == null)                 {                     continue;                 }                 if (firstLine)                 {                     firstLine = false;                     continue;                 }                 var parts = line.Split(new[] { ElementsSplitter });                 if (parts.Count() != 8)                 {                     Console.WriteLine("Wrong line format! Line: {0}", line);                 }                 else                 {                     languages.Add(new Language(parts));                 }             }         }           firstLine = true;         using (var sr = new StreamReader(LanguagesNamesFileName))         {             while (!sr.EndOfStream)             {                 var line = sr.ReadLine();                 if (line == null)                 {                     continue;                 }                 if (firstLine)                 {                     firstLine = false;                     continue;                 }                 var parts = line.Split(new[] { ElementsSplitter });                 if (parts.Count() != 3)                 {                     Console.WriteLine("Wrong line format! Line: {0}", line);                 }                 else                 {                     var id = parts[0];                     var printName = parts[1];                     var invertedName = parts[2];                     var language = languages.SingleOrDefault(x => x.Id == id);                     if (language == null)                     {                         continue;                     }                     language.PrintName = printName;                     language.InvertedName = invertedName;                 }             }         }           Console.OutputEncoding = Encoding.Unicode;         var list = languages.Where(x => !string.IsNullOrWhiteSpace(x.Part1)).OrderBy(x => x.RefName).ToList();         foreach (var language in list)         {             Console.Write("{0}, ", language.PrintName);         }     } }   public class Language {     ///     /// The three-letter 639-3 identifier     ///     public string Id { get; set; }     ///     /// Equivalent 639-2 identifier of the bibliographic applications code set, if there is one     ///     public string Part2B { get; set; }     ///     /// Equivalent 639-2 identifier of the terminology applications code set, if there is one     ///     public string Part2T { get; set; }     ///     /// Equivalent 639-1 identifier, if there is one     ///     public string Part1 { get; set; }     ///     /// I(ndividual), M(acrolanguage), S(pecial)     ///     public string Scope { get; set; }     ///     /// A(ncient), C(onstructed), E(xtinct), H(istorical), L(iving), S(pecial)     ///     public string LanguageType { get; set; }     ///     /// Reference language name     ///     public string RefName { get; set; }     ///     /// Comment relating to one or more of the columns     ///     public string Comment { get; set; }     ///     /// One of the names associated with this identifier     ///     public string PrintName { get; set; }     ///     /// The inverted form of this PrintName form     ///     public string InvertedName { get; set; }       public Language(IList < string



Гласувай:
0



Няма коментари
Търсене

За този блог
Автор: milcho128
Категория: Технологии
Прочетен: 20461
Постинги: 11
Коментари: 1
Гласове: 4
Архив