diff --git a/Makefile b/Makefile index 4b944b8..6b1c3ca 100644 --- a/Makefile +++ b/Makefile @@ -94,6 +94,13 @@ install: check @if [ -z ${DESTDIR} ]; then \ ldconfig -n ${DESTDIR}${PREFIX}/lib; \ fi + @for LANG in $$(find ./locale -iname "*.po" -print | sed -En "s/.+_([[:alpha:]]+)\.po/\1/p" | sort -u); do \ + install -dm755 "${DESTDIR}${PREFIX}/share/locale/$${LANG}/LC_MESSAGES"; \ +# PATH_FILE_MO="${DESTDIR}${PREFIX}/share/locale/$${LANG}/LC_MESSAGES/${PKGNAME}.mo"; \ + PATH_FILE_MO="${DESTDIR}/usr/share/locale/$${LANG}/LC_MESSAGES/${PKGNAME}.mo"; \ + PKGNAME_PO="./locale/${PKGNAME}_$${LANG}.po"; [[ -f "$${PKGNAME_PO}" ]] || PKGNAME_PO= ; \ + msgfmt --verbose --use-fuzzy --output-file "$${PATH_FILE_MO}" - < <(msgcat --use-first --no-wrap $${PKGNAME_PO} ./locale/*_$${LANG}.po); \ + done @echo "Install: OK" clean: diff --git a/locale/ubl-languages.pot b/locale/ubl-languages.pot new file mode 100644 index 0000000..1ca397d --- /dev/null +++ b/locale/ubl-languages.pot @@ -0,0 +1,764 @@ +#: ./locales.csv:1 +msgid "Afar" +msgstr "" + +#: ./locales.csv:1 +msgid "Abkhazian" +msgstr "" + +#: ./locales.csv:1 +msgid "Aguaruna" +msgstr "" + +#: ./locales.csv:1 +msgid "Akan" +msgstr "" + +#: ./locales.csv:1 +msgid "Amharic" +msgstr "" + +#: ./locales.csv:1 +msgid "Aragonese" +msgstr "" + +msgid "Angika" +msgstr "" + +msgid "Arabic" +msgstr "" + +msgid "Asturian" +msgstr "" + +msgid "Aymara" +msgstr "" + +msgid "South Azerbaijani" +msgstr "" + +msgid "Bemba" +msgstr "" + +msgid "Berber" +msgstr "" + +msgid "Bhili" +msgstr "" + +msgid "Bhojpuri" +msgstr "" + +msgid "Bislama" +msgstr "" + +msgid "Bangla" +msgstr "" + +msgid "Tibetan" +msgstr "" + +msgid "Breton" +msgstr "" + +msgid "Bodo" +msgstr "" + +msgid "Bosnain" +msgstr "" + +msgid "Blin" +msgstr "" + +msgid "Catalan" +msgstr "" + +msgid "Chechen" +msgstr "" + +msgid "Cherokee" +msgstr "" + +msgid "Central Kurdish" +msgstr "" + +msgid "Mandarin Chinese" +msgstr "" + +msgid "Crimean Tatar" +msgstr "" + +msgid "Kashubian" +msgstr "" + +msgid "Chuvash" +msgstr "" + +msgid "Welsh" +msgstr "" + +msgid "Austrian German" +msgstr "" + +msgid "Swiss High Gernam" +msgstr "" + +msgid "German" +msgstr "" + +msgid "Dogri" +msgstr "" + +msgid "Lower Sorbian" +msgstr "" + +msgid "Divehi" +msgstr "" + +msgid "Dzongkha" +msgstr "" + +msgid "English" +msgstr "" + +msgid "Spanish" +msgstr "" + +msgid "Basque" +msgstr "" + +msgid "Persian" +msgstr "" + +msgid "Fulah" +msgstr "" + +msgid "Filipino" +msgstr "" + +msgid "Faroese" +msgstr "" + +msgid "Swiss French" +msgstr "" + +msgid "Friulian" +msgstr "" + +msgid "Western Frisian" +msgstr "" + +msgid "Irish" +msgstr "" + +msgid "Garhwali" +msgstr "" + +msgid "Scottish Gaelic" +msgstr "" + +msgid "Geez" +msgstr "" + +msgid "Galician" +msgstr "" + +msgid "Manx" +msgstr "" + +msgid "Hausa" +msgstr "" + +msgid "Hakka Chinese" +msgstr "" + +msgid "Fiji Hindi" +msgstr "" + +msgid "Chhattisgarhi" +msgstr "" + +msgid "Upper Sorbian" +msgstr "" + +msgid "Haitian Creole" +msgstr "" + +msgid "Interlingua" +msgstr "" + +msgid "Igbo" +msgstr "" + +msgid "Inupiaq" +msgstr "" + +msgid "Inalian" +msgstr "" + +msgid "Inuktitut" +msgstr "" + +msgid "Kabyle" +msgstr "" + +msgid "Kalaallisut" +msgstr "" + +msgid "Khmer" +msgstr "" + +msgid "Korean" +msgstr "" + +msgid "Konkani" +msgstr "" + +msgid "Kurdish" +msgstr "" + +msgid "Komi" +msgstr "" + +msgid "Cornish" +msgstr "" + +msgid "Kyrgyz" +msgstr "" + +msgid "Luxembourgish" +msgstr "" + +msgid "Ganda" +msgstr "" + +msgid "Limburgish" +msgstr "" + +msgid "Ligurian" +msgstr "" + +msgid "Lingala" +msgstr "" + +msgid "Lao" +msgstr "" + +msgid "Literary Chinese" +msgstr "" + +msgid "Magahi" +msgstr "" + +msgid "Maithili" +msgstr "" + +msgid "Morisyen" +msgstr "" + +msgid "Malagasy" +msgstr "" + +msgid "Meadow Mari" +msgstr "" + +msgid "Maori" +msgstr "" + +msgid "Miskito" +msgstr "" + +msgid "Karbi" +msgstr "" + +msgid "Mongolian" +msgstr "" + +msgid "Manipuri" +msgstr "" + +msgid "Mon" +msgstr "" + +msgid "Maltese" +msgstr "" + +msgid "Burmese" +msgstr "" + +msgid "Min Nan Chinese" +msgstr "" + +msgid "Norwegian Bokmål" +msgstr "" + +msgid "Low German" +msgstr "" + +msgid "Low Saxon" +msgstr "" + +msgid "Nepali" +msgstr "" + +msgid "Central Nahuatl" +msgstr "" + +msgid "Niuean" +msgstr "" + +msgid "Dutch" +msgstr "" + +msgid "Flemish" +msgstr "" + +msgid "Norwegian Nynorsk" +msgstr "" + +msgid "South Ndebele" +msgstr "" + +msgid "Northern Sotho" +msgstr "" + +msgid "Occitan" +msgstr "" + +msgid "Oromo" +msgstr "" + +msgid "Odia" +msgstr "" + +msgid "Ossetic" +msgstr "" + +msgid "Punjabi" +msgstr "" + +msgid "Papiamento" +msgstr "" + +msgid "Pashto" +msgstr "" + +msgid "Brazilian Portuguese" +msgstr "" + +msgid "European Portuguese" +msgstr "" + +msgid "Cusco Quechua" +msgstr "" + +msgid "Rajasthani" +msgstr "" + +msgid "Tarifit" +msgstr "" + +msgid "Kinyarwanda" +msgstr "" + +msgid "Sakha" +msgstr "" + +msgid "Santali" +msgstr "" + +msgid "Sardinian" +msgstr "" + +msgid "Sindhi" +msgstr "" + +msgid "Northern Sami" +msgstr "" + +msgid "Samogitian" +msgstr "" + +msgid "Shan" +msgstr "" + +msgid "Shuswap" +msgstr "" + +msgid "Shinhala" +msgstr "" + +msgid "Sidamo" +msgstr "" + +msgid "Samoan" +msgstr "" + +msgid "Somali" +msgstr "" + +msgid "Albanian" +msgstr "" + +msgid "Swati" +msgstr "" + +msgid "Saho" +msgstr "" + +msgid "Southern Sotho" +msgstr "" + +msgid "Sundanese" +msgstr "" + +msgid "Swedish" +msgstr "" + +msgid "Swahili" +msgstr "" + +msgid "Silesian" +msgstr "" + +msgid "Tamil" +msgstr "" + +msgid "Tulu" +msgstr "" + +msgid "Tajik" +msgstr "" + +msgid "Chitwania Tharu" +msgstr "" + +msgid "Tigrinya" +msgstr "" + +msgid "Tigre" +msgstr "" + +msgid "Turkmen" +msgstr "" + +msgid "Tagalog" +msgstr "" + +msgid "Tswana" +msgstr "" + +msgid "Tongan" +msgstr "" + +msgid "Tok Pisin" +msgstr "" + +msgid "Turkish" +msgstr "" + +msgid "Tsonga" +msgstr "" + +msgid "Tatar" +msgstr "" + +msgid "Uyghur" +msgstr "" + +msgid "Unami Delaware" +msgstr "" + +msgid "Urdu" +msgstr "" + +msgid "Uzbek" +msgstr "" + +msgid "Venda" +msgstr "" + +msgid "Walloon" +msgstr "" + +msgid "Walser" +msgstr "" + +msgid "Wolaytta" +msgstr "" + +msgid "Wolof" +msgstr "" + +msgid "Xhosa" +msgstr "" + +msgid "Yiddish" +msgstr "" + +msgid "Yoruba" +msgstr "" + +msgid "Cantonese" +msgstr "" + +msgid "Yau" +msgstr "" + +msgid "Moroccan Tamazight" +msgstr "" + +msgid "Chinese" +msgstr "" + +msgid "Zulu" +msgstr "" + +#: ./locales.csv:1 +msgid "Afrikaans" +msgstr "" + +#: ./locales.csv:2 +msgid "Arabic" +msgstr "" + +#: ./locales.csv:16 +msgid "Assamese" +msgstr "" + +#: ./locales.csv:17 +msgid "Azerbaijani" +msgstr "" + +#: ./locales.csv:18 +msgid "Belarusian" +msgstr "" + +#: ./locales.csv:19 +msgid "Bulgarian" +msgstr "" + +#: ./locales.csv:20 +msgid "Bengali" +msgstr "" + +#: ./locales.csv:21 +msgid "Bosnian" +msgstr "" + +#: ./locales.csv:22 +msgid "Catalan" +msgstr "" + +#: ./locales.csv:23 +msgid "Czech" +msgstr "" + +#: ./locales.csv:24 +msgid "Danish" +msgstr "" + +#: ./locales.csv:25 +msgid "German" +msgstr "" + +#: ./locales.csv:31 +msgid "Greek" +msgstr "" + +#: ./locales.csv:33 +msgid "English" +msgstr "" + +#: ./locales.csv:46 +msgid "Spanish" +msgstr "" + +#: ./locales.csv:66 +msgid "Estonian" +msgstr "" + +#: ./locales.csv:67 +msgid "Finnish" +msgstr "" + +#: ./locales.csv:68 +msgid "French" +msgstr "" + +#: ./locales.csv:73 +msgid "Gujarati" +msgstr "" + +#: ./locales.csv:74 +msgid "Hebrew" +msgstr "" + +#: ./locales.csv:75 +msgid "Hindi" +msgstr "" + +#: ./locales.csv:76 +msgid "Croatian" +msgstr "" + +#: ./locales.csv:77 +msgid "Hungarian" +msgstr "" + +#: ./locales.csv:78 +msgid "Armenian" +msgstr "" + +#: ./locales.csv:79 +msgid "Indonesian" +msgstr "" + +#: ./locales.csv:80 +msgid "Icelandic" +msgstr "" + +#: ./locales.csv:81 +msgid "Italian" +msgstr "" + +#: ./locales.csv:83 +msgid "Japanese" +msgstr "" + +#: ./locales.csv:84 +msgid "Georgian" +msgstr "" + +#: ./locales.csv:85 +msgid "Kazakh" +msgstr "" + +#: ./locales.csv:86 +msgid "Kannada" +msgstr "" + +#: ./locales.csv:88 +msgid "" +msgstr "" + +#: ./locales.csv:91 +msgid "Kirghiz" +msgstr "" + +#: ./locales.csv:92 +msgid "Lithuanian" +msgstr "" + +#: ./locales.csv:93 +msgid "Latvian" +msgstr "" + +#: ./locales.csv:94 +msgid "Macedonian" +msgstr "" + +#: ./locales.csv:95 +msgid "Malayalam" +msgstr "" + +#: ./locales.csv:96 +msgid "Marathi" +msgstr "" + +#: ./locales.csv:97 +msgid "Malay" +msgstr "" + + +#: ./locales.csv:99 +msgid "Bokmal" +msgstr "" + +#: ./locales.csv:102 +msgid "Nynorsk" +msgstr "" + +#: ./locales.csv:103 +msgid "Oriya" +msgstr "" + +#: ./locales.csv:104 +msgid "Punjabi" +msgstr "" + +#: ./locales.csv:105 +msgid "Polish" +msgstr "" + +#: ./locales.csv:106 +msgid "Portuguese" +msgstr "" + +#: ./locales.csv:108 +msgid "Romanian" +msgstr "" + +#: ./locales.csv:109 +msgid "Russian" +msgstr "" + +#: ./locales.csv:111 +msgid "Sanskrit" +msgstr "" + +#: ./locales.csv:112 +msgid "Slovak" +msgstr "" + +#: ./locales.csv:113 +msgid "Slovenian" +msgstr "" + +#: ./locales.csv:114 +msgid "Albanian" +msgstr "" + +#: ./locales.csv:115 +msgid "Serbian" +msgstr "" + +#: ./locales.csv:119 +msgid "Swedish" +msgstr "" + +#: ./locales.csv:120 +msgid "Tamil" +msgstr "" + +#: ./locales.csv:121 +msgid "Telugu" +msgstr "" + +#: ./locales.csv:122 +msgid "Thai" +msgstr "" + +#: ./locales.csv:123 +msgid "Turkish" +msgstr "" + +#: ./locales.csv:124 +msgid "Ukrainian" +msgstr "" + +#: ./locales.csv:125 +msgid "Vietnamese" +msgstr "" + +#: ./locales.csv:126 +msgid "Simplified Chinese" +msgstr "" + +#: ./locales.csv:127 +msgid "Traditional Chinese" +msgstr "" + +#: ./locales.csv:128 +msgid "Chinese" +msgstr "" \ No newline at end of file diff --git a/locale/ubl-languages_ru.po b/locale/ubl-languages_ru.po new file mode 100644 index 0000000..27711fd --- /dev/null +++ b/locale/ubl-languages_ru.po @@ -0,0 +1,738 @@ +# Language translations for ubinstall package. +# Copyright (C) 2022, UBTech LLC +# This file is distributed under the same license as the ubinstal package. +# UBLinux Team , 2022 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: ubinstal 1.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-05-22 16:12+0600\n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ./locales.csv:1 +msgid "Afar" +msgstr "Афар" + +#: ./locales.csv:1 +msgid "Abkhazian" +msgstr "Абхазский" + +#: ./locales.csv:1 +msgid "Aguaruna" +msgstr "Агуаруна" + +#: ./locales.csv:1 +msgid "Akan" +msgstr "Акан" + +#: ./locales.csv:1 +msgid "Amharic" +msgstr "Амхарский" + +#: ./locales.csv:1 +msgid "Aragonese" +msgstr "Арагонский диалект" + +msgid "Angika" +msgstr "Ангика" + +msgid "Arabic" +msgstr "Арабский" + +msgid "Asturian" +msgstr "Астурия" + +msgid "Aymara" +msgstr "Аймара" + +msgid "South Azerbaijani" +msgstr "Южноазербайджансий" + +msgid "Bemba" +msgstr "Бемба" + +msgid "Berber" +msgstr "Берберский" + +msgid "Bhili" +msgstr "Бхили" + +msgid "Bhojpuri" +msgstr "Бходжпури" + +msgid "Bislama" +msgstr "Бислама" + +msgid "Bangla" +msgstr "Бангла" + +msgid "Tibetan" +msgstr "Тибетский" + +msgid "Breton" +msgstr "Бретон" + +msgid "Bodo" +msgstr "Бодо" + +msgid "Bosnain" +msgstr "Босней" + +msgid "Blin" +msgstr "Блин" + +msgid "Catalan" +msgstr "Каталонский" + +msgid "Czech" +msgstr "Чешский" + +msgid "Chechen" +msgstr "Чеченский" + +msgid "Cherokee" +msgstr "Чероки" + +msgid "Central Kurdish" +msgstr "Центральнокурдский" + +msgid "Mandarin Chinese" +msgstr "Мадаринский китайский" + +msgid "Crimean Tatar" +msgstr "Крымскотатарский" + +msgid "Kashubian" +msgstr "Кашубский" + +msgid "Chuvash" +msgstr "Чувашский" + +msgid "Welsh" +msgstr "Валлийский" + +msgid "Austrian German" +msgstr "Австрийский немецкий" + +msgid "Swiss High Gernam" +msgstr "Швейцарский верхнелужицкий" + +msgid "German" +msgstr "Немецкий" + +msgid "Dogri" +msgstr "Догри" + +msgid "Lower Sorbian" +msgstr "Нижнелужицкий" + +msgid "Divehi" +msgstr "Дивехи" + +msgid "Dzongkha" +msgstr "Даонкха" + +msgid "English" +msgstr "Английский" + +msgid "Spanish" +msgstr "Испанский" + +msgid "Basque" +msgstr "Баскский" + +msgid "Persian" +msgstr "Персидский" + +msgid "Fulah" +msgstr "Фулах" + +msgid "Filipino" +msgstr "Филиппинский" + +msgid "Faroese" +msgstr "Фарерский" + +msgid "Swiss French" +msgstr "Швейцарский французский" + +msgid "Friulian" +msgstr "Фриульский" + +msgid "Western Frisian" +msgstr "Западнофризский" + +msgid "Irish" +msgstr "Ирландский" + +msgid "Garhwali" +msgstr "Гархвали" + +msgid "Scottish Gaelic" +msgstr "Шотландский гэльский" + +msgid "Geez" +msgstr "Гиз" + +msgid "Galician" +msgstr "Галисийский" + +msgid "Manx" +msgstr "Мэнский" + +msgid "Hausa" +msgstr "Хауса" + +msgid "Hakka Chinese" +msgstr "Хакка" + +msgid "Fiji Hindi" +msgstr "Фиджи Хинди" + +msgid "Chhattisgarhi" +msgstr "Чхаттисгархи" + +msgid "Upper Sorbian" +msgstr "Верхняя Сербия" + +msgid "Haitian Creole" +msgstr "Гаитянский креольский" + +msgid "Interlingua" +msgstr "Интерлингва" + +msgid "Igbo" +msgstr "Игбо" + +msgid "Inupiaq" +msgstr "Инупиак" + +msgid "Inalian" +msgstr "Инальян" + +msgid "Inuktitut" +msgstr "Инуктитут" + +msgid "Kabyle" +msgstr "Кабил" + +msgid "Kalaallisut" +msgstr "Калааллисут" + +msgid "Khmer" +msgstr "Кхмерский" + +msgid "Korean" +msgstr "Корейский" + +msgid "Konkani" +msgstr "Конкани" + +msgid "Kurdish" +msgstr "Курдский" + +msgid "Komi" +msgstr "Коми" + +msgid "Cornish" +msgstr "Корнуолл" + +msgid "Kyrgyz" +msgstr "Киргизский" + +msgid "Luxembourgish" +msgstr "Люксембургский" + +msgid "Ganda" +msgstr "Ганда" + +msgid "Limburgish" +msgstr "Лимбургский" + +msgid "Ligurian" +msgstr "Лигурия" + +msgid "Lingala" +msgstr "Лингала" + +msgid "Lao" +msgstr "Лао" + +msgid "Literary Chinese" +msgstr "Китайская литература" + +msgid "Magahi" +msgstr "Магахи" + +msgid "Maithili" +msgstr "Маитхили" + +msgid "Morisyen" +msgstr "Морисьен" + +msgid "Malagasy" +msgstr "Малагасы" + +msgid "Meadow Mari" +msgstr "Луг Марийский" + +msgid "Maori" +msgstr "Маори" + +msgid "Miskito" +msgstr "Мискито" + +msgid "Karbi" +msgstr "Карби" + +msgid "Mongolian" +msgstr "Монгольский" + +msgid "Manipuri" +msgstr "Манипури" + +msgid "Mon" +msgstr "Монский" + +msgid "Maltese" +msgstr "Мальтийский" + +msgid "Burmese" +msgstr "Бирманский" + +msgid "Min Nan Chinese" +msgstr "Мин Нан Китайский" + +msgid "Norwegian Bokmål" +msgstr "Норвежский букмаль" + +msgid "Low German" +msgstr "Нижнегерманский" + +msgid "Low Saxon" +msgstr "Нижнесаксонский" + +msgid "Nepali" +msgstr "Непальский" + +msgid "Central Nahuatl" +msgstr "Центральный науатль" + +msgid "Niuean" +msgstr "Ниуэ" + +msgid "Dutch" +msgstr "Голландский" + +msgid "Flemish" +msgstr "Фламандский" + +msgid "Norwegian Nynorsk" +msgstr "Норвежский нюнорск" + +msgid "South Ndebele" +msgstr "Южный ндебеле" + +msgid "Northern Sotho" +msgstr "Северный сото" + +msgid "Occitan" +msgstr "Окситанский" + +msgid "Oromo" +msgstr "Оромо" + +msgid "Odia" +msgstr "Одия" + +msgid "Ossetic" +msgstr "Осетинский" + +msgid "Punjabi" +msgstr "Пенджаби" + +msgid "Papiamento" +msgstr "Папиаменто" + +msgid "Pashto" +msgstr "Пушту" + +msgid "Brazilian Portuguese" +msgstr "Бразильский португальский" + +msgid "European Portuguese" +msgstr "Европейский португальский" + +msgid "Cusco Quechua" +msgstr "Куско Кечуа" + +msgid "Rajasthani" +msgstr "Раджастхани" + +msgid "Tarifit" +msgstr "Тарифит" + +msgid "Kinyarwanda" +msgstr "Киньяруанда" + +msgid "Sakha" +msgstr "Саха" + +msgid "Santali" +msgstr "Сантали" + +msgid "Sardinian" +msgstr "Сардиния" + +msgid "Sindhi" +msgstr "Синдхи" + +msgid "Northern Sami" +msgstr "Северные саамы" + +msgid "Samogitian" +msgstr "Жемайтийский" + +msgid "Shan" +msgstr "Шан" + +msgid "Shuswap" +msgstr "Шусвап" + +msgid "Sinhala" +msgstr "Шинхала" + +msgid "Sidamo" +msgstr "Сидамо" + +msgid "Samoan" +msgstr "Самоа" + +msgid "Somali" +msgstr "Сомали" + +msgid "Albanian" +msgstr "Албанский" + +msgid "Swati" +msgstr "Свати" + +msgid "Saho" +msgstr "Сахо" + +msgid "Southern Sotho" +msgstr "Южный Сото" + +msgid "Sundanese" +msgstr "Сунданский" + +msgid "Swedish" +msgstr "Шведский" + +msgid "Swahili" +msgstr "Суахили" + +msgid "Silesian" +msgstr "Силезский" + +msgid "Tamil" +msgstr "Тамильский" + +msgid "Tulu" +msgstr "Тулу" + +msgid "Tajik" +msgstr "Таджикский" + +msgid "Chitwania Tharu" +msgstr "Читвания Тару" + +msgid "Tigrinya" +msgstr "Тигринья" + +msgid "Tigre" +msgstr "Тигре" + +msgid "Turkmen" +msgstr "Туркмен" + +msgid "Tagalog" +msgstr "Тагальский" + +msgid "Tswana" +msgstr "Тсвана" + +msgid "Tongan" +msgstr "Тонганский" + +msgid "Tok Pisin" +msgstr "Ток-писин" + +msgid "Turkish" +msgstr "Турецкий" + +msgid "Tsonga" +msgstr "Тсонга" + +msgid "Tatar" +msgstr "Татарский" + +msgid "Uyghur" +msgstr "Уйгурский" + +msgid "Unami Delaware" +msgstr "Унами, Делавэр" + +msgid "Urdu" +msgstr "Урду" + +msgid "Uzbek" +msgstr "Узбекский" + +msgid "Venda" +msgstr "Венда" + +msgid "Walloon" +msgstr "Валлонский" + +msgid "Walser" +msgstr "Вальзер" + +msgid "Wolaytta" +msgstr "Волайтта" + +msgid "Wolof" +msgstr "Волоф" + +msgid "Xhosa" +msgstr "Коса" + +msgid "Yiddish" +msgstr "Идиш" + +msgid "Yoruba" +msgstr "Йоруба" + +msgid "Cantonese" +msgstr "Кантонский" + +msgid "Yau" +msgstr "Яу" + +msgid "Moroccan Tamazight" +msgstr "Марокканский тамазигхт" + +msgid "Chinese" +msgstr "Китайский" + +msgid "Zulu" +msgstr "Зулу" + +#: ./locales.csv:1 +msgid "Afrikaans" +msgstr "Африкаанс" + +#: ./locales.csv:16 +msgid "Assamese" +msgstr "Ассамский" + +#: ./locales.csv:17 +msgid "Azerbaijani" +msgstr "Азербайджанский" + +#: ./locales.csv:18 +msgid "Belarusian" +msgstr "Белорусский" + +#: ./locales.csv:19 +msgid "Bulgarian" +msgstr "Болгарский" + +#: ./locales.csv:20 +msgid "Bengali" +msgstr "Бенгальский" + +#: ./locales.csv:21 +msgid "Bosnian" +msgstr "Боснийский" + +#: ./locales.csv:24 +msgid "Danish" +msgstr "Датский" + +#: ./locales.csv:31 +msgid "Greek" +msgstr "Греческий" + +#: ./locales.csv:66 +msgid "Estonian" +msgstr "Эстонский" + +#: ./locales.csv:67 +msgid "Finnish" +msgstr "Финский" + +#: ./locales.csv:68 +msgid "French" +msgstr "Французский" + +#: ./locales.csv:73 +msgid "Gujarati" +msgstr "Гуджарати" + +#: ./locales.csv:74 +msgid "Hebrew" +msgstr "Иврит" + +#: ./locales.csv:75 +msgid "Hindi" +msgstr "Хинди" + +#: ./locales.csv:76 +msgid "Croatian" +msgstr "Хорватский" + +#: ./locales.csv:77 +msgid "Hungarian" +msgstr "Венгерский" + +#: ./locales.csv:78 +msgid "Armenian" +msgstr "Армянский" + +#: ./locales.csv:79 +msgid "Indonesian" +msgstr "Индонезийский" + +#: ./locales.csv:80 +msgid "Icelandic" +msgstr "Исландский" + +#: ./locales.csv:81 +msgid "Italian" +msgstr "Итальянский" + +#: ./locales.csv:83 +msgid "Japanese" +msgstr "Японский" + +#: ./locales.csv:84 +msgid "Georgian" +msgstr "Грузинский" + +#: ./locales.csv:85 +msgid "Kazakh" +msgstr "Казахский" + +#: ./locales.csv:86 +msgid "Kannada" +msgstr "Каннада" + +#: ./locales.csv:88 +msgid "Kashmiri" +msgstr "Кашмири" + +#: ./locales.csv:91 +msgid "Kirghiz" +msgstr "Киргизский" + +#: ./locales.csv:92 +msgid "Lithuanian" +msgstr "Литовский" + +#: ./locales.csv:93 +msgid "Latvian" +msgstr "Латышский" + +#: ./locales.csv:94 +msgid "Macedonian" +msgstr "Македонский" + +#: ./locales.csv:95 +msgid "Malayalam" +msgstr "Малаялам" + +#: ./locales.csv:96 +msgid "Marathi" +msgstr "Маратхи" + +#: ./locales.csv:97 +msgid "Malay" +msgstr "Малайский" + + +#: ./locales.csv:99 +msgid "Bokmål" +msgstr "Букмол" + +#: ./locales.csv:102 +msgid "Nynorsk" +msgstr "Нюнорск" + +#: ./locales.csv:103 +msgid "Oriya" +msgstr "Ория" + +#: ./locales.csv:105 +msgid "Polish" +msgstr "Польский" + +#: ./locales.csv:106 +msgid "Portuguese" +msgstr "Португальский" + +#: ./locales.csv:108 +msgid "Romanian" +msgstr "Румынский" + +#: ./locales.csv:109 +msgid "Russian" +msgstr "Русский" + +#: ./locales.csv:111 +msgid "Sanskrit" +msgstr "Санскрит" + +#: ./locales.csv:112 +msgid "Slovak" +msgstr "Словацкий" + +#: ./locales.csv:113 +msgid "Slovenian" +msgstr "Словенский" + +#: ./locales.csv:115 +msgid "Serbian" +msgstr "Сербский" + +#: ./locales.csv:121 +msgid "Telugu" +msgstr "Телугу" + +#: ./locales.csv:122 +msgid "Thai" +msgstr "Тайский" + +#: ./locales.csv:124 +msgid "Ukrainian" +msgstr "Украинский" + +#: ./locales.csv:125 +msgid "Vietnamese" +msgstr "Вьетнамский" + +#: ./locales.csv:126 +msgid "Simplified Chinese" +msgstr "Упрощенный китайский" + +#: ./locales.csv:127 +msgid "Traditional Chinese" +msgstr "Традиционный китайский" \ No newline at end of file diff --git a/locale/ubl-locales.pot b/locale/ubl-locales.pot new file mode 100644 index 0000000..5a44407 --- /dev/null +++ b/locale/ubl-locales.pot @@ -0,0 +1,1162 @@ +#: ./locales.csv:1 +msgid "Afar, Djibiuti" +msgstr "" + +#: ./locales.csv:1 +msgid "Afar, Eritrea" +msgstr "" + +#: ./locales.csv:1 +msgid "Afar, Ethiopia" +msgstr "" + +#: ./locales.csv:1 +msgid "Abkhazian, Georgia" +msgstr "" + +#: ./locales.csv:1 +msgid "Aguaruna, Peru" +msgstr "" + +#: ./locales.csv:1 +msgid "Akan, Ghana" +msgstr "" + +#: ./locales.csv:1 +msgid "Amharic, Ethiopia" +msgstr "" + +#: ./locales.csv:1 +msgid "Aragonese, Spain" +msgstr "" + +msgid "Angika, India" +msgstr "" + +msgid "Arabic, India" +msgstr "" + +msgid "Arabic, Lebanon" +msgstr "" + +msgid "Arabic, Sudan" +msgstr "" + +msgid "Arabic, South Sudan" +msgstr "" + +msgid "Arabic, Syria" +msgstr "" + +msgid "Asturian, Spain" +msgstr "" + +msgid "Aymara, Peru" +msgstr "" + +msgid "South Azerbaijani, Iran" +msgstr "" + +msgid "Bemba, Zambia" +msgstr "" + +msgid "Berber, Algeria" +msgstr "" + +msgid "Berber, Morocco" +msgstr "" + +msgid "Bhili, India" +msgstr "" + +msgid "Bhojpuri, India" +msgstr "" + +msgid "Bhojpuri, Nepal" +msgstr "" + +msgid "Bislama, Vanuatu" +msgstr "" + +msgid "Bangla, Bangladesh" +msgstr "" + +msgid "Bangla, India" +msgstr "" + +msgid "Tibetan, China" +msgstr "" + +msgid "Tibetan, India" +msgstr "" + +msgid "Breton, France" +msgstr "" + +msgid "Bodo, India" +msgstr "" + +msgid "Bosnain, Bosnia & Herzegovina" +msgstr "" + +msgid "Blin, Eritrea" +msgstr "" + +msgid "Catalan, Andorra" +msgstr "" + +msgid "Catalan, France" +msgstr "" + +msgid "Catalan, Italy" +msgstr "" + +msgid "Chechen, Russia" +msgstr "" + +msgid "Cherokee, United States" +msgstr "" + +msgid "Central Kurdish, Iraq" +msgstr "" + +msgid "Mandarin Chineese, Taiwan" +msgstr "" + +msgid "Crimean Tatar, Russian Federation" +msgstr "" + +msgid "Crimean Tatar, Ukraine" +msgstr "" + +msgid "Kashubian, Poland" +msgstr "" + +msgid "Chuvash, Russia" +msgstr "" + +msgid "Welsh, United Kingdom" +msgstr "" + +msgid "Austrian German, Austria" +msgstr "" + +msgid "Swiss High Gernam, Switzerland" +msgstr "" + +msgid "German, Italy" +msgstr "" + +msgid "Dogri, India" +msgstr "" + +msgid "Lower Sorbian, Germany" +msgstr "" + +msgid "Divehi, Maldives" +msgstr "" + +msgid "Dzongkha, Bhutan" +msgstr "" + +msgid "English, Antigua & Barbuda" +msgstr "" + +msgid "Australian English, Australia" +msgstr "" + +msgid "Canadian English, Canada" +msgstr "" + +msgid "English, Denmark" +msgstr "" + +msgid "British English, United Kingdom" +msgstr "" + +msgid "English, Isralel" +msgstr "" + +msgid "English, Nigeria" +msgstr "" + +msgid "English, Seychelles" +msgstr "" + +msgid "American English, United States" +msgstr "" + +msgid "English, South Africa" +msgstr "" + +msgid "English, Zambia" +msgstr "" + +msgid "Spanish, Cuba" +msgstr "" + +msgid "European Spanish, Spain" +msgstr "" + +msgid "Mexican Spanish, Mexico" +msgstr "" + +msgid "Spanish, United States" +msgstr "" + +msgid "Basque, Spain" +msgstr "" + +msgid "Persian, Iran" +msgstr "" + +msgid "Fulah, Senegal" +msgstr "" + +msgid "Filipino, Philippines" +msgstr "" + +msgid "Faroese, Faroe Islands" +msgstr "" + +msgid "Swiss French, Switzerland" +msgstr "" + +msgid "Canadian French, Canada" +msgstr "" + +msgid "Friulian, Italy" +msgstr "" + +msgid "Western Frisian, Germany" +msgstr "" + +msgid "Western Frisian, Netherlands" +msgstr "" + +msgid "Irish, Ireland" +msgstr "" + +msgid "Garhwali, India" +msgstr "" + +msgid "Scottish Gaelic, United Kingdom" +msgstr "" + +msgid "Geez, Eritrea" +msgstr "" + +msgid "Geez, Ethiopia" +msgstr "" + +msgid "Galician, Spain" +msgstr "" + +msgid "Manx, United Kingdom" +msgstr "" + +msgid "Hausa, Nigeria" +msgstr "" + +msgid "Hakka Chineze, Taiwan" +msgstr "" + +msgid "Fiji Hindi, Fiji" +msgstr "" + +msgid "Chhattisgarhi, India" +msgstr "" + +msgid "Upper Sorbian, Germany" +msgstr "" + +msgid "Haitian Creole, Haiti" +msgstr "" + +msgid "Interlingua, France" +msgstr "" + +msgid "Igbo, Nigeria" +msgstr "" + +msgid "Inupiaq, Canada" +msgstr "" + +msgid "Inalian, Switzerland" +msgstr "" + +msgid "Inuktitut, Canada" +msgstr "" + +msgid "Kabyle, Algeria" +msgstr "" + +msgid "Kalaallisut, Greenland" +msgstr "" + +msgid "Khmer, Cambodia" +msgstr "" + +msgid "Korean, South Korea" +msgstr "" + +msgid "Konkani, India" +msgstr "" + +msgid "Kurdish, Turkiye" +msgstr "" + +msgid "Komi, Russia" +msgstr "" + +msgid "Cornish, United Kingdom" +msgstr "" + +msgid "Kyrgyz, Kyrgyzstan" +msgstr "" + +msgid "Luxembourgish, Luxembourg" +msgstr "" + +msgid "Ganda, Uganda" +msgstr "" + +msgid "Limburgish, Belgium" +msgstr "" + +msgid "Limburgish, Netherlands" +msgstr "" + +msgid "Ligurian, Italy" +msgstr "" + +msgid "Lingala, Democratic Republic of the Congo" +msgstr "" + +msgid "Lao, Laos" +msgstr "" + +msgid "Literary Chineese, Taiwan" +msgstr "" + +msgid "Magahi, India" +msgstr "" + +msgid "Maithili, India" +msgstr "" + +msgid "Maithili, Nepal" +msgstr "" + +msgid "Morisyen, Mauritius" +msgstr "" + +msgid "Malagasy, Madagascar" +msgstr "" + +msgid "Meadow Mari, Russia" +msgstr "" + +msgid "Maori, New Zealand" +msgstr "" + +msgid "Miskito, Nicaragua" +msgstr "" + +msgid "Karbi, India" +msgstr "" + +msgid "Mongolian, Mongolia" +msgstr "" + +msgid "Manipuri, India" +msgstr "" + +msgid "Mon, Myanmar" +msgstr "" + +msgid "Maltese, malta" +msgstr "" + +msgid "Burmese, Myanmar (Burma)" +msgstr "" + +msgid "Min Nan Chineese, Taiwan" +msgstr "" + +msgid "Norwegian Bokmal, Norway" +msgstr "" + +msgid "Low Gernam, Germany" +msgstr "" + +msgid "Low Saxon, Netherlands" +msgstr "" + +msgid "Nepali, Nepal" +msgstr "" + +msgid "Central Nahuatl, Mexico" +msgstr "" + +msgid "Niuean, Niue" +msgstr "" + +msgid "Niuean, New Zealand" +msgstr "" + +msgid "Dutch, Aruba" +msgstr "" + +msgid "Flemish, Belgium" +msgstr "" + +msgid "Norwegian, Nynorsk, Norway" +msgstr "" + +msgid "South Ndebele, South Africa" +msgstr "" + +msgid "Northern Sotho, South Africa" +msgstr "" + +msgid "Occitan, France" +msgstr "" + +msgid "Oromo, Ethiopia" +msgstr "" + +msgid "Oromo, Kenya" +msgstr "" + +msgid "Odia, India" +msgstr "" + +msgid "Ossetic, Russia" +msgstr "" + +msgid "Punjabi, Pakistan" +msgstr "" + +msgid "Papiamento, Aruba" +msgstr "" + +msgid "Papiamento, Curacao" +msgstr "" + +msgid "Pashto, Afghanistan" +msgstr "" + +msgid "Braziliam Portuguese, Brazil" +msgstr "" + +msgid "European Portuguese, Portugal" +msgstr "" + +msgid "Cusco Quechua, Peru" +msgstr "" + +msgid "Rajasthani, India" +msgstr "" + +msgid "Tarifit, Morocco" +msgstr "" + +msgid "Kinyawanda, Rwanda" +msgstr "" + +msgid "Sakha, Russian Federation" +msgstr "" + +msgid "Santali, India" +msgstr "" + +msgid "Sardinian, Italy" +msgstr "" + +msgid "Sindhi, India" +msgstr "" + +msgid "Northern Sami, Norway" +msgstr "" + +msgid "Samogitian, Lithuania" +msgstr "" + +msgid "Shan, Myanmar" +msgstr "" + +msgid "Shuswap, Canada" +msgstr "" + +msgid "Shinhala, Sri Lanka" +msgstr "" + +msgid "Sidamo, Ehiopia" +msgstr "" + +msgid "Samoan, Samoa" +msgstr "" + +msgid "Somali, Djibouti" +msgstr "" + +msgid "Somali, Ethiopia" +msgstr "" + +msgid "Somali, Kenya" +msgstr "" + +msgid "Somali, Somalia" +msgstr "" + +msgid "Albanian, Macedonia" +msgstr "" + +msgid "Swati, South Africa" +msgstr "" + +msgid "Saho, Eritrea" +msgstr "" + +msgid "Southern Sotho, South Africa" +msgstr "" + +msgid "Sundanese, Indonesia" +msgstr "" + +msgid "Swedish, Finland" +msgstr "" + +msgid "Swahili, Kenya" +msgstr "" + +msgid "Swahili, Tanzania" +msgstr "" + +msgid "Silesian, Poland" +msgstr "" + +msgid "Tamil, Sri Lanka" +msgstr "" + +msgid "Tulu, India" +msgstr "" + +msgid "Tajik, Tajikistan" +msgstr "" + +msgid "Chitwania Tharu, Nepal" +msgstr "" + +msgid "Tigrinya, Eritrea" +msgstr "" + +msgid "Tigrinya, Ethiopia" +msgstr "" + +msgid "Tigre, Eritrea" +msgstr "" + +msgid "Turkmen, Turkmenistan" +msgstr "" + +msgid "Tagalog, Philippines" +msgstr "" + +msgid "Tswana, South Africa" +msgstr "" + +msgid "Tongan, Tonga" +msgstr "" + +msgid "Tok Pisin, Papua New Guinea" +msgstr "" + +msgid "Turkish, Cyprus" +msgstr "" + +msgid "Turkish, Turkiye" +msgstr "" + +msgid "Tsonga, South Africa" +msgstr "" + +msgid "Tatar, Russia" +msgstr "" + +msgid "Uyghur, China" +msgstr "" + +msgid "Unami Delaware, United States" +msgstr "" + +msgid "Urdu, India" +msgstr "" + +msgid "Urdu, Pakistan" +msgstr "" + +msgid "Uzbek, Uzbekistan" +msgstr "" + +msgid "Venda, South Africa" +msgstr "" + +msgid "Walloon, Belgium" +msgstr "" + +msgid "Walser, Switzerland" +msgstr "" + +msgid "Wolaytta, Ethiopia" +msgstr "" + +msgid "Wolof, Senegal" +msgstr "" + +msgid "Xhosa, South Africa" +msgstr "" + +msgid "Yiddish, United States" +msgstr "" + +msgid "Yoruba, Nigeria" +msgstr "" + +msgid "Cantonese, Hong Kong SAR China" +msgstr "" + +msgid "Yau, Papua New Guinea" +msgstr "" + +msgid "Moroccan Tamazight, Morocco" +msgstr "" + +msgid "Chinese, China" +msgstr "" + +msgid "Chinese, Hong Kong SAR China" +msgstr "" + +msgid "Chinese, Taiwan" +msgstr "" + +msgid "Zulu, South Africa" +msgstr "" + +#: ./locales.csv:1 +msgid "Afrikaans, South Africa" +msgstr "" + +#: ./locales.csv:2 +msgid "Arabic, United Arab Emirates" +msgstr "" + +#: ./locales.csv:3 +msgid "Arabic, Bahrain" +msgstr "" + +#: ./locales.csv:4 +msgid "Arabic, Algeria" +msgstr "" + +#: ./locales.csv:5 +msgid "Arabic, Egypt" +msgstr "" + +#: ./locales.csv:6 +msgid "Arabic, Iraq" +msgstr "" + +#: ./locales.csv:7 +msgid "Arabic, Jordan" +msgstr "" + +#: ./locales.csv:8 +msgid "Arabic, Kuwait" +msgstr "" + +#: ./locales.csv:9 +msgid "Arabic, Libya" +msgstr "" + +#: ./locales.csv:10 +msgid "Arabic, Morocco" +msgstr "" + +#: ./locales.csv:11 +msgid "Arabic, Oman" +msgstr "" + +#: ./locales.csv:12 +msgid "Arabic, Qatar" +msgstr "" + +#: ./locales.csv:13 +msgid "Arabic, Saudi Arabia" +msgstr "" + +#: ./locales.csv:14 +msgid "Arabic, Tunisia" +msgstr "" + +#: ./locales.csv:15 +msgid "Arabic, Yemen" +msgstr "" + +#: ./locales.csv:16 +msgid "Assamese, India" +msgstr "" + +#: ./locales.csv:17 +msgid "Azerbaijani, Azerbaijan" +msgstr "" + +#: ./locales.csv:18 +msgid "Belarusian, Belarus" +msgstr "" + +#: ./locales.csv:19 +msgid "Bulgarian, Bulgaria" +msgstr "" + +#: ./locales.csv:20 +msgid "Bengali, India" +msgstr "" + +#: ./locales.csv:21 +msgid "Bosnian, Bosnia and Herzegovina" +msgstr "" + +#: ./locales.csv:22 +msgid "Catalan, Spain" +msgstr "" + +#: ./locales.csv:23 +msgid "Czech, Czech Republic" +msgstr "" + +#: ./locales.csv:24 +msgid "Danish, Denmark" +msgstr "" + +#: ./locales.csv:25 +msgid "German, Austria" +msgstr "" + +#: ./locales.csv:26 +msgid "German, Belgium" +msgstr "" + +#: ./locales.csv:27 +msgid "German, Switzerland" +msgstr "" + +#: ./locales.csv:28 +msgid "German, Germany" +msgstr "" + +#: ./locales.csv:29 +msgid "German, Liechtenstein" +msgstr "" + +#: ./locales.csv:30 +msgid "German, Luxembourg" +msgstr "" + +#: ./locales.csv:31 +msgid "Greek, Cyprus" +msgstr "" + +#: ./locales.csv:32 +msgid "Greek, Greece" +msgstr "" + +#: ./locales.csv:33 +msgid "English, Australia" +msgstr "" + +#: ./locales.csv:34 +msgid "English, Botswana" +msgstr "" + +#: ./locales.csv:35 +msgid "English, Canada" +msgstr "" + +#: ./locales.csv:36 +msgid "English, United Kingdom" +msgstr "" + +#: ./locales.csv:37 +msgid "English, Hong Kong SAR China" +msgstr "" + +#: ./locales.csv:38 +msgid "English, Ireland" +msgstr "" + +#: ./locales.csv:39 +msgid "English, India" +msgstr "" + +#: ./locales.csv:40 +msgid "English, Malta" +msgstr "" + +#: ./locales.csv:41 +msgid "English, New Zealand" +msgstr "" + +#: ./locales.csv:42 +msgid "English, Philippines" +msgstr "" + +#: ./locales.csv:43 +msgid "English, Singapore" +msgstr "" + +#: ./locales.csv:44 +msgid "English, U.S.A." +msgstr "" + +#: ./locales.csv:45 +msgid "English, Zimbabwe" +msgstr "" + +#: ./locales.csv:46 +msgid "Spanish, Argentina" +msgstr "" + +#: ./locales.csv:47 +msgid "Spanish, Bolivia" +msgstr "" + +#: ./locales.csv:48 +msgid "Spanish, Chile" +msgstr "" + +#: ./locales.csv:49 +msgid "Spanish, Colombia" +msgstr "" + +#: ./locales.csv:50 +msgid "Spanish, Costa Rica" +msgstr "" + +#: ./locales.csv:51 +msgid "Spanish, Dominican Republic" +msgstr "" + +#: ./locales.csv:52 +msgid "Spanish, Ecuador" +msgstr "" + +#: ./locales.csv:53 +msgid "Spanish, Spain" +msgstr "" + +#: ./locales.csv:54 +msgid "Spanish, Guatemala" +msgstr "" + +#: ./locales.csv:55 +msgid "Spanish, Honduras" +msgstr "" + +#: ./locales.csv:56 +msgid "Spanish, Mexico" +msgstr "" + +#: ./locales.csv:57 +msgid "Spanish, Nicaragua" +msgstr "" + +#: ./locales.csv:58 +msgid "Spanish, Panama" +msgstr "" + +#: ./locales.csv:59 +msgid "Spanish, Peru" +msgstr "" + +#: ./locales.csv:60 +msgid "Spanish, Puerto Rico" +msgstr "" + +#: ./locales.csv:61 +msgid "Spanish, Paraguay" +msgstr "" + +#: ./locales.csv:62 +msgid "Spanish, El Salvador" +msgstr "" + +#: ./locales.csv:63 +msgid "Spanish, U.S.A." +msgstr "" + +#: ./locales.csv:64 +msgid "Spanish, Uruguay" +msgstr "" + +#: ./locales.csv:65 +msgid "Spanish, Venezuela" +msgstr "" + +#: ./locales.csv:66 +msgid "Estonian, Estonia" +msgstr "" + +#: ./locales.csv:67 +msgid "Finnish, Finland" +msgstr "" + +#: ./locales.csv:68 +msgid "French, Belgium" +msgstr "" + +#: ./locales.csv:69 +msgid "French, Canada" +msgstr "" + +#: ./locales.csv:70 +msgid "French, Switzerland" +msgstr "" + +#: ./locales.csv:71 +msgid "French, France" +msgstr "" + +#: ./locales.csv:72 +msgid "French, Luxembourg" +msgstr "" + +#: ./locales.csv:73 +msgid "Gujarati, India" +msgstr "" + +#: ./locales.csv:74 +msgid "Hebrew, Israel" +msgstr "" + +#: ./locales.csv:75 +msgid "Hindi, India" +msgstr "" + +#: ./locales.csv:76 +msgid "Croatian, Croatia" +msgstr "" + +#: ./locales.csv:77 +msgid "Hungarian, Hungary" +msgstr "" + +#: ./locales.csv:78 +msgid "Armenian, Armenia" +msgstr "" + +#: ./locales.csv:79 +msgid "Indonesian, Indonesia" +msgstr "" + +#: ./locales.csv:80 +msgid "Icelandic, Iceland" +msgstr "" + +#: ./locales.csv:81 +msgid "Italian, Switzerland" +msgstr "" + +#: ./locales.csv:82 +msgid "Italian, Italy" +msgstr "" + +#: ./locales.csv:83 +msgid "Japanese, Japan" +msgstr "" + +#: ./locales.csv:84 +msgid "Georgian, Georgia" +msgstr "" + +#: ./locales.csv:85 +msgid "Kazakh, Kazakhstan" +msgstr "" + +#: ./locales.csv:86 +msgid "Kannada, India" +msgstr "" + +#: ./locales.csv:87 +msgid "Korean, Korea" +msgstr "" + +#: ./locales.csv:88 +msgid "Kashmiri, India" +msgstr "" + +#: ./locales.csv:89 +msgid "Kurdish, Turkey" +msgstr "" + +#: ./locales.csv:90 +msgid "Kurdish (Sorani), Turkey" +msgstr "" + +#: ./locales.csv:91 +msgid "Kirghiz, Kyrgyzstan" +msgstr "" + +#: ./locales.csv:92 +msgid "Lithuanian, Lithuania" +msgstr "" + +#: ./locales.csv:93 +msgid "Latvian, Latvia" +msgstr "" + +#: ./locales.csv:94 +msgid "Macedonian, Macedonia" +msgstr "" + +#: ./locales.csv:95 +msgid "Malayalam, India" +msgstr "" + +#: ./locales.csv:96 +msgid "Marathi, India" +msgstr "" + +#: ./locales.csv:97 +msgid "Malay, Malaysia" +msgstr "" + +#: ./locales.csv:98 +msgid "Maltese, Malta" +msgstr "" + +#: ./locales.csv:99 +msgid "Bokmal, Norway" +msgstr "" + +#: ./locales.csv:100 +msgid "Dutch, Belgium" +msgstr "" + +#: ./locales.csv:101 +msgid "Dutch, Netherlands" +msgstr "" + +#: ./locales.csv:102 +msgid "Nynorsk, Norway" +msgstr "" + +#: ./locales.csv:103 +msgid "Oriya, India" +msgstr "" + +#: ./locales.csv:104 +msgid "Punjabi, India" +msgstr "" + +#: ./locales.csv:105 +msgid "Polish, Poland" +msgstr "" + +#: ./locales.csv:106 +msgid "Portuguese, Brazil" +msgstr "" + +#: ./locales.csv:107 +msgid "Portuguese, Portugal" +msgstr "" + +#: ./locales.csv:108 +msgid "Romanian, Romania" +msgstr "" + +#: ./locales.csv:109 +msgid "Russian, Russia" +msgstr "" + +#: ./locales.csv:110 +msgid "Russian, Ukraine" +msgstr "" + +#: ./locales.csv:111 +msgid "Sanskrit, India" +msgstr "" + +#: ./locales.csv:112 +msgid "Slovak, Slovakia" +msgstr "" + +#: ./locales.csv:113 +msgid "Slovenian, Slovenia" +msgstr "" + +#: ./locales.csv:114 +msgid "Albanian, Albania" +msgstr "" + +#: ./locales.csv:115 +msgid "Serbian, Montenegro" +msgstr "" + +#: ./locales.csv:116 +msgid "Serbian, Montenegro (Latin)" +msgstr "" + +#: ./locales.csv:117 +msgid "Serbian, Serbia" +msgstr "" + +#: ./locales.csv:118 +msgid "Serbian, Serbia (Latin)" +msgstr "" + +#: ./locales.csv:119 +msgid "Swedish, Sweden" +msgstr "" + +#: ./locales.csv:120 +msgid "Tamil, India" +msgstr "" + +#: ./locales.csv:121 +msgid "Telugu, India" +msgstr "" + +#: ./locales.csv:122 +msgid "Thai, Thailand" +msgstr "" + +#: ./locales.csv:123 +msgid "Turkish, Turkey" +msgstr "" + +#: ./locales.csv:124 +msgid "Ukrainian, Ukraine" +msgstr "" + +#: ./locales.csv:125 +msgid "Vietnamese, Vietnam" +msgstr "" + +#: ./locales.csv:126 +msgid "Simplified Chinese, China" +msgstr "" + +#: ./locales.csv:127 +msgid "Traditional Chinese, Hong Kong SAR China" +msgstr "" + +#: ./locales.csv:128 +msgid "Chinese, Singapore" +msgstr "" + +#: ./locales.csv:129 +msgid "Traditional Chinese, Taiwan" +msgstr "" diff --git a/locale/ubl-locales_ru.po b/locale/ubl-locales_ru.po new file mode 100644 index 0000000..a3b28ac --- /dev/null +++ b/locale/ubl-locales_ru.po @@ -0,0 +1,1181 @@ +# Language translations for ubinstall package. +# Copyright (C) 2022, UBTech LLC +# This file is distributed under the same license as the ubinstal package. +# UBLinux Team , 2022 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: ubinstal 1.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-05-22 16:12+0600\n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ./locales.csv:1 +msgid "Afar, Djibiuti" +msgstr "Афар, Джибиути" + +#: ./locales.csv:1 +msgid "Afar, Eritrea" +msgstr "Афар, Эритрея" + +#: ./locales.csv:1 +msgid "Afar, Ethiopia" +msgstr "Афар, Эфиопия" + +#: ./locales.csv:1 +msgid "Abkhazian, Georgia" +msgstr "Абхазский, Грузия" + +#: ./locales.csv:1 +msgid "Aguaruna, Peru" +msgstr "Агуаруна, Перу" + +#: ./locales.csv:1 +msgid "Akan, Ghana" +msgstr "Акан, Гана" + +#: ./locales.csv:1 +msgid "Amharic, Ethiopia" +msgstr "Амхарский, Эфиопия" + +#: ./locales.csv:1 +msgid "Aragonese, Spain" +msgstr "Арагонский диалект, Испания" + +msgid "Angika, India" +msgstr "Ангика, Индия" + +msgid "Arabic, India" +msgstr "Арабский, Индия" + +msgid "Arabic, Lebanon" +msgstr "Арабский, Ливан" + +msgid "Arabic, Sudan" +msgstr "Арабский, Судан" + +msgid "Arabic, South Sudan" +msgstr "Арабский, Южный Судан" + +msgid "Arabic, Syria" +msgstr "Арабский, Сирия" + +msgid "Asturian, Spain" +msgstr "Астурия, Испания" + +msgid "Aymara, Peru" +msgstr "Аймара, Перу" + +msgid "South Azerbaijani, Iran" +msgstr "Южноазербайджансий, Иран" + +msgid "Bemba, Zambia" +msgstr "Бемба, Замбия" + +msgid "Berber, Algeria" +msgstr "Берберский, Алжир" + +msgid "Berber, Morocco" +msgstr "Берберский, Марокко" + +msgid "Bhili, India" +msgstr "Бхили, Индия" + +msgid "Bhojpuri, India" +msgstr "Бходжпури, Индия" + +msgid "Bhojpuri, Nepal" +msgstr "Бходжпури, Непал" + +msgid "Bislama, Vanuatu" +msgstr "Бислама, Вануату" + +msgid "Bangla, Bangladesh" +msgstr "Бангла, Бангладеш" + +msgid "Bangla, India" +msgstr "Бангла, Индия" + +msgid "Tibetan, China" +msgstr "Тибетский, Китай" + +msgid "Tibetan, India" +msgstr "Тибетский, Индия" + +msgid "Breton, France" +msgstr "Бретон, Франция" + +msgid "Bodo, India" +msgstr "Бодо, Индия" + +msgid "Bosnain, Bosnia & Herzegovina" +msgstr "Босней, Босния и Герцеговина" + +msgid "Blin, Eritrea" +msgstr "Блин, Эритрея" + +msgid "Catalan, Andorra" +msgstr "Каталонский, Андорра" + +msgid "Catalan, France" +msgstr "Каталонский, Франция" + +msgid "Catalan, Italy" +msgstr "Каталонский, Италия" + +msgid "Chechen, Russia" +msgstr "Чеченский, Россия" + +msgid "Cherokee, United States" +msgstr "Чероки, США" + +msgid "Central Kurdish, Iraq" +msgstr "Центральнокурдский, Ирак" + +msgid "Mandarin Chinese, Taiwan" +msgstr "Мадаринский китайский, Тайвань" + +msgid "Crimean Tatar, Russian Federation" +msgstr "Крымскотатарский, Российская Федерация" + +msgid "Crimean Tatar, Ukraine" +msgstr "Крымскотатарский, Украина" + +msgid "Kashubian, Poland" +msgstr "Кашубский, Польша" + +msgid "Chuvash, Russia" +msgstr "Чувашский, Россия" + +msgid "Welsh, United Kingdom" +msgstr "Валлийский, Великобритания" + +msgid "Austrian German, Austria" +msgstr "Австрийский немецкий, Австрия" + +msgid "Swiss High German, Switzerland" +msgstr "Швейцарский верхнелужицкий, Швейцария" + +msgid "German, Italy" +msgstr "Немецкий, Италия" + +msgid "Dogri, India" +msgstr "Догри, Индия" + +msgid "Lower Sorbian, Germany" +msgstr "Нижнелужицкий, Германия" + +msgid "Divehi, Maldives" +msgstr "Дивехи, Мальдивы" + +msgid "Dzongkha, Bhutan" +msgstr "Даонкха, Бутан" + +msgid "English, Antigua & Barbuda" +msgstr "Английский, Антигуа и Барбуда" + +msgid "Australian English, Australia" +msgstr "Австралийский английский, Австралия" + +msgid "Canadian English, Canada" +msgstr "Канадский английский, Канада" + +msgid "English, Denmark" +msgstr "Английский, Дания" + +msgid "British English, United Kingdom" +msgstr "Британский английский, Великобритания" + +msgid "English, Israel" +msgstr "Английский, Израиль" + +msgid "English, Nigeria" +msgstr "Английский, Нигерия" + +msgid "English, Seychelles" +msgstr "Английский, Сейшельские Острова" + +msgid "American English, United States" +msgstr "Американский английский, США" + +msgid "English, South Africa" +msgstr "Английский, Южная Африка" + +msgid "English, Zambia" +msgstr "Английский, Замбия" + +msgid "Spanish, Cuba" +msgstr "Испанский, Куба" + +msgid "European Spanish, Spain" +msgstr "Европейский испанский, Испания" + +msgid "Mexican Spanish, Mexico" +msgstr "Мексиканский испанский, Мексика" + +msgid "Spanish, United States" +msgstr "Испанский, США" + +msgid "Basque, Spain" +msgstr "Баскский, Испания" + +msgid "Persian, Iran" +msgstr "Персидский, Иран" + +msgid "Fulah, Senegal" +msgstr "Фулах, Сенегал" + +msgid "Filipino, Philippines" +msgstr "Филиппинский, Филиппины" + +msgid "Faroese, Faroe Islands" +msgstr "Фарерский, Фарерские острова Острова" + +msgid "Swiss French, Switzerland" +msgstr "Швейцарский французский, Швейцария" + +msgid "Canadian French, Canada" +msgstr "Канадский французский, Канада" + +msgid "Friulian, Italy" +msgstr "Фриульский, Италия" + +msgid "Western Frisian, Germany" +msgstr "Западнофризский, Германия" + +msgid "Western Frisian, Netherlands" +msgstr "Западнофризский, Нидерланды" + +msgid "Irish, Ireland" +msgstr "Ирландский, Ирландия" + +msgid "Garhwali, India" +msgstr "Гархвали, Индия" + +msgid "Scottish Gaelic, United Kingdom" +msgstr "Шотландский гэльский, Великобритания" + +msgid "Geez, Eritrea" +msgstr "Гиз, Эритрея" + +msgid "Geez, Ethiopia" +msgstr "Гиз, Эфиопия" + +msgid "Galician, Spain" +msgstr "Галисийский, Испания" + +msgid "Manx, United Kingdom" +msgstr "Мэнский, Великобритания" + +msgid "Hausa, Nigeria" +msgstr "Хауса, Нигерия" + +msgid "Hakka Chinese, Taiwan" +msgstr "Хакка, Тайвань" + +msgid "Fiji Hindi, Fiji" +msgstr "Фиджи Хинди, Фиджи" + +msgid "Chhattisgarhi, India" +msgstr "Чхаттисгархи, Индия" + +msgid "Upper Sorbian, Germany" +msgstr "Верхняя Сербия, Германия" + +msgid "Haitian Creole, Haiti" +msgstr "Гаитянский креольский, Гаити" + +msgid "Interlingua, France" +msgstr "Интерлингва, Франция" + +msgid "Igbo, Nigeria" +msgstr "Игбо, Нигерия" + +msgid "Inupiaq, Canada" +msgstr "Инупиак, Канада" + +msgid "Inalian, Switzerland" +msgstr "Инальян, Швейцария" + +msgid "Inuktitut, Canada" +msgstr "Инуктитут, Канада" + +msgid "Kabyle, Algeria" +msgstr "Кабил, Алжир" + +msgid "Kalaallisut, Greenland" +msgstr "Калааллисут, Гренландия" + +msgid "Khmer, Cambodia" +msgstr "Кхмерский, Камбоджа" + +msgid "Korean, South Korea" +msgstr "Корейский, Южная Корея" + +msgid "Konkani, India" +msgstr "Конкани, Индия" + +msgid "Kurdish, Turkiye" +msgstr "Курдский, Турция" + +msgid "Komi, Russia" +msgstr "Коми, Россия" + +msgid "Cornish, United Kingdom" +msgstr "Корнуолл, Великобритания" + +msgid "Kyrgyz, Kyrgyzstan" +msgstr "Киргизский, Киргизия" + +msgid "Luxembourgish, Luxembourg" +msgstr "Люксембургский, Люксембург" + +msgid "Ganda, Uganda" +msgstr "Ганда, Уганда" + +msgid "Limburgish, Belgium" +msgstr "Лимбургский, Бельгия" + +msgid "Limburgish, Netherlands" +msgstr "Лимбургский, Нидерланды" + +msgid "Ligurian, Italy" +msgstr "Лигурия, Италия" + +msgid "Lingala, Democratic Republic of the Congo" +msgstr "Лингала, Демократическая Республика Конго" + +msgid "Lao, Laos" +msgstr "Лао, Лаос" + +msgid "Literary Chinese, Taiwan" +msgstr "Китайская литература, Тайвань" + +msgid "Magahi, India" +msgstr "Магахи, Индия" + +msgid "Maithili, India" +msgstr "Маитхили, Индия" + +msgid "Maithili, Nepal" +msgstr "Маитхили, Непал" + +msgid "Morisyen, Mauritius" +msgstr "Морисьен, Маврикий" + +msgid "Malagasy, Madagascar" +msgstr "Малагасы, Мадагаскар" + +msgid "Meadow Mari, Russia" +msgstr "Луг Марийский, Россия" + +msgid "Maori, New Zealand" +msgstr "Маори, Новая Зеландия" + +msgid "Miskito, Nicaragua" +msgstr "Мискито, Никарагуа" + +msgid "Karbi, India" +msgstr "Карби, Индия" + +msgid "Mongolian, Mongolia" +msgstr "Монгольский, Монголия" + +msgid "Manipuri, India" +msgstr "Манипури, Индия" + +msgid "Mon, Myanmar" +msgstr "Монский, Мьянма" + +msgid "Maltese, malta" +msgstr "Мальтийский, Мальта" + +msgid "Burmese, Myanmar (Burma)" +msgstr "Бирманский, Мьянма (Бирма)" + +msgid "Min Nan Chinese, Taiwan" +msgstr "Мин Нан Китай, Тайвань" + +msgid "Norwegian Bokmål, Norway" +msgstr "Норвежский букмаль, Норвегия" + +msgid "Low German, Germany" +msgstr "Нижнегерманский, Германия" + +msgid "Low Saxon, Netherlands" +msgstr "Нижнесаксонский, Нидерланды" + +msgid "Nepali, Nepal" +msgstr "Непальский, Непал" + +msgid "Central Nahuatl, Mexico" +msgstr "Центральный науатль, Мексика" + +msgid "Niuean, Niue" +msgstr "Ниуэ, Ниуэ" + +msgid "Niuean, New Zealand" +msgstr "Ниуэ, Новая Зеландия" + +msgid "Dutch, Aruba" +msgstr "Голландский, Аруба" + +msgid "Flemish, Belgium" +msgstr "Фламандский, Бельгия" + +msgid "Norwegian Nynorsk, Norway" +msgstr "Норвежский нюнорск, Норвегия" + +msgid "South Ndebele, South Africa" +msgstr "Южный ндебеле, Южная Африка" + +msgid "Northern Sotho, South Africa" +msgstr "Северный сото, Южная Африка" + +msgid "Occitan, France" +msgstr "Окситанский, Франция" + +msgid "Oromo, Ethiopia" +msgstr "Оромо, Эфиопия" + +msgid "Oromo, Kenya" +msgstr "Оромо, Кения" + +msgid "Odia, India" +msgstr "Одия, Индия" + +msgid "Ossetic, Russia" +msgstr "Осетинский, Россия" + +msgid "Punjabi, Pakistan" +msgstr "Пенджаби, Пакистан" + +msgid "Papiamento, Aruba" +msgstr "Папиаменто, Аруба" + +msgid "Papiamento, Curacao" +msgstr "Папиаменто, Кюрасао" + +msgid "Pashto, Afghanistan" +msgstr "Пушту, Афганистан" + +msgid "Brazilian Portuguese, Brazil" +msgstr "Бразильский португальский, Бразилия" + +msgid "European Portuguese, Portugal" +msgstr "Европейский португальский, Португалия" + +msgid "Cusco Quechua, Peru" +msgstr "Куско Кечуа, Перу" + +msgid "Rajasthani, India" +msgstr "Раджастхани, Индия" + +msgid "Tarifit, Morocco" +msgstr "Тарифит, Марокко" + +msgid "Kinyarwanda, Rwanda" +msgstr "Киньяруанда, Руанда" + +msgid "Sakha, Russian Federation" +msgstr "Саха, Российская Федерация" + +msgid "Santali, India" +msgstr "Сантали, Индия" + +msgid "Sardinian, Italy" +msgstr "Сардиния, Италия" + +msgid "Sindhi, India" +msgstr "Синдхи, Индия" + +msgid "Northern Sami, Norway" +msgstr "Северные саамы, Норвегия" + +msgid "Samogitian, Lithuania" +msgstr "Жемайтийский, Литва" + +msgid "Shan, Myanmar" +msgstr "Шан, Мьянма" + +msgid "Shuswap, Canada" +msgstr "Шусвап, Канада" + +msgid "Sinhala, Sri Lanka" +msgstr "Шинхала, Шри-Ланка" + +msgid "Sidamo, Ethiopia" +msgstr "Сидамо, Эфиопия" + +msgid "Samoan, Samoa" +msgstr "Самоа, Самоа" + +msgid "Somali, Djibouti" +msgstr "Сомали, Джибути" + +msgid "Somali, Ethiopia" +msgstr "Сомали, Эфиопия" + +msgid "Somali, Kenya" +msgstr "Сомали, Кения" + +msgid "Somali, Somalia" +msgstr "Сомали, Сомали" + +msgid "Albanian, Macedonia" +msgstr "Албанский, Македония" + +msgid "Swati, South Africa" +msgstr "Свати, Южная Африка" + +msgid "Saho, Eritrea" +msgstr "Сахо, Эритрея" + +msgid "Southern Sotho, South Africa" +msgstr "Южный Сото, Южная Африка" + +msgid "Sundanese, Indonesia" +msgstr "Сунданский, Индонезия" + +msgid "Swedish, Finland" +msgstr "Шведский, Финляндия" + +msgid "Swahili, Kenya" +msgstr "Суахили, Кения" + +msgid "Swahili, Tanzania" +msgstr "Суахили, Танзания" + +msgid "Silesian, Poland" +msgstr "Силезский, Польша" + +msgid "Tamil, Sri Lanka" +msgstr "Тамильский, Шри-Ланка" + +msgid "Tulu, India" +msgstr "Тулу, Индия" + +msgid "Tajik, Tajikistan" +msgstr "Таджикский, Таджикистан" + +msgid "Chitwania Tharu, Nepal" +msgstr "Читвания Тару, Непал" + +msgid "Tigrinya, Eritrea" +msgstr "Тигринья, Эритрея" + +msgid "Tigrinya, Ethiopia" +msgstr "Тигринья, Эфиопия" + +msgid "Tigre, Eritrea" +msgstr "Тигре, Эритрея" + +msgid "Turkmen, Turkmenistan" +msgstr "Туркмен, Туркменистан" + +msgid "Tagalog, Philippines" +msgstr "Тагальский, Филиппины" + +msgid "Tswana, South Africa" +msgstr "Тсвана, Южная Африка" + +msgid "Tongan, Tonga" +msgstr "Тонганский, Тонга" + +msgid "Tok Pisin, Papua New Guinea" +msgstr "Ток-писин, Папуа — Новая Гвинея" + +msgid "Turkish, Cyprus" +msgstr "Турецкий, Кипр" + +msgid "Turkish, Turkiye" +msgstr "Турецкий, Турция" + +msgid "Tsonga, South Africa" +msgstr "Тсонга, Южная Африка" + +msgid "Tatar, Russia" +msgstr "Татарский, Россия" + +msgid "Uyghur, China" +msgstr "Уйгурский, Китай" + +msgid "Unami Delaware, United States" +msgstr "Унами, Делавэр, США" + +msgid "Urdu, India" +msgstr "Урду, Индия" + +msgid "Urdu, Pakistan" +msgstr "Урду, Пакистан" + +msgid "Uzbek, Uzbekistan" +msgstr "Узбекский, Узбекистан" + +msgid "Venda, South Africa" +msgstr "Венда, Южная Африка" + +msgid "Walloon, Belgium" +msgstr "Валлонский, Бельгия" + +msgid "Walser, Switzerland" +msgstr "Вальзер, Швейцария" + +msgid "Wolaytta, Ethiopia" +msgstr "Волайтта, Эфиопия" + +msgid "Wolof, Senegal" +msgstr "Волоф, Сенегал" + +msgid "Xhosa, South Africa" +msgstr "Коса, Южная Африка" + +msgid "Yiddish, United States" +msgstr "Идиш, США" + +msgid "Yoruba, Nigeria" +msgstr "Йоруба, Нигерия" + +msgid "Cantonese, Hong Kong SAR China" +msgstr "Кантонский, Гонконг (САР Китая)" + +msgid "Yau, Papua New Guinea" +msgstr "Яу, Папуа-Новая Гвинея" + +msgid "Moroccan Tamazight, Morocco" +msgstr "Марокканский тамазигхт, Марокко" + +msgid "Chinese, China" +msgstr "Китайский, Китай" + +msgid "Chinese, Hong Kong SAR China" +msgstr "Китайский, Гонконг (САР Китая)" + +msgid "Chinese, Taiwan" +msgstr "Китайский, Тайвань" + +msgid "Zulu, South Africa" +msgstr "Зулу, Южная Африка" + +#: ./locales.csv:1 +msgid "Afrikaans, South Africa" +msgstr "Африкаанс, Южная Африка" + +#: ./locales.csv:2 +msgid "Arabic, United Arab Emirates" +msgstr "Арабский, Объединенные Арабские Эмираты" + +#: ./locales.csv:3 +msgid "Arabic, Bahrain" +msgstr "Арабский, Бахрейн" + +#: ./locales.csv:4 +msgid "Arabic, Algeria" +msgstr "Арабский, Алжир" + +#: ./locales.csv:5 +msgid "Arabic, Egypt" +msgstr "Арабский, Египет" + +#: ./locales.csv:6 +msgid "Arabic, Iraq" +msgstr "Арабский, Ирак" + +#: ./locales.csv:7 +msgid "Arabic, Jordan" +msgstr "Арабский, Иордания" + +#: ./locales.csv:8 +msgid "Arabic, Kuwait" +msgstr "Арабский, Кувейт" + +#: ./locales.csv:9 +msgid "Arabic, Libya" +msgstr "Арабский, Ливия" + +#: ./locales.csv:10 +msgid "Arabic, Morocco" +msgstr "Арабский, Марокко" + +#: ./locales.csv:11 +msgid "Arabic, Oman" +msgstr "Арабский, Оман" + +#: ./locales.csv:12 +msgid "Arabic, Qatar" +msgstr "Арабский, Катар" + +#: ./locales.csv:13 +msgid "Arabic, Saudi Arabia" +msgstr "Арабский, Саудовская Аравия" + +#: ./locales.csv:14 +msgid "Arabic, Tunisia" +msgstr "Арабский, Тунис" + +#: ./locales.csv:15 +msgid "Arabic, Yemen" +msgstr "Арабский, Йемен" + +#: ./locales.csv:16 +msgid "Assamese, India" +msgstr "Ассамский, Индия" + +#: ./locales.csv:17 +msgid "Azerbaijani, Azerbaijan" +msgstr "Азербайджанский, Азербайджан" + +#: ./locales.csv:18 +msgid "Belarusian, Belarus" +msgstr "Белорусский, Беларусь" + +#: ./locales.csv:19 +msgid "Bulgarian, Bulgaria" +msgstr "Болгарский, Болгария" + +#: ./locales.csv:20 +msgid "Bengali, India" +msgstr "Бенгальский, Индия" + +#: ./locales.csv:21 +msgid "Bosnian, Bosnia and Herzegovina" +msgstr "Боснийский, Босния и Герцеговина" + +#: ./locales.csv:22 +msgid "Catalan, Spain" +msgstr "Каталанский, Испания" + +#: ./locales.csv:23 +msgid "Czech, Czech Republic" +msgstr "Чешский, Чехия" + +#: ./locales.csv:24 +msgid "Danish, Denmark" +msgstr "Датский, Дания" + +#: ./locales.csv:25 +msgid "German, Austria" +msgstr "Немецкий, Австрия" + +#: ./locales.csv:26 +msgid "German, Belgium" +msgstr "Немецкий, Бельгия" + +#: ./locales.csv:27 +msgid "German, Switzerland" +msgstr "Немецкий, Швейцария" + +#: ./locales.csv:28 +msgid "German, Germany" +msgstr "Немецкий, Германия" + +#: ./locales.csv:29 +msgid "German, Liechtenstein" +msgstr "Немецкий, Лихтенштейн" + +#: ./locales.csv:30 +msgid "German, Luxembourg" +msgstr "Немецкий, Люксембург" + +#: ./locales.csv:31 +msgid "Greek, Cyprus" +msgstr "Греческий, Кипр" + +#: ./locales.csv:32 +msgid "Greek, Greece" +msgstr "Греческий, Греция" + +#: ./locales.csv:33 +msgid "English, Australia" +msgstr "Английский, Австралия" + +#: ./locales.csv:34 +msgid "English, Botswana" +msgstr "Английский, Ботсвана" + +#: ./locales.csv:35 +msgid "English, Canada" +msgstr "Английский, Канада" + +#: ./locales.csv:36 +msgid "English, United Kingdom" +msgstr "Английский, Великобритания" + +#: ./locales.csv:37 +msgid "English, Hong Kong SAR China" +msgstr "Английский, Гонконг (САР Китай)" + +#: ./locales.csv:38 +msgid "English, Ireland" +msgstr "Английский, Ирландия" + +#: ./locales.csv:39 +msgid "English, India" +msgstr "Английский, Индия" + +#: ./locales.csv:40 +msgid "English, Malta" +msgstr "Английский, Мальта" + +#: ./locales.csv:41 +msgid "English, New Zealand" +msgstr "Английский, Новая Зеландия" + +#: ./locales.csv:42 +msgid "English, Philippines" +msgstr "Английский, Филиппины" + +#: ./locales.csv:43 +msgid "English, Singapore" +msgstr "Английский, Сингапур" + +#: ./locales.csv:44 +msgid "English, U.S.A." +msgstr "Английский, США" + +#: ./locales.csv:45 +msgid "English, Zimbabwe" +msgstr "Английский, Зимбабве" + +#: ./locales.csv:46 +msgid "Spanish, Argentina" +msgstr "Испанский, Аргентина" + +#: ./locales.csv:47 +msgid "Spanish, Bolivia" +msgstr "Испанский, Боливия" + +#: ./locales.csv:48 +msgid "Spanish, Chile" +msgstr "Испанский, Чили" + +#: ./locales.csv:49 +msgid "Spanish, Colombia" +msgstr "Испанский, Колумбия" + +#: ./locales.csv:50 +msgid "Spanish, Costa Rica" +msgstr "Испанский, Коста-Рика" + +#: ./locales.csv:51 +msgid "Spanish, Dominican Republic" +msgstr "Испанский, Доминиканская Республика" + +#: ./locales.csv:52 +msgid "Spanish, Ecuador" +msgstr "Испанский, Эквадор" + +#: ./locales.csv:53 +msgid "Spanish, Spain" +msgstr "Испанский, Испания" + +#: ./locales.csv:54 +msgid "Spanish, Guatemala" +msgstr "Испанский, Гватемала" + +#: ./locales.csv:55 +msgid "Spanish, Honduras" +msgstr "Испанский, Гондурас" + +#: ./locales.csv:56 +msgid "Spanish, Mexico" +msgstr "Испанский, Мексика" + +#: ./locales.csv:57 +msgid "Spanish, Nicaragua" +msgstr "Испанский, Никарагуа" + +#: ./locales.csv:58 +msgid "Spanish, Panama" +msgstr "Испанский, Панама" + +#: ./locales.csv:59 +msgid "Spanish, Peru" +msgstr "Испанский, Перу" + +#: ./locales.csv:60 +msgid "Spanish, Puerto Rico" +msgstr "Испанский, Пуэрто-Рико" + +#: ./locales.csv:61 +msgid "Spanish, Paraguay" +msgstr "Испанский, Парагвай" + +#: ./locales.csv:62 +msgid "Spanish, El Salvador" +msgstr "Испанский, Сальвадор" + +#: ./locales.csv:63 +msgid "Spanish, U.S.A." +msgstr "Испанский, США" + +#: ./locales.csv:64 +msgid "Spanish, Uruguay" +msgstr "Испанский, Уругвай" + +#: ./locales.csv:65 +msgid "Spanish, Venezuela" +msgstr "Испанский, Венесуэла" + +#: ./locales.csv:66 +msgid "Estonian, Estonia" +msgstr "Эстонский, Эстония" + +#: ./locales.csv:67 +msgid "Finnish, Finland" +msgstr "Финский, Финляндия" + +#: ./locales.csv:68 +msgid "French, Belgium" +msgstr "Французский, Бельгия" + +#: ./locales.csv:69 +msgid "French, Canada" +msgstr "Французский, Канада" + +#: ./locales.csv:70 +msgid "French, Switzerland" +msgstr "Французский, Швейцария" + +#: ./locales.csv:71 +msgid "French, France" +msgstr "Французский, Франция" + +#: ./locales.csv:72 +msgid "French, Luxembourg" +msgstr "Французский, Люксембург" + +#: ./locales.csv:73 +msgid "Gujarati, India" +msgstr "Гуджарати, Индия" + +#: ./locales.csv:74 +msgid "Hebrew, Israel" +msgstr "Иврит, Израиль" + +#: ./locales.csv:75 +msgid "Hindi, India" +msgstr "Хинди, Индия" + +#: ./locales.csv:76 +msgid "Croatian, Croatia" +msgstr "Хорватский, Хорватия" + +#: ./locales.csv:77 +msgid "Hungarian, Hungary" +msgstr "Венгерский, Венгрия" + +#: ./locales.csv:78 +msgid "Armenian, Armenia" +msgstr "Армянский, Армения" + +#: ./locales.csv:79 +msgid "Indonesian, Indonesia" +msgstr "Индонезийский, Индонезия" + +#: ./locales.csv:80 +msgid "Icelandic, Iceland" +msgstr "Исландский, Исландия" + +#: ./locales.csv:81 +msgid "Italian, Switzerland" +msgstr "Итальянский, Швейцария" + +#: ./locales.csv:82 +msgid "Italian, Italy" +msgstr "Итальянский, Италия" + +#: ./locales.csv:83 +msgid "Japanese, Japan" +msgstr "Японский, Япония" + +#: ./locales.csv:84 +msgid "Georgian, Georgia" +msgstr "Грузинский, Грузия" + +#: ./locales.csv:85 +msgid "Kazakh, Kazakhstan" +msgstr "Казахский, Казахстан" + +#: ./locales.csv:86 +msgid "Kannada, India" +msgstr "Каннада, Индия" + +#: ./locales.csv:87 +msgid "Korean, Korea" +msgstr "Корейский, Корея" + +#: ./locales.csv:88 +msgid "Kashmiri, India" +msgstr "Кашмири, Индия" + +#: ./locales.csv:89 +msgid "Kurdish, Turkey" +msgstr "Курдский, Турция" + +#: ./locales.csv:90 +msgid "Kurdish (Sorani), Turkey" +msgstr "Курдский (Сорани), Турция" + +#: ./locales.csv:91 +msgid "Kirghiz, Kyrgyzstan" +msgstr "Киргизский, Киргизия" + +#: ./locales.csv:92 +msgid "Lithuanian, Lithuania" +msgstr "Литовский, Литва" + +#: ./locales.csv:93 +msgid "Latvian, Latvia" +msgstr "Латышский, Латвия" + +#: ./locales.csv:94 +msgid "Macedonian, Macedonia" +msgstr "Македонский, Македония" + +#: ./locales.csv:95 +msgid "Malayalam, India" +msgstr "Малаялам, Индия" + +#: ./locales.csv:96 +msgid "Marathi, India" +msgstr "Маратхи, Индия" + +#: ./locales.csv:97 +msgid "Malay, Malaysia" +msgstr "Малайский, Малайзия" + +#: ./locales.csv:98 +msgid "Maltese, Malta" +msgstr "Мальтийский, Мальта" + +#: ./locales.csv:99 +msgid "Bokmål, Norway" +msgstr "Букмол, Норвегия" + +#: ./locales.csv:100 +msgid "Dutch, Belgium" +msgstr "Нидерландский, Бельгия" + +#: ./locales.csv:101 +msgid "Dutch, Netherlands" +msgstr "Нидерландский, Нидерланды" + +#: ./locales.csv:102 +msgid "Nynorsk, Norway" +msgstr "Нюнорск, Норвегия" + +#: ./locales.csv:103 +msgid "Oriya, India" +msgstr "Ория, Индия" + +#: ./locales.csv:104 +msgid "Punjabi, India" +msgstr "Пенджаби, Индия" + +#: ./locales.csv:105 +msgid "Polish, Poland" +msgstr "Польский, Польша" + +#: ./locales.csv:106 +msgid "Portuguese, Brazil" +msgstr "Португальский, Бразилия" + +#: ./locales.csv:107 +msgid "Portuguese, Portugal" +msgstr "Португальский, Португалия" + +#: ./locales.csv:108 +msgid "Romanian, Romania" +msgstr "Румынский, Румыния" + +#: ./locales.csv:109 +msgid "Russian, Russia" +msgstr "Русский, Россия" + +#: ./locales.csv:110 +msgid "Russian, Ukraine" +msgstr "Русский, Украина" + +#: ./locales.csv:111 +msgid "Sanskrit, India" +msgstr "Санскрит, Индия" + +#: ./locales.csv:112 +msgid "Slovak, Slovakia" +msgstr "Словацкий, Словакия" + +#: ./locales.csv:113 +msgid "Slovenian, Slovenia" +msgstr "Словенский, Словения" + +#: ./locales.csv:114 +msgid "Albanian, Albania" +msgstr "Албанский, Албания" + +#: ./locales.csv:115 +msgid "Serbian, Montenegro" +msgstr "Сербский, Черногория" + +#: ./locales.csv:116 +msgid "Serbian, Montenegro (Latin)" +msgstr "Сербский, Черногория (Латиница)" + +#: ./locales.csv:117 +msgid "Serbian, Serbia" +msgstr "Сербский, Сербия" + +#: ./locales.csv:118 +msgid "Serbian, Serbia (Latin)" +msgstr "Сербский, Сербия (Латиница)" + +#: ./locales.csv:119 +msgid "Swedish, Sweden" +msgstr "Шведский, Швеция" + +#: ./locales.csv:120 +msgid "Tamil, India" +msgstr "Тамильский, Индия" + +#: ./locales.csv:121 +msgid "Telugu, India" +msgstr "Телугу, Индия" + +#: ./locales.csv:122 +msgid "Thai, Thailand" +msgstr "Тайский, Таиланд" + +#: ./locales.csv:123 +msgid "Turkish, Turkey" +msgstr "Турецкий, Турция" + +#: ./locales.csv:124 +msgid "Ukrainian, Ukraine" +msgstr "Украинский, Украина" + +#: ./locales.csv:125 +msgid "Vietnamese, Vietnam" +msgstr "Вьетнамский, Вьетнам" + +#: ./locales.csv:126 +msgid "Simplified Chinese, China" +msgstr "Упрощенный китайский, Китай" + +#: ./locales.csv:127 +msgid "Traditional Chinese, Hong Kong SAR China" +msgstr "Традиционный китайский, Гонконг (САР Китай)" + +#: ./locales.csv:128 +msgid "Chinese, Singapore" +msgstr "Китайский, Сингапур" + +#: ./locales.csv:129 +msgid "Traditional Chinese, Taiwan" +msgstr "Традиционный китайский, Тайвань" diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 4ac2dae..48757df 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -17,6 +17,8 @@ add_library(${PROJECT_NAME} SHARED libublsettings-dictionary.c libublsettings-char.c libublsettings-file.c + libublsettings-hash.c + libublsettings-locale.c libublsettings.h) diff --git a/source/libublsettings-char.c b/source/libublsettings-char.c index ffabdb3..3e81c68 100644 --- a/source/libublsettings-char.c +++ b/source/libublsettings-char.c @@ -300,6 +300,7 @@ char *yon_char_replace_single(char *source, char *find, char *replace){ char **yon_char_parse(const char * parameters, int *size, char * divider){ *size=0; if (parameters&&!yon_char_is_empty(divider)){ + if (!strstr(parameters,divider)) return yon_char_parsed_new(size,parameters,NULL); char **string=NULL; char *paramline=yon_char_new(parameters); char *param = strstr(paramline,divider); @@ -309,7 +310,7 @@ char **yon_char_parse(const char * parameters, int *size, char * divider){ string[(*size)] = malloc(cur_size+1); memset(string[(*size)],0,cur_size+1); memcpy(string[(*size)],paramline,cur_size); - memcpy(paramline,paramline+strlen(string[(*size)])+strlen(divider),strlen(param)); + memmove(paramline,paramline+strlen(string[(*size)])+strlen(divider),strlen(param) - strlen(divider) + 1); // string[(*size)]=yon_char_divide(paramline,strlen(paramline)-strlen(param)); *size=(*size)+1; } @@ -682,6 +683,20 @@ config_str yon_char_wrap_to_length(char *target, unsigned int length, int *size) return ret_target; } +char *yon_char_get_element(char *target, unsigned int position, char *divider){ + if (!yon_char_is_empty(target)&&strstr(target,divider)){ + int size; + char *final = NULL; + config_str parsed = yon_char_parse(target,&size,divider); + if (size>=position){ + final = yon_char_new(parsed[position]); + } + yon_char_parsed_free(parsed,size); + return final; + } + return NULL; +} + char *yon_char_wrap_to_length_str(char *target, unsigned int length){ int size=0; if (!yon_char_is_empty(target)&&strlen(target)>length&&strstr(target," ")){ diff --git a/source/libublsettings-config.c b/source/libublsettings-config.c index 20e4929..631d4a6 100644 --- a/source/libublsettings-config.c +++ b/source/libublsettings-config.c @@ -1122,7 +1122,7 @@ config_str yon_config_get_save_parameters_by_list(int *size, config_str paramete } } if (!found){ - if(removed){ + if(removed&&temp){ int position = yon_char_parsed_find_element(removed,removed_size,((yon_config_parameter*)temp)->section); if (position>=0){ char *string = yon_char_unite((removed)[position]," ",yon_config_parameter_to_string((yon_config_parameter*)temp,0),NULL); @@ -1148,10 +1148,11 @@ config_str yon_config_get_save_parameters_by_list(int *size, config_str paramete return final; } -config_str yon_config_get_save_parameters_by_key(int *size, char *parameter,...){ - va_list list; +config_str yon_config_get_save_parameters_by_key(int *size,...){ (*size)=0; - va_start(list,parameter); + check_config{ + va_list list; + va_start(list,size); int removed_size; config_str removed = NULL; int updated_size; @@ -1172,12 +1173,14 @@ config_str yon_config_get_save_parameters_by_key(int *size, char *parameter,...) current = &removed; current_size = &removed_size; break; + case 0: case 1: action = "set"; current = &updated; current_size = &updated_size; break; } + if (!current) continue; int position = yon_char_parsed_find_element(*current,*current_size,((yon_config_parameter*)temp)->section); if (position>=0){ char *string = yon_char_unite((*current)[position]," ",yon_config_parameter_to_string((yon_config_parameter*)temp,0),NULL); @@ -1194,6 +1197,23 @@ config_str yon_config_get_save_parameters_by_key(int *size, char *parameter,...) } final = yon_char_parsed_merge(updated,updated_size,removed,removed_size,size); return final; + } + return NULL; +} + +config_str yon_config_find_keys(char *target, int *size){ + (*size)=0; + check_config{ + config_str final = NULL; + yon_config_parameter *cur = NULL; + for_dictionaries(cur,__yon__config__strings){ + if (strstr(cur->key,target)){ + yon_char_parsed_add_or_create_if_exists(final,size,cur->key); + } + } + return final; + } + return NULL; } config_str yon_config_get_save_parameters(int *size){ @@ -1243,7 +1263,6 @@ char *yon_config_save_simple(YON_CONFIG_TYPE target, char *path){ if (parameters){ yon_char_parsed_prepend_strings(parameters,parameters_size,ubconfig_set_command(path)); char *final_command = yon_char_parsed_to_string(parameters,parameters_size,";"); - printf("%s\n",final_command); FILE *file = popen(final_command,"r"); if (file){ int file_size=0; @@ -1333,14 +1352,12 @@ int yon_config_save_registered(char *path){ for_dictionaries(dct,sections_add){ char *command = yon_dictionary_get_data(dct,char*); yon_launch(command); - printf("%s\n",command); } yon_dictionary_free_all(sections_add,free); if (sections_remove) for_dictionaries(dct,sections_remove){ char *command = yon_dictionary_get_data(dct,char*); yon_launch(command); - printf("%s\n",command); } yon_dictionary_free_all(sections_remove,free); if (sections_add||sections_remove) diff --git a/source/libublsettings-hash.c b/source/libublsettings-hash.c new file mode 100644 index 0000000..5c60980 --- /dev/null +++ b/source/libublsettings-hash.c @@ -0,0 +1,101 @@ +#include "libublsettings.h" + +unsigned int yon_str_hash(const char *str) { + unsigned int hash = 5381; + for (; *str != '\0'; str++) { + hash = (hash << 5) + hash + (unsigned char)(*str); + } + return hash; +} + +//\ +===================================================================== + +yon_hash *yon_hash_new(int size, unsigned int(*hash_func)(const char *)){ + yon_hash *hash = malloc(sizeof(yon_hash)); + memset(hash,0,sizeof(yon_hash)); + hash->data = malloc(sizeof(yon_hash_element)*size); + memset(hash->data,0,sizeof(yon_hash_element)*size); + hash->size = size; + hash->hash_func = hash_func; + return hash; +} + +yon_hash_element *yon_hash_element_new(const char *key, void *data){ + yon_hash_element *element = malloc(sizeof(yon_hash_element)); + memset(element,0,sizeof(yon_hash_element)); + element->key = yon_char_new(key); + element->data = data; + element->first = (struct yon_hash_element*)element; + return element; +} + +int yon_hash_insert(yon_hash *target, const char *key, void *data){ + if (target&&target->hash_func&&!yon_char_is_empty(key)&&data){ + unsigned int hash = target->hash_func(key)%target->size; + if (target->data&&target->data[hash]){ + yon_hash_element *element = yon_hash_element_new(key,data); + yon_hash_element *last = (yon_hash_element *)yon_dictionary_get_last((dictionary*)target->data[hash]); + last->next=(struct yon_hash_element*)element; + element->prev=(struct yon_hash_element*)last; + element->first=(struct yon_hash_element*)last->first; + return 1; + } else { + // target->data[hash] = malloc(sizeof(yon_hash_element*)); + target->data[hash] = yon_hash_element_new(key,data); + return 1; + } + } + return 0; +} + +int yon_hash_remove(yon_hash *target, const char *key){ + if (target&&target->hash_func&&!yon_char_is_empty(key)){ + unsigned int hash = target->hash_func(key)%target->size; + if (target->data[hash]){ + dictionary *dict = yon_dictionary_get((dictionary**)&target->data[hash],(char*)key); + target->data[hash]=(yon_hash_element*)yon_dictionary_rip(dict); + } + } + return 0; +} + +void *yon_hash_lookup(yon_hash *target, const char *key){ + if (target&&target->size>0&&!yon_char_is_empty(key)){ + unsigned int hash = target->hash_func(key)%target->size; + if (target->data[hash]){ + dictionary *dict = yon_dictionary_get((dictionary**)&target->data[hash],(char*)key); + return yon_dictionary_get_data(dict,void*); + } + } + return NULL; +} + +int yon_hash_contains(yon_hash *target, const char *key){ + if (target&&!yon_char_is_empty(key)){ + unsigned int hash = target->hash_func(key)%target->size; + if (target->data[hash]){ + if (yon_dictionary_get((dictionary**)&target->data[hash],(char*)key)) return 1; + } + } + return 0; +} + +int yon_hash_add(yon_hash *target,const char *key){ + if (target&&target->size>0&&!yon_char_is_empty(key)){ + unsigned int hash = target->hash_func(key)%target->size; + + if (target->data[hash]){ + yon_hash_element *element = yon_hash_element_new(key,NULL); + yon_hash_element *last = (yon_hash_element *)yon_dictionary_get_last((dictionary*)target->data[hash]); + last->next=(struct yon_hash_element*)element; + element->prev=(struct yon_hash_element*)last; + element->first=(struct yon_hash_element*)last->first; + return 1; + } else { + target->data = malloc(sizeof(yon_hash_element*)); + target->data[0] = yon_hash_element_new(key,NULL); + return 1; + } + } +} \ No newline at end of file diff --git a/source/libublsettings-locale.c b/source/libublsettings-locale.c new file mode 100644 index 0000000..70e91bc --- /dev/null +++ b/source/libublsettings-locale.c @@ -0,0 +1,118 @@ +#include "libublsettings.h" + +#define locales_path "/usr/share/i18n/locales/" + +yon_hash *locales_hash_table = NULL; + +struct yon_locale { + char *code; + char *lang_ab; + char *territory; + char *language; + char *lang_name; + char *title; +}; + +struct yon_locale *yon_lang_new(){ + struct yon_locale *cur_locale = malloc(sizeof(struct yon_locale)); + memset(cur_locale,0,sizeof(struct yon_locale)); + return cur_locale; +} + +char *yon_locale_unwrap(char *parameter){ + char *final = yon_char_new(parameter); + free(yon_char_divide_search(final,"\"",-1)); + char *temp = yon_char_divide_search(final,"\"",-1); + free(final); + final = yon_char_return_if_exist(temp,NULL); + return final; +} + +void yon_locale_set(struct yon_locale *target,char *locale_name){ + int size; + char *path = yon_char_unite(locales_path,locale_name,NULL); + config_str locale_string = yon_file_open(path,&size); + target->code = yon_char_new(locale_name); + target->lang_ab = yon_char_new(locale_name); + target->territory = yon_char_parsed_check_exist_begins_with(locale_string,size,"territory"); + target->language = yon_char_parsed_check_exist_begins_with(locale_string,size,"language"); + target->lang_name = yon_char_parsed_check_exist_begins_with(locale_string,size,"lang_name"); + target->title = yon_char_parsed_check_exist_begins_with(locale_string,size,"title"); + if (!yon_char_is_empty(target->lang_ab)){ + char *temp = strstr(target->lang_ab,"_"); + if (!yon_char_is_empty(temp)) temp[0]='\0'; + } + if (!yon_char_is_empty(target->territory)){ + char *temp = yon_locale_unwrap(target->territory); + free(target->territory); + target->territory = yon_char_new(temp); + } + if (!yon_char_is_empty(target->language)){ + char *temp = yon_locale_unwrap(target->language); + free(target->language); + target->language = yon_char_new(temp); + } + if (!yon_char_is_empty(target->lang_name)){ + char *temp = yon_locale_unwrap(target->lang_name); + free(target->lang_name); + target->lang_name = yon_char_new(temp); + } + if (!yon_char_is_empty(target->title)){ + char *temp = yon_locale_unwrap(target->title); + free(target->title); + target->title = yon_char_new(temp); + } + // yon_char_parsed_free(locale_string,size); + free(path); +} + +void yon_locale_init(){ + int size; + config_str locales_list = yon_dir_get_contents(locales_path,&size); + locales_hash_table = yon_hash_new(size*2,yon_str_hash); + for (int i=0;isize;i++){ + if (locales_hash_table->data[i]){ + yon_hash_element *dict = NULL; + for_dictionaries(dict,locales_hash_table->data[i]){ + yon_char_parsed_add_or_create_if_exists(final,size,dict->key); + } + } + } + return final; +} + +char *yon_locale_get_parameter(char *code,enum YON_LOCALE_PARAMETER type){ + unsigned int hash = locales_hash_table->hash_func(code)%locales_hash_table->size; + yon_hash_element *data = (yon_hash_element*)yon_dictionary_get((dictionary**)&locales_hash_table->data[hash],code); + struct yon_locale *cur_locale = yon_dictionary_get_data(data,struct yon_locale*); + switch(type){ + case YON_LOCALE_LANGUAGE:{ + return cur_locale->language; + }break; + case YON_LOCALE_LANG_NAME:{ + return cur_locale->lang_name; + }break; + case YON_LOCALE_TERRITORY:{ + return cur_locale->territory; + }break; + case YON_LOCALE_LANG_AB:{ + return cur_locale->lang_ab; + }break; + case YON_LOCALE_TITLE:{ + return cur_locale->title; + }break; + + } +} \ No newline at end of file diff --git a/source/libublsettings.h b/source/libublsettings.h index dcd16d9..1fc96a4 100644 --- a/source/libublsettings.h +++ b/source/libublsettings.h @@ -815,7 +815,7 @@ config_str yon_config_get_load_parameters_by_list(int *size, config_str paramete config_str yon_config_get_save_parameters_by_list(int *size, config_str parameters, int params_size); -config_str yon_config_get_save_parameters_by_key(int *size, char *parameter,...); +config_str yon_config_get_save_parameters_by_key(int *size, ...); config_str yon_config_get_save_parameters(int *size); @@ -863,6 +863,8 @@ int yon_config_parse_parameter(char *parameter,char **key, char **value); int yon_char_remove_brackets(char *string); +char *yon_char_get_element(char *target, unsigned int position, char *divider); + int yon_config_command_get_section_pos(const char *); char *yon_config_command_get_section(const char *command); @@ -1053,6 +1055,8 @@ char *yon_config_save_simple(YON_CONFIG_TYPE target, char *path); [[ deprecated ( "Will be removed soon" ) ]] int yon_config_force_save_registered(char *path); +config_str yon_config_find_keys(char *target, int *size); + /**yon_config_get_all(int *size) * [EN] * @@ -1094,4 +1098,36 @@ void yon_launch(char *command); // void *yon_malloc(int size, char *group_key); +#define LOCALES_DOMAIN_NAME "libublsettings" + +enum YON_LOCALE_PARAMETER{ + YON_LOCALE_LANGUAGE, + YON_LOCALE_LANG_NAME, + YON_LOCALE_TERRITORY, + YON_LOCALE_LANG_AB, + YON_LOCALE_TITLE +}; + +typedef struct yon_hash_element{ + dictionary_fields(yon_hash_element); +} yon_hash_element; + +typedef struct { + yon_hash_element **data; + unsigned int size; + unsigned int(*hash_func)(const char *); +} yon_hash; + +unsigned int yon_str_hash(const char *str); + +yon_hash *yon_hash_new(int size, unsigned int(*hash_func)(const char *)); +int yon_hash_insert(yon_hash *target, const char *key, void *data); +int yon_hash_remove(yon_hash *target, const char *key); +void *yon_hash_lookup(yon_hash *target, const char *key); +int yon_hash_add(yon_hash *target,const char *key); +int yon_hash_contains(yon_hash *target, const char *key); +void yon_locale_init(); +config_str yon_locale_get_all_codes(int *size); +char *yon_locale_get_parameter(char *code,enum YON_LOCALE_PARAMETER type); + #endif \ No newline at end of file