Okay, this is a very verbose answer, only because I cannot think of another way around this. I will try to answer this as easily as I possibly can (no offense to you, I don't mean to make it sound like I am trying to speak down to you, it just involves a lot of steps that involve arguments that will be different for me as they are for you. To answer your question upfront though, I was able to change the text in the filter menu through one line of javascript, but it took 20 minutes to figure out that one line.
To start, open your site page in chrome or firefox (that's right, it's time to do some tag searching). And just so you know, none of the HTML elements exist (are null) if the filter menu isn't open, so make sure you have the filter menu open at all times while doing this (on mine it constantly closes after some time, just quickly double click on some text in the source code to stop it from closing if it happens to you).
So the column that has the incorrect filter text should have a unique ID in the tag, I'll call it "ID_of_dumb_column" in this answer. So now we know how to reference that. Now, in the HTML, this column has three child elements. We want the one with the class named something like "ms-core-menu-box". For me, it was the third tag that contained it for me. To do this, follow as such:
document.getElementById("ID_of_dumb_column").children[2] //Indexes start at 0
The .children property will return all tags contained within that tag, and stores it into an "array". When you expand that tag in the debugger, you should see another ul element. Even though there is only one tag, we need to still reference it like an array. Again:
document.getElementById("ID_of_dumb_column").children[2].children[0]
So now we are referencing the ul tag. Expand the ul tag in the debugger, and you should find li tags. These lines are now the HTML tags referincing the rows in the filter menu (The "A on top", "Z on top", "" stuff). Move your mouse over the various li tags to find the ones that correspond to the options you want to change (for me, my first option was at index 4). To reference this, we write:
document.getElementById("ID_of_dumb_column").children[2].children[0].children[4]
I'm going to speed up a little to shorten this already wall of text. Inside the li tag, there's one a tag at index zero, so do the children thing again for index 0. Inside the a tag, there are 3 div tags. I want the one called "labelcompact", it should be the one that covers the text. For me, that is at index 1, so I call children again at index 1. Finally, in that div tag there is a span that has the title. For me, that was at index 0. Then we set the innerHTML text of that tag.
So FINALLY I have this:
document.getElementById("ID_of_dumb_column").children[2].children[0].children[4].children[0].children[1].children[0].innerHTML = "New"; //OR whatever yours is supposed to be
Then we want to make sure this line of Jscript is ONLY called when the menu is open, so in your script, write:
<script type="text/javascript">
function myfunction() {
document.getElementById("ID_of_dumb_column").children[2].children[0].children[4].children[0].children[1].children[0].innerHTML = "New";
document.getElementById("ID_of_dumb_column").children[2].children[0].children[5].children[0].children[1].children[0].innerHTML = "In Progress";
document.getElementById("ID_of_dumb_column").children[2].children[0].children[4].children[0].children[1].children[0].innerHTML = "Closed";
}
document.getElementById("ID_of_dumb_column").onmousedown = myfunction;
</script>
For me, this worked, it changed the text in my filter menu to what I set it as. The only thing you have to change to change the other options, is move the .children[4] up or down to get all the different li tags for each text you want to change.
Should it work? Yes. Is it a good answer? Heck no, and I'm sure there are better ones out there, but this is all I can think of, and when I tested the .children lines out in firefox debugger, the text changed. To wrap this up, my layout is different than yours, so your numbers will DEFINITELY be different than mine, and you may have more or less children calls. Just spend the next half hour or so parsing through the debugger, finding out where the incorrect text lies, and then write a line to travers down, starting from the column ID call.
I really hope this helps! :)
<script type="text/javascript">
function myNewFunction() {
document.body.innerHTML = document.body.innerHTML.replace(/<DIV font.../g, 'New'); //Fill in the DIV stuff with the whole line that appears in the filter text
document.body.innerHTML = document.body.innerHTML.replace(/<DIV font.../g, 'In Progress');
document.body.innerHTML = document.body.innerHTML.replace(/<DIV font.../g, 'Closed');
}
window.onClickFilter = myNewFunction;
</script>
Careful though, while this is quick, if you reference the text, it might cause problems