i have following code:
when i run it on windows, it returns my os language ("de").
when i run it on mac OS lion, it returns "c". is this a bug?
No, C is a valid locale. Basically it is "use no translation at all".
Check the environment you are running your application in for the LC_* and LANG variables. Maybe something is forcing them to C. We do that in Qt Creator sometimes when we need to make sure to get parse-able output from the applications we run (e.g. the compiler).