/* * Copyright (c) 2021-2023, The PurpleI2P Project * * This file is part of Purple i2pd project and licensed under BSD3 * * See full license text in LICENSE file at top of project tree */ #include <map> #include <vector> #include <string> #include <memory> #include "I18N.h" // Ukrainian localization file namespace i2p { namespace i18n { namespace uzbek // language namespace { // language name in lowercase static std::string language = "uzbek"; // See for language plural forms here: // https://localization-guide.readthedocs.io/en/latest/l10n/pluralforms.html static int plural (int n) { return n > 1 ? 1 : 0; } static std::map<std::string, std::string> strings { {"%.2f KiB", "%.2f KiB"}, {"%.2f MiB", "%.2f MiB"}, {"%.2f GiB", "%.2f GiB"}, {"building", "yaratilmoqda"}, {"failed", "muvaffaqiyatsiz"}, {"expiring", "muddati tugaydi"}, {"established", "aloqa o'rnatildi"}, {"unknown", "noma'lum"}, {"exploratory", "tadqiqiy"}, {"Purple I2P Webconsole", "Veb-konsoli Purple I2P"}, {"<b>i2pd</b> webconsole", "<b>i2pd</b> veb-konsoli"}, {"Main page", "Asosiy sahifa"}, {"Router commands", "Router buyruqlari"}, {"Local Destinations", "Mahalliy joylanishlar"}, {"LeaseSets", "LeaseSets"}, {"Tunnels", "Tunnellar"}, {"Transit Tunnels", "Tranzit Tunellari"}, {"Transports", "Transportlar"}, {"I2P tunnels", "I2P tunnellari"}, {"SAM sessions", "SAM sessiyalari"}, {"ERROR", "XATO"}, {"OK", "OK"}, {"Testing", "Testlash"}, {"Firewalled", "Xavfsizlik devori bilan himoyalangan"}, {"Unknown", "Notanish"}, {"Proxy", "Proksi"}, {"Mesh", "Mesh To'r"}, {"Clock skew", "Aniq vaqt emas"}, {"Offline", "Oflayn"}, {"Symmetric NAT", "Simmetrik NAT"}, {"Full cone NAT", "Full cone NAT"}, {"No Descriptors", "Deskriptorlar yo'q"}, {"Uptime", "Ish vaqti"}, {"Network status", "Tarmoq holati"}, {"Network status v6", "Tarmoq holati v6"}, {"Stopping in", "Ichida to'xtatish"}, {"Family", "Oila"}, {"Tunnel creation success rate", "Tunnel yaratish muvaffaqiyat darajasi"}, {"Total tunnel creation success rate", "Tunnel yaratishning umumiy muvaffaqiyat darajasi"}, {"Received", "Qabul qilindi"}, {"%.2f KiB/s", "%.2f KiB/s"}, {"Sent", "Yuborilgan"}, {"Transit", "Tranzit"}, {"Data path", "Ma'lumotlar joylanishi"}, {"Hidden content. Press on text to see.", "Yashirin tarkib. Ko'rish uchun matn ustida bosing."}, {"Router Ident", "Router identifikatori"}, {"Router Family", "Router oilasi"}, {"Router Caps", "Router Bayroqlari"}, {"Version", "Versiya"}, {"Our external address", "Bizning tashqi manzilimiz"}, {"supported", "qo'llab-quvvatlanadi"}, {"Routers", "Routerlar"}, {"Floodfills", "Floodfills"}, {"Client Tunnels", "Mijoz Tunellari"}, {"Services", "Xizmatlar"}, {"Enabled", "Yoqilgan"}, {"Disabled", "O'chirilgan"}, {"Encrypted B33 address", "Shifrlangan B33 manzil"}, {"Address registration line", "Manzilni ro'yxatga olish liniyasi"}, {"Domain", "Domen"}, {"Generate", "Yaratish"}, {"<b>Note:</b> result string can be used only for registering 2LD domains (example.i2p). For registering subdomains please use i2pd-tools.", "<b>Eslatma:</b> natija satridan faqat 2LD domenlarini ro'yxatdan o'tkazish uchun foydalanish mumkin (example.i2p). Subdomenlarni ro'yxatdan o'tkazish uchun 'i2pd-tools'dan foydalaning."}, {"Address", "Manzil"}, {"Type", "Turi"}, {"EncType", "ShifrlashTuri"}, {"Expire LeaseSet", "LeaseSet muddati tugaydi"}, {"Inbound tunnels", "Kirish tunnellari"}, {"%dms", "%dms"}, {"Outbound tunnels", "Chiquvchi tunnellar"}, {"Tags", "Teglar"}, {"Incoming", "Kiruvchi"}, {"Outgoing", "Chiquvchi"}, {"Destination", "Manzilgoh"}, {"Amount", "Soni"}, {"Incoming Tags", "Kiruvchi teglar"}, {"Tags sessions", "Teglar sessiyalari"}, {"Status", "Holat"}, {"Local Destination", "Mahalliy joylanish"}, {"Streams", "Strim"}, {"Close stream", "Strimni o'chirish"}, {"Such destination is not found", "Bunday yo'nalish topilmadi"}, {"I2CP session not found", "I2CP sessiyasi topilmadi"}, {"I2CP is not enabled", "I2CP yoqilmagan"}, {"Invalid", "Noto'g'ri"}, {"Store type", "Saqlash turi"}, {"Expires", "Muddati tugaydi"}, {"Non Expired Leases", "Muddati O'tmagan Leases"}, {"Gateway", "Kirish yo'li"}, {"TunnelID", "TunnelID"}, {"EndDate", "Tugash Sanasi"}, {"floodfill mode is disabled", "floodfill rejimi o'chirilgan"}, {"Queue size", "Navbat hajmi"}, {"Run peer test", "Sinovni boshlang"}, {"Reload tunnels configuration", "Tunnel konfiguratsiyasini qayta yuklash"}, {"Decline transit tunnels", "Tranzit tunnellarini rad etish"}, {"Accept transit tunnels", "Tranzit tunnellarni qabul qilish"}, {"Cancel graceful shutdown", "Yumshoq to'xtashni bekor qilish"}, {"Start graceful shutdown", "Yumshoq to'xtashni boshlash"}, {"Force shutdown", "Majburiy to'xtatish"}, {"Reload external CSS styles", "Tashqi CSS uslublarini qayta yuklang"}, {"<b>Note:</b> any action done here are not persistent and not changes your config files.", "<b>Eslatma:</b> shu yerda qilingan har qanday harakat doimiy emas va konfiguratsiya fayllarini o'zgartirmaydi."}, {"Logging level", "Jurnal darajasi"}, {"Transit tunnels limit", "Tranzit tunellarning chegarasi"}, {"Change", "O'zgartirish"}, {"Change language", "Tilni o'zgartirish"}, {"no transit tunnels currently built", "qurilgan tranzit tunnellari yo'q"}, {"SAM disabled", "SAM o'chirilgan"}, {"no sessions currently running", "hech qanday ishlaydigan sessiyalar yo'q"}, {"SAM session not found", "SAM sessiyasi topilmadi"}, {"SAM Session", "SAM sessiyasi"}, {"Server Tunnels", "Server Tunellari"}, {"Client Forwards", "Mijozlarni Yo'naltirish"}, {"Server Forwards", "Serverni Yo'naltirish"}, {"Unknown page", "Noma'lum sahifa"}, {"Invalid token", "Noto‘g‘ri belgi"}, {"SUCCESS", "Muvaffaqiyat"}, {"Stream closed", "Strim yopiq"}, {"Stream not found or already was closed", "Strim topilmadi yoki allaqachon yopilgan"}, {"Destination not found", "Yo'nalish topilmadi"}, {"StreamID can't be null", "StreamID bo'sh bo'lishi mumkin emas"}, {"Return to destination page", "Manzilgoh sahifasiga qaytish"}, {"You will be redirected in %d seconds", "Siz %d soniyadan so‘ng boshqa yo‘nalishga yo‘naltirilasiz"}, {"LeaseSet expiration time updated", "LeaseSet amal qilish muddati yangilandi"}, {"LeaseSet is not found or already expired", "LeaseSet topilmadi yoki muddati tugagan"}, {"Transit tunnels count must not exceed %d", "Tranzit tunnellar soni %d dan oshmasligi kerak"}, {"Back to commands list", "Buyruqlar ro'yxatiga qaytish"}, {"Register at reg.i2p", "Reg.i2p-da ro'yxatdan o'ting"}, {"Description", "Tavsif"}, {"A bit information about service on domain", "Domen xizmatlari haqida bir oz ma'lumot"}, {"Submit", "Yuborish"}, {"Domain can't end with .b32.i2p", "Domen .b32.i2p bilan tugashi mumkin emas"}, {"Domain must end with .i2p", "Domen .i2p bilan tugashi kerak"}, {"Unknown command", "Noma'lum buyruq"}, {"Command accepted", "Buyruq qabul qilindi"}, {"Proxy error", "Proksi xatosi"}, {"Proxy info", "Proksi ma'lumotlari"}, {"Proxy error: Host not found", "Proksi xatosi: Xost topilmadi"}, {"Remote host not found in router's addressbook", "Masofaviy xost yo'riqnoma manzillar kitobida topilmadi"}, {"You may try to find this host on jump services below", "Siz xost quyida o'tish xizmatlari orqali topishga harakat qilishingiz mumkin"}, {"Invalid request", "Noto‘g‘ri so‘rov"}, {"Proxy unable to parse your request", "Proksi sizning so'rovingizni aniqlab ololmayapti"}, {"Addresshelper is not supported", "Addresshelper qo'llab-quvvatlanmaydi"}, {"Host %s is <font color=red>already in router's addressbook</font>. <b>Be careful: source of this URL may be harmful!</b> Click here to update record: <a href=\"%s%s%s&update=true\">Continue</a>.", "%s xosti <font color=red>allaqachon routerning manzillar kitobida</font>. <b>Ehtiyot bo'ling: bu URL manbasi zararli bo'lishi mumkin!</b> Yozuvni yangilash uchun bu yerni bosing: <a href=\"%s%s%s&update=true\">Davom etish</a>."}, {"Addresshelper forced update rejected", "Addresshelperni majburiy yangilash rad etildi"}, {"To add host <b>%s</b> in router's addressbook, click here: <a href=\"%s%s%s\">Continue</a>.", "Routerning manzillar kitobiga <b>%s</b> xostini qo'shish uchun bu yerni bosing: <a href=\"%s%s%s\">Davom etish</a>."}, {"Addresshelper request", "Addresshelper so'rovi"}, {"Host %s added to router's addressbook from helper. Click here to proceed: <a href=\"%s\">Continue</a>.", "Yordamchidan router manzillar kitobiga %s xost qo‘shildi. Davom etish uchun bu yerga bosing: <a href=\"%s\">Davom etish</a>."}, {"Addresshelper adding", "Addresshelperni qo'shish"}, {"Host %s is <font color=red>already in router's addressbook</font>. Click here to update record: <a href=\"%s%s%s&update=true\">Continue</a>.", "%s xosti <font color=red>allaqachon routerning manzillar kitobida</font>. Yozuvni yangilash uchun shu yerni bosing: <a href=\"%s%s%s&update=true\">Davom etish</a>."}, {"Addresshelper update", "Addresshelperni yangilash"}, {"Invalid request URI", "Noto'g'ri URI so'rovi"}, {"Can't detect destination host from request", "So‘rov orqali manzil xostini aniqlab bo'lmayapti"}, {"Outproxy failure", "Tashqi proksi muvaffaqiyatsizligi"}, {"Bad outproxy settings", "Noto'g'ri tashqi proksi-server sozlamalari"}, {"Host %s is not inside I2P network, but outproxy is not enabled", "Xost %s I2P tarmog'ida emas, lekin tashqi proksi yoqilmagan"}, {"Unknown outproxy URL", "Noma'lum outproxy URL"}, {"Cannot resolve upstream proxy", "Yuqoridagi 'proxy-server'ni aniqlab olib bolmayapti"}, {"Hostname is too long", "Xost nomi juda uzun"}, {"Cannot connect to upstream SOCKS proxy", "Yuqori 'SOCKS proxy'ga ulanib bo'lmayapti"}, {"Cannot negotiate with SOCKS proxy", "'SOCKS proxy' bilan muzokara olib bo'lmaydi"}, {"CONNECT error", "CONNECT xatosi"}, {"Failed to connect", "Ulanib bo'lmayapti"}, {"SOCKS proxy error", "'SOCKS proxy' xatosi"}, {"Failed to send request to upstream", "Yuqori proksi-serveriga so'rovni uborib bo'lmadi"}, {"No reply from SOCKS proxy", "'SOCKS proxy'dan javob yo'q"}, {"Cannot connect", "Ulanib bo'lmaydi"}, {"HTTP out proxy not implemented", "Tashqi HTTP proksi-serverni qo'llab-quvvatlash amalga oshirilmagan"}, {"Cannot connect to upstream HTTP proxy", "Yuqori 'HTTP proxy'ga ulanib bo'lmayapti"}, {"Host is down", "Xost ishlamayapti"}, {"Can't create connection to requested host, it may be down. Please try again later.", "Talab qilingan xost bilan aloqa o'rnatilmadi, u ishlamay qolishi mumkin. Iltimos keyinroq qayta urinib ko'ring."}, {"", ""}, }; static std::map<std::string, std::vector<std::string>> plurals { {"%d days", {"%d kun", "%d kun"}}, {"%d hours", {"%d soat", "%d soat"}}, {"%d minutes", {"%d daqiqa", "%d daqiqa"}}, {"%d seconds", {"%d soniya", "%d soniya"}}, {"", {"", ""}}, }; std::shared_ptr<const i2p::i18n::Locale> GetLocale() { return std::make_shared<i2p::i18n::Locale>(language, strings, plurals, [] (int n)->int { return plural(n); }); } } // language } // i18n } // i2p