Имам проблеми с това, защото имам валути с кодове от 3 цифри (USD, EUR, COP и т.н.).
Ако решите да използвате функцията setlocale, трябва да направите нещо подобно:
setlocale(LC_MONETARY, 'en_US');
Вижте, че подавате 'en_US', а не 'USD'. Как мога да знам за всяка избрана от потребителя валута съответния локал за LC_MONETARY, за да се използва с setlocale.
В допълнение, в моя уебсайт валутата не зависи от езика, например имате уебсайта на испански, но можете да видите парите в USD. Това ще доведе до локал като: es_US ???? Вярвам, че не се поддържа.
Благодаря.