From what I remember debugging a similar issue for a customer, you simply can’t use a thinking model for locale detection.
We don’t use structured outputs there, which means we are very sensitive to how the output comes. Thinking blocks break those 100% of the time, and without locale detection translation is always stuck.