function PseudoLocalize.pseudoLocalize(z)local c=PseudoLocalize.PSEUDO_CHARACTER_MAP local I=""local u=false for F,P in utf8.graphemes(z)do local S=z:sub(F,P)if S=="\123"or S=="\091"or S=="\060"then u=true I=I..S elseif S=="\125"or S=="\093"or S=="\062"then u=false I=I..S elseif not u and c[S]then I=I..c[S]else I=I..S end end return I end
--[=[
    Translates a line into pseudo text while maintaining params
    @param line string -- The line to translate
    @return string -- The translated line
]=]
function PseudoLocalize.pseudoLocalize(line)
	local charMap = PseudoLocalize.PSEUDO_CHARACTER_MAP
	local out = ""
	local isParam = false

	for start, stop in utf8.graphemes(line) do
		local char = line:sub(start, stop)
		if char == "{" or char == "[" or char == "<" then
			isParam = true
			out = out .. char
		elseif char == "}" or char == "]" or char == ">" then
			isParam = false
			out = out .. char
		elseif not isParam and charMap[char] then
			out = out .. charMap[char]
		else
			out = out .. char
		end
	end

	return out
end
