-- База данных цветов local idColor = { ['0'] = '#ffb3b3', ['1'] = '#c0c8ff', ['2'] = '#77e0e8', ['3'] = '#99b3ff', ['4'] = '#ffcf4d', ['5'] = '#f99c99', ['N']= '#6ef7a7', ['WL']= '#db7819' } local borderColor = { ['0'] = '#ffeeee', ['1'] = '#f3e0f3', ['2'] = '#e9e5f9', ['3'] = '#e0e8ff', ['4'] = '#d0f8ff', ['5'] = '#f9cbc9', ['N']= '#c5fcdc', ['WL']= '#db7819' } local infoColor = { ['0'] = '#ffe0e8', ['1'] = '#f0f8ff', ['2'] = '#d0f8ff', ['3'] = '#e0e8ff', ['4'] = '#ffefa6', ['5'] = '#f9cbc9', ['N']= '#c5fcdc', ['WL']= '#f6aa53' } -- База данных описаний local infoTexts = { ['N'] = { ['ar'] = "ґ .هذا المستخدم يمتلك معرفة كلغة أم بالعربية", ['cs'] = "Tento uživatel je rodilý mluvčí češtiny.", ['da'] = "Denne bruger har dansk som modersmål.", ['de'] = "Dieser Benutzer spricht Deutsch als Muttersprache.", ['es'] = "Este usuario tiene una comprensión nativa del español.", ['en'] = "This user has a native understanding of English.", ['fi'] = "Tämä käyttäjä puhuu suomea äidinkielenään.", ['fr'] = "Cet utilisateur a pour langue maternelle le français.", ['hu'] = "Ennek a szerkesztőnek magyar az anyanyelve.", ['it'] = "Questo utente può contribuire con un livello madrelingua in italiano.", ['ja'] = "この利用者は日本語を母語としています。", ['ko'] = "이 사용자는 한국어가 모국어입니다.", ['no'] = "Denne brukeren har norsk som morsmål og behersker bokmål.", ['nl'] = "Deze gebruiker heeft het Nederlands als moedertaal.", ['pl'] = "Polski jest językiem ojczystym tego użytkownika.", ['pr'] = "Aye, this corsair be havin' a nati'e understandin' o' Pirate.", ['pt'] = "Este utilizador tem como língua materna o português.", ['pt-br'] = "Este usuário tem como língua materna o português brasileiro.", ['ro'] = "Acest utilizator este un vorbitor nativ al limbii române.", ['ru'] = "Для этого участника русский язык является родным.", ['sk'] = "Tento redaktor má slovenčinu ako materinský jazyk.", ['sv'] = "Den här användaren har svenska som modersmål.", ['tr'] = "Bu kullanıcının anadili Türkçe'dir.", ['uk'] = "Українська мова для цього користувача є рідною.", ['zh-hans'] = "简体中文是这位用户的母语。", ['zh-hant'] = "這位用戶明白以母語為主的傳統中文字。"}, ['0'] = { ['ar'] = "ґ .(هذا المستخدم ليس لديه معرفة بالعربية (أو يفهمها بصعوبة شديدة", ['cs'] = "Tento uživatel nerozumí česky (nebo rozumí se značnými problémy).", ['da'] = "Denne bruger har intet kendskab til dansk (eller forstår det kun med stor vanskelighed).", ['de'] = "Dieser Benutzer beherrscht Deutsch nicht (oder versteht es nur mit beträchtlichen Schwierigkeiten).", ['es'] = "Este usuario desconoce el español (o lo entiende con considerable dificultad).", ['en'] = "This user has no knowledge of English (or understands it with considerable difficulty).", ['eo'] = "Ĉi tiu uzanto ne komprenas Esperanton, aŭ tre malfacile komprenas.", ['fi'] = "Tämä käyttäjä osaa hyvin vähän tai ei lainkaan suomea.", ['fr'] = "Cet utilisateur n’a aucune connaissance en français (ou le comprend avec de grandes difficultés).", ['hu'] = "Ez a szerkesztő nem beszéli a magyar nyelvet (vagy csak nagy nagyon nehezen érti meg).", ['it'] = "Questo utente non è in grado di comunicare in italiano (o lo capisce solo con notevole difficoltà).", ['ja'] = "この利用者は日本語がわかりません(または理解するのがかなり困難です)。", ['ko'] = "이 사용자는 한국어를 모르거나, 이해하는 데 어려움이 있습니다.", ['no'] = "Denne brukeren kan ikke skrive eller lese norsk (eller forstår det kun med store vanskeligheter).", ['nl'] = "Deze gebruiker heeft geen kennis van het Nederlands (of begrijpt het met grote moeite).", ['pl'] = "Ten użytkownik nie rozumie języka polskiego (albo ma z nim olbrzymie trudności).", ['pr'] = "Arrr, this bilge rat be havin' nay a bit o' knowledge o' Pirate (or understands it wit' considerable difficulty).", ['pt'] = "Este utilizador não compreende português (ou compreende com dificuldades consideráveis).", ['pt-br'] = "Este utilizador não compreende português do Brasil (ou compreende com dificuldades consideráveis).", ['ro'] = "Acest utilizator nu are cunoștințe de română (sau înțelege cu mare dificultate).", ['ru'] = "Этот участник не владеет русским языком (или с трудом его понимает).", ['sk'] = "Tento redaktor nemá žiadne znalosti slovenčiny.", ['sv'] = "Den här användaren har inga kunskaper i svenska (eller förstår det med en betydande svårighet).", ['tr'] = "Bu kullanıcı hiç Türkçe bilmiyor (ya da bir hayli zor anlıyor).", ['uk'] = "Цей користувач не володіє українською мовою (або розуміє її дуже погано).", ['zh-hans'] = "这位用户不懂或很难理解简体中文。", ['zh-hant'] = "這位用戶無傳統中文字的知識(或很難地去明白它)。"}, ['1'] = { ['ar'] = "ґ .هذا المستخدم يمتلك المعرفة الأساسية للغة العربية", ['cs'] = "Tento uživatel má základní znalosti češtiny.", ['da'] = "Denne bruger har grundlæggende kendskab til dansk.", ['de'] = "Dieser Benutzer beherrscht Deutsch auf grundlegendem Niveau.", ['es'] = "Este usuario tiene un conocimiento básico del español.", ['en'] = "This user has basic knowledge of English.", ['fi'] = "Tämä käyttäjä puhuu suomea vähän.", ['fr'] = "Cet utilisateur dispose de connaissances de base en français.", ['hu'] = "Ez a szerkesztő alapszinten beszéli a magyar nyelvet.", ['it'] = "Questo utente può contribuire con un livello elementare in italiano.", ['ja'] = "この利用者は初級の日本語ができます。", ['jbo'] = "ti poi prenu cu ka'e cusku je jimpe lo sampu bau la .lojban.", ['ko'] = "이 사용자는 한국어를 조금 할 수 있습니다.", ['no'] = "Denne brukeren kan litt norsk (bokmål).", ['nl'] = "Deze gebruiker heeft elementaire kennis van het Nederlands.", ['pl'] = "Ten użytkownik posługuje się językiem polskim na poziomie podstawowym.", ['pr'] = "Ahoy, this landlubber be havin' a basic knowledge o' Pirate", ['pt'] = "Este utilizador pode contribuir com um nível básico de português.", ['pt-br'] = "Este utilizador pode contribuir com um nível básico de português do Brasil.", ['ro'] = "Acest utilizator poate contribui cu un nivel de bază de română.", ['ru'] = "Этот участник владеет русским языком на начальном уровне.", ['sk'] = "Tento redaktor má základné znalosti slovenčiny.", ['sv'] = "Den här användaren har grundläggande kunskaper i svenska.", ['tr'] = "Bu kullanıcı temel düzeyde Türkçe bilir.", ['uk'] = "Цей користувач володіє українською мовою на початковому рівні.", ['zh-hans'] = "这位用户的简体中文达到初级水平。", ['zh-hant'] = "這位用戶有基本的傳統中文字知識。"}, ['2'] = { ['ar'] = "ґ .هذا المستخدم لديه معرفة وسيطة اللغة العربية", ['cs'] = "Tento uživatel má střední znalosti češtiny.", ['da'] = "Denne bruger har et godt kendskab til dansk.", ['de'] = "Dieser Benutzer beherrscht Deutsch auf fortgeschrittenem Niveau.", ['es'] = "Este usuario tiene un conocimiento intermedio del español.", ['en'] = "This user has intermediate knowledge of English.", ['fi'] = "Tämä käyttäjä osaa suomea kohtalaisesti.", ['fr'] = "Cet utilisateur dispose d’un niveau intermédiaire de connaissance en français.", ['hu'] = "Ez a szerkesztő középszinten beszéli a magyar nyelvet.", ['it'] = "Questo utente può contribuire con un livello intermedio in italiano.", ['ja'] = "この利用者は中級の日本語ができます。", ['ko'] = "이 사용자는 한국어를 어느 정도 할 수 있습니다.", ['no'] = "Denne brukeren har god kjennskap til norsk (bokmål).", ['nl'] = "Deze gebruiker heeft een basiskennis van het Nederlands.", ['pl'] = "Ten użytkownik posługuje się językiem polskim na poziomie średnio zaawansowanym.", ['pr'] = "Yarr, this carouser be havin' an intermediate knowledge o' Pirate.", ['pt'] = "Este utilizador pode contribuir com um nível médio de português.", ['pt-br'] = "Este utilizador pode contribuir com um nível médio de português do Brasil.", ['ro'] = "Acest utilizator poate contribui cu un nivel intermediar de română.", ['ru'] = "Этот участник владеет русским языком на среднем уровне.", ['sk'] = "Tento redaktor má stredné znalosti slovenčiny.", ['sv'] = "Den här användaren har medelgoda kunskaper i svenska.", ['tr'] = "Bu kullanıcı orta düzeyde Türkçe bilir.", ['uk'] = "Цей користувач володіє українською мовою на середньому рівні.", ['zh-hans'] = "这位用户的简体中文达到中级水平。", ['zh-hant'] = "這位用戶有中等的傳統中文字知識。"}, ['3'] = { ['ar'] = "ґ .هذا المستخدم لديه معرفة متقدمة في اللغة العربية", ['cs'] = "Tento uživatel má pokročilé znalosti češtiny.", ['da'] = "Denne bruger har et avanceret kendskab til dansk.", ['de'] = "Dieser Benutzer beherrscht Deutsch auf hohem Niveau.", ['es'] = "Este usuario tiene un conocimiento avanzado del español.", ['en'] = "This user has advanced knowledge of English.", ['fi'] = "Tämä käyttäjä osaa suomea erinomaisesti.", ['fr'] = "Cet utilisateur dispose de connaissances avancées en français.", ['hu'] = "Ez a szerkesztő haladó szinten beszéli a magyar nyelvet.", ['it'] = "Questo utente può contribuire con un livello avanzato in italiano.", ['ja'] = "この利用者は上級の日本語ができます。", ['ko'] = "이 사용자는 한국어를 고급 수준으로 할 수 있습니다.", ['no'] = "Denne brukeren behersker norsk (bokmål) flytende.", ['nl'] = "De gebruiker heeft een gevorderde kennis van het Nederlands.", ['pl'] = "Ten użytkownik posługuje się językiem polskim na poziomie zaawansowanym.", ['pr'] = "Aye, this buccaneer be havin' an ad'anced knowledge o' Pirate .", ['pt'] = "Este utilizador pode contribuir com um nível avançado de português.", ['pt-br'] = "Este utilizador pode contribuir com um nível avançado de português do Brasil.", ['ro'] = "Acest utilizator poate contribui cu un nivel avansat de română.", ['ru'] = "Этот участник '''свободно''' владеет '''русским языком'''.", ['sk'] = "Tento redaktor má pokročilé znalosti slovenčiny.", ['sv'] = "Den här användaren har avancerade kunskaper i svenska.", ['tr'] = "Bu kullanıcı ileri seviyede Türkçe bilir.", ['uk'] = "Цей користувач володіє українською мовою на високому рівні.", ['zh-hans'] = "这位用户的简体中文达到高级水平。", ['zh-hant'] = "這位用戶有高等的傳統中文字知識。"}, ['4'] = { ['ar'] = "ґ .هذا المستخدم لديه المعرفة بالقرب من اللغة الأصلية للغة العربية", ['cs'] = "Tento uživatel má znalosti češtiny téměř na úrovni rodilého mluvčího.", ['da'] = "Denne bruger kan dansk næsten på modersmålsniveau.", ['de'] = "Dieser Benutzer beherrscht Deutsch auf muttersprachlichem Niveau.", ['es'] = "Este usuario tiene un conocimiento casi nativo del español.", ['en'] = "This user has '''near native''' speaker knowledge of '''English'''.", ['fi'] = "Tämä käyttäjä osaa suomea melkein äidinkielen tavoin.", ['fr'] = "Cet utilisateur dispose de connaissances proches de la langue maternelle en français.", ['hu'] = "Ez a szerkesztő közel anyanyelvi szinten beszéli a magyar nyelvet.", ['it'] = "Questo utente può contribuire con un livello quasi madrelingua in italiano.", ['ja'] = "この利用者は母語話者に近い日本語の知識を有しています。", ['ko'] = "이 사용자는 한국어를 모국어에 준하는 수준으로 할 수 있습니다.", ['no'] = "Denne brukeren snakker og skriver norsk (bokmål) på morsmålsnivå.", ['nl'] = "Deze gebruiker beheerst het Nederlands als ware het zijn moedertaal.", ['pl'] = "Ten użytkownik posługuje się językiem polskim prawie tak samo biegle, jak językiem ojczystym.", ['pr'] = "Avast! This swashbuckler be havin' a '''near nati'e''' speaker knowledge o' '''Pirate'''", ['pt'] = "Este utilizador pode contribuir com um nível quase nativo de português.", ['pt-br'] = "Este utilizador pode contribuir com um nível quase nativo de português do Brasil.", ['ro'] = "Acest utilizator poate contribui cu un nivel aproape nativ de română.", ['ru'] = "Этот участник владеет '''русским языком почти как родным'''.", ['sk'] = "Tento redaktor má znalosti slovenčiny takmer na úrovni materinského jazyka.", ['sv'] = "Den här användaren talar nästan svenska som en modersmålstalare.", ['tr'] = "Bu kullanıcı anadili gibi Türkçe konuşabilir.", ['uk'] = "Користувач володiє українською мовою майже як рiдною.", ['zh-hans'] = "这位用户的简体中文达到接近母语水平。", ['zh-hant'] = "這位用戶有接近母語講者的傳統中文字知識。"}, ['5'] = { ['ar'] = "ґ .هذا المستخدم لديه المعرفة المهنية العربية", ['cs'] = "Tento uživatel má '''profesionální''' znalosti '''češtiny'''.", ['da'] = "Denne bruger har '''professionelt''' kendskab til '''dansk'''.", ['de'] = "Dieser Benutzer beherrscht '''Deutsch''' auf '''professionellem''' Niveau.", ['es'] = "Este usuario tiene un conocimiento '''profesional''' del '''Español'''.", ['en'] = "This user has '''professional''' knowledge of '''English'''.", ['fi'] = "Tämä käyttäjä käyttää suomea ammattimaisesti.", ['fr'] = "Cet utilisateur dispose d’un niveau de connaissances '''professionnel''' du '''français'''.", ['hu'] = "Ez a szerkesztő ''durván'' vágja a magyartost.", ['it'] = "Questo utente può contribuire con un livello '''professionale''' in '''italiano'''.", ['ja'] = "この利用者は専門的な日本語の知識を有しています。", ['ko'] = "이 사용자는 한국어를 전문가 수준으로 할 수 있습니다.", ['no'] = "Denne brukeren bruker '''norsk''' (bokmål) '''profesjonelt'''.", ['nl'] = "Deze gebruiker heeft een '''professionele''' kennis van '''het Nederlands'''.", ['pl'] = "Ten użytkownik posługuje się '''językiem polskim''' na równi z '''językiem ojczystym'''.", ['pr'] = "Yarrrg, this scurvy dog be havin' a '''professional''' knowledge o' '''Pirate'''. Ye'll ne'er get me buried booty!", ['pt'] = "Este utilizador pode contribuir com um nível '''profissional''' de '''português'''.", ['pt-br'] = "Este utilizador pode contribuir com um nível '''profissional''' de '''português do Brasil'''.", ['ro'] = "Acest utilizator contribuie folosind un nivel '''profesional''' de '''română'''.", ['ru'] = "Этот участник '''профессионально''' владеет '''русским языком'''.", ['sk'] = "Tento redaktor má '''profesionálne''' znalosti '''slovenčiny'''.", ['sv'] = "Den här användaren har '''professionella''' kunskaper i '''svenska'''.", ['tr'] = "Bu kullanıcı '''profesyonel Türkçe bilgisine''' sahiptir.", ['uk'] = "Цей користувач '''професійно''' володіє '''українською мовою'''.", ['zh-hans'] = "这位用户的简体中文达到专业水平。", ['zh-hant'] = "這位用戶有專業的傳統中文字知識。" }, ['WL'] = { ['en'] = "This user would like to learn English.", ['ru'] = "Этот участник хочет выучить русский язык." } } local p = {} function p.userbox(f) local args = f:getParent().args or f.args or f --[[if f == mw.getCurrentFrame() and args[1] == nil and args[2] == nil then args = f:getParent().args end]] local lang = mw.text.trim(tostring(args[1]) or '') local level = mw.text.trim(tostring(args[2]) or '') local info = infoTexts[level][lang] or string.format("<small class=error>Ошибка: Не найдено описание для %s-%s<br>Error: Couldn’t find text for %s-%s</small>", lang, level, lang, level) if lang == 'zh-hans' or lang == 'zh-hant' or (lang == 'pt-br' and level ~= 'N' and level ~= 'WL') then info = string.format('<span style="font-size:55%%; line-height:1.5em;">%s</span>', info) end return f:expandTemplate{title = 'Userbox', args = { ["style"] = (lang == 'ar' and "direction: rtl;"), ["border-c"] = borderColor[level] or borderColor['0'], ["id-c"] = idColor[level] or idColor['0'], ["info-c"] = infoColor[level] or infoColor['0'], ["id"] = lang:lower() .. '-' .. level, ["info"] = info } } end return p