SpartanUI

SpartanUI

5M Downloads

Got "?" upside down in health bar

CarretteR opened this issue ยท 12 comments

commented

Hey,

Like title say, i got "?" upside down in the health bar, at the separation between thousands "like in 15.000", it looks more like "15??000", which is pretty annoying.

Changing the font doesn't clear the problem.

commented

Everything i can find says that either FrizQuadrata or ArialNarrow should fix it. I did notice last night in my testing a /reload is needed for the font to apply fully to the unitframes. Make sure you do that after setting it. Are you seeing the same issue in other areas like on the XP bar?

commented

What language is your game client?

commented

French

commented

Can you tell me what happens if you run this in your chat window?

/script print(_G.LARGE_NUMBER_SEPERATOR)

It should print out a comma or what ever should be where the ?? is.

commented

I did reloaded. When i try the script, it just doesn't show anything. There's just a blank space where the line should be in the chat.

commented

Perfect! Well not really but it means SpartanUI is not fully at fault. Blizzard should be setting that to what ever character is used in the language/region to separate numbers (comma or period usually) but they are not.

In this zip file Removed There is a file called Framework.lua Drop this into your World of Warcraft\Interface\AddOns\SpartanUI\Core folder replacing the file that is there already. Let me know if this fixes the issue.

commented

Nope. It got worst because now i got some more useless icon.
https://www.cjoint.com/data3/HGmhX73oUEO_WoWScrnShot-071218-095700.jpg

I reverted into the old Framework after to get back to the previous version.

commented

From that screenshot it looks like the unit frames completely stop processing events. That makes 0 sense its like putting a band-aid on the wrist and your femur breaks as a result.

Open the Framework.lua and find this near the bottom (Lines 765-768):

function SUI:comma_value(n)
	local left,num,right = string.match(n,'^([^%d]*%d)(%d*)(.-)$')
	return left..(num:reverse():gsub('(%d%d%d)','%1' .. _G.LARGE_NUMBER_SEPERATOR):reverse())..right
end

Replace it with this

function SUI:comma_value(n)
	local left,num,right = string.match(n,'^([^%d]*%d)(%d*)(.-)$')
	return left..(num:reverse():gsub('(%d%d%d)','%1,'):reverse())..right
end
commented

It works. Still got the useless icon, but works. Maybe just changing it onto the old file (i did it to the new file you did sent me) : https://www.cjoint.com/data3/HGmqw58RhEO_WoWScrnShot-071218-183017.jpg

Then i tried with the original file, and it works !
Problem solved

If i want to be extra annoying, in french, "," and "." are inverse.
Fr -> "700.000,26", not "700,000.26"
But hey, it's not really annoying, and i can change it myself.
Thanks for the help !
(i let it open just in case you need to answer)

commented

I must of changed something else in the Framework.lua i posted above. So lets ignore that file.

_G.LARGE_NUMBER_SEPERATOR is supposed to be , or . depending on the language. But it seems Blizz is not setting it for French.

If you want to help me test a more permanent fix. In the Normal Framework.lua

try this code

function SUI:comma_value(n)
	local left,num,right = string.match(n,'^([^%d]*%d)(%d*)(.-)$')
	local NUMBER_SEPERATOR
	if not _G['LARGE_NUMBER_SEPERATOR'] then
		NUMBER_SEPERATOR = '.'
	else
		NUMBER_SEPERATOR = _G['LARGE_NUMBER_SEPERATOR']
	end
	return left..(num:reverse():gsub('(%d%d%d)','%1' .. NUMBER_SEPERATOR):reverse())..right
end

This should detect if that is not set and set it to a . I am thinking that since the US client is setting it to a , Blizzards code that sets it to a . must be broken.

commented

Nope, it doesn't change anything. Back to start if using that one.

commented

Crap, so they are setting it to something that's corrupted. Thanks for testing that for me.