function EsoPL_doubleNamesCollections(EsoPL)
	if EsoPL:GetLanguage() == "pl" then
		
		local localSets = EsoPL.Settings.Data.Sets
		
		ZO_PreHook(ZO_ItemSetCollectionsDataManager,    "UpdateSearchResults", function(tooltip)
			local searchString = zo_strlower(tooltip.searchString)
			
			if EsoPL.Settings.EnglishSearch and searchString ~= "" and searchString ~= nil and zo_strmatch(searchString, "[a-z]") ~= nil then
				local nextNumber = tooltip.searchResultsVersion + 1
				local localSets = EsoPL.Settings.Data.Sets
				
				for index,value in pairs(localSets) do
					if zo_strfind(zo_strlower(value), searchString, 1, true) ~= nil and tooltip:GetItemSetCollectionData(index) then
						local itemSetCollectionData = tooltip:GetItemSetCollectionData(index)
						itemSetCollectionData:SetSearchResultsVersion(nextNumber)
					end
				end
			end
		end)
		
		-- Third-party Compatibility
		-- Item Set Browser
		if ItemBrowserList then
			local ItemBrowserListProcessItemEntryOld = ItemBrowserList.ProcessItemEntry
			
			function ItemBrowserList:ProcessItemEntry(...)
				local stringSearch, data, searchTerm = ...
				if (localSets[data.setId] and zo_plainstrfind(localSets[data.setId]:lower(), searchTerm)) then
					return true
				end
				
				return ItemBrowserListProcessItemEntryOld(self, ...)
			end
		end
		-- Third-party Compatibility
		
		for index, value in pairs(ITEM_SET_COLLECTIONS_DATA_MANAGER.itemSetCollections) do
			value.GetRawName = function()				
				if (EsoPL.Settings.ShowCollectionsSetsMenu == "pl" or not localSets[value.itemSetId]) then
					return GetItemSetName(value.itemSetId)
				elseif (EsoPL.Settings.ShowCollectionsSetsMenu == "plen") then
					return GetItemSetName(value.itemSetId) .. " (" .. localSets[value.itemSetId] .. ")"
				elseif (EsoPL.Settings.ShowCollectionsSetsMenu == "enpl") then
					return localSets[value.itemSetId] .. " (" .. GetItemSetName(value.itemSetId) .. ")"
				end
				
				return localSets[value.itemSetId]
			end
		end
		
		local function itemTooltipHook(tooltipControl, method)
			local origMethod = tooltipControl[method]
			tooltipControl[method] = function(self, ...)
				
				local finalSet = localSets[...]
				local polSet = GetItemSetName(...)
				
				if EsoPL.Settings.ShowItemsSetsTooltip ~= "pl" and finalSet then
					
					if EsoPL.Settings.ShowItemsSetsTooltip == "plen" then
						finalSet = string.format("%s (%s)", polSet, finalSet)
					elseif EsoPL.Settings.ShowItemsSetsTooltip == "enpl" then
						finalSet = string.format("%s (%s)", finalSet, polSet)
					end
					
					SafeAddString(SI_ITEM_FORMAT_STR_SET_NAME_NO_COUNT, ZO_CachedStrFormat(SI_ITEM_FORMAT_STR_SET_NAME_NO_COUNT, finalSet), 10)
				end
				
				origMethod(self, ...)
					
				SafeAddString(SI_ITEM_FORMAT_STR_SET_NAME_NO_COUNT, EsoPL.StringsBackup["SI_ITEM_FORMAT_STR_SET_NAME_NO_COUNT"], 10)
			end
		end
		
		itemTooltipHook(ItemTooltip, "SetGenericItemSet")
	end
	
	EsoPL_doubleNamesCollections = nil
end