To add some focus, the real question is whether the merchant has a choice of currency. If not, then you can refuse to sign but you will still need another way to pay.
If the merchant does have have a choice, then one should demand local currency and refuse to sign until the charge is run through in local currency. The fact that they already ran one through in dollars means nothing unless you sign for that charge, since if it came through unsigned, then you could then deny responsibility through your card issuer.
Complaining through the card issuer should only occur when you can't resolve issues with the merchant. Until and unless you ask, I don't think you've reached that threshold.