Gettext behaviour is controlled by global variables. So if a single process wants to serve several users with different languages, it has to set locale before each print. A simplest example is a web application -- if you set locale, it will affect not just output to the user, but also what application will write in the error log, and generally people don't want to deal with a mix of languages in their logs.
Re^3: Is there a need for another module like Locale::Maketext/Locale::gettext
Replies are listed 'Best First'.
Thanks or the explanation. My module is OO and each object can have it's own search order (i.e. you can say try 'en_GB' and if that fails, 'en_US' or 'en'), so no global variables. Of course, if the application uses global variables to determine the search order, that would still be a problem, but nothing in my module determines that.