Модуль:Automatic transliteration

{{i}} Документація модуля[перегляд] [редагувати] [історія] [очистити кеш]

Рання версія модуля, що робить автоматичне створення транслітерації на основі вхідного тексту.

Використання

[ред. код]

{{#invoke:Automatic transliteration|назва функції}}

local data = require ('Модуль:Automatic transliteration/data') local invert = require('Модуль:TableTools').invert   local function split(test, separator) 	if not (test and (test ~= '') and separator and (separator ~= '')) then 		return '' 	end 	 	test = test .. separator 	local splitted_table = test:gmatch('(%S+),%s*') 	    return splitted_table end  local function invert_pairs (a_table) 	local inverted_table = {} 	for key, item in pairs(a_table) do 		inverted_table[item] = key 	end 	 	return inverted_table end	  local function create_text (base_text, table_name, is_invert) 	return mw.ustring.gsub(base_text, '.', is_invert and invert_pairs(data[table_name]) or data[table_name]) end	  local function get_abbr_name(system_name) 	local name = data.jaAbbrName[system_name] 	return name .. ': ' end	  local function look_for_transliteration (text, language) 	for i, item in ipairs(data.jaFeature_obj) do 		if mw.ustring.match(text, item) then 			return data.jaFeature_name[i] 		end 	end	 end  local function formated_text (base_text, language, systems, is_trans) 	local table_name 	local formed_text = '' 	 	if is_trans then 		local transl_name = look_for_transliteration(base_text, language) 		base_text = create_text(base_text, transl_name, true) 		error(base_text) 		systems = systems .. ', ' .. transl_name:gsub(language, '') 	end	 	 	 	if systems then 		for item in split(systems, ',') do 			table_name = language .. item 			formed_text = formed_text .. get_abbr_name(table_name) .. create_text (base_text, table_name) .. ', ' 		end 	else 		formed_text = '' 	end	 	 	return formed_text end	  local function _main(args) 	local original_text = args[1] or args.original or args['оригінал'] 	local transliterad_text = args[2] or args.transliteration or args['транслітерація'] 	local systems = args[3] or args.systems or args['системи'] 	local formed_text 	 	if original_text and not (original_text == '') then 		formed_text = formated_text(original_text, 'ja', systems) 	elseif transliterad_text and not (transliterad_text == '') then 		formed_text = formated_text(transliterad_text, 'ja', systems, true) 	else 		formed_text = "Помилка: Не вказано текст, з якого створювати транслітерацію." 	end	 	 	return formed_text end  local function main (frame) 	 return _main(frame.args) end  return { 	main = main, 	_main = _main }