Модуль:ReturnGendered

Материал из Викиновостей, свободного источника новостей
Документация

Модуль для возвращения слова по его гендеру (полу).

--[[
------------------------------------------
--             ReturnGendered
-- Модуль для возвращения слова по его гендеру. 
------------------------------------------
--]]

local ReturnGendered={}

local genderDictionary = 

{
{"авантюрист", "авантюристка"},
 {"актёр", "актриса"},
 {"актёр озвучивания", "актриса озвучивания"},
 {"артист", "артистка"},
 {"артист балета", "артистка балета"},
 {"артист цирка", "артистка цирка"},
 {"астронавт", "астронавтка"},
{"бандит", "бандитка"},
 {"бортпроводник", "бортпроводница"},
 {"ведущий", "ведущая"},
{"военнослужащий", "военнослужащая"},
 {"вокалист", "вокалистка"},
{"вор", "воровка"},
{"гимнаст", "гимнастка"},
 {"гитарист", "гитаристка"},
 {"директор", "директриса"},
 {"долгожитель", "долгожительница"},
 {"журналист", "журналистка"},
 {"Заслуженный артист Российской Федерации", "Заслуженная артистка Российской Федерации"},
 {"знаменитый человек", "знаменитая женщина"},
 {"киноактёр", "киноактриса"},
 {"клоун", "клоунесса"},
 {"космонавт", "космонавтка"},
 {"легкоатлет", "легкоатлетка"},
 {"лётчик", "лётчица"},
 {"лыжник", "лыжница"},
{"мошенник", "мошенница"},
{"музыкант", "музыкантка"},
 {"начальник", "начальница"}, 
 {"пародист", "пародистка"},
 {"певец", "певица"},
{"пенсионер", "пенсионерка"},
 {"переводчик", "переводчица"},
 {"писатель", "писательница"},
 {"писатель-документалист", "писательница-документалистка"},
 {"писатель-фантаст", "писательница-фантастка"},
 {"писатель-путешественник", "писательница-путешественница"},
 {"повар", "повариха"},
 {"порноактёр", "порноактриса"},
 {"поэт", "поэтесса"},
 {"поэт-песенник", "поэтесса-песенник"},
{"предприниматель", "предпринимательница"},
{"преступник", "преступница"},
 {"проводник", "проводница"},
 {"путешественник", "путешественница"},
{"рабочий", "рабочая"},
 {"радиоведущий", "радиоведущая"},
{"разбойник", "разбойница"},
{"сварщик", "сварщица"},
{"светский лев", "светская львица"},
 {"секс-работник", "секс-работница"},
 {"скрипач", "скрипачка"},
 {"спортсмен", "спортсменка"},
{"спортивный гимнаст", "спортивная гимнастка"},
 {"сценарист", "сценаристка"},
 {"танцор", "танцовщица"},
 {"театральный актёр", "театральная актриса"},
 {"телеведущий", "телеведущая"},
 {"тележурналист", "тележурналистка"},
 {"теннисист", "теннисистка"},
{"тракторист", "трактористка"},
 {"участник", "участница"},
 {"учитель", "учительница"},
 {"фигурист", "фигуристка"},
{"художник", "художница"},
{"художественный гимнаст", "художественная гимнастка"},
 {"экономист", "экономистка"},
 {"юморист", "юмористка"},
 
}

function ReturnGendered.launch(inpt, gender, swtch)
 local genderedWord = ""	
 genderedWord=ReturnGendered.Look(inpt, gender, swtch)
 if(genderedWord == nil or gengeredWord == "") then genderedWord = inpt end
 return genderedWord
end	 

function ReturnGendered.Look(i,g,s)
	if(s == 1) then return ReturnGendered.Adjective(i,g,s)
	elseif(s == 2) then return ReturnGendered.Noun(i,g,s)
	elseif(s == 3) then return ReturnGendered.Verb(i,g,s)
	else return "" end	
end 

function ReturnGendered.Adjective(i,g,s)
	if(i == "Россия") then
		if(g == "мужской пол") then return "российский" end
		if(g == "женский пол") then return "российская" end
	elseif(i == "США") then
		if(g == "мужской пол") then return "американский" end
		if(g == "женский пол") then return "американская" end
	elseif(i == "Япония") then
		if(g == "мужской пол") then return "японский" end
		if(g == "женский пол") then return "японская" end
	else return "" end	
end 

function ReturnGendered.Noun(i,g,s) 
 if(g == "женский пол") then
  for t, gd in pairs(genderDictionary)  do
   if(gd[1] == i) then return gd[2] end
  end
 end
end

function ReturnGendered.Verb(i,g,s)
	if(i == "Испытал") then
		if(g == "мужской пол") then return "Испытал" end
		if(g == "женский пол") then return "Испытала" end
	else return "" end	
end 

return ReturnGendered