DotNetNuke 4.8 looks like does not work as expected after applying Turkish Locale. I'm pretty sure this happens with Azeri and other countries that use special characters in locales.
While searching how to fix this error, i reported issue at DotNetNuke Support Tracker.
The bug report source:
http://support.dotnetnuke.com/issue/ViewIssue.aspx?id=6896&PROJID=23
I also posted a notification post for Turkish Community saying "never install dnn 4.8 on a live site before it gets fixed".
Resource: http://www.mikroproje.com/Blog/tabid/144/articleType/ArticleView/articleId/266/Default.aspx
Luckly Bulet Fahri Cavan commented on my blog and posted a temporary solution.
I am going to mention about how to fix the issue but now, lets start with how DNN looks like with this bug.
Download and Install DotNetNuke 4.8 Source package (you need to download source package, because you will need to make changes and rebuild solution)
Then, install DotNetNuke under a virtual folder. For example default one (/dotnetnuke_2)
Start browsing your website by logging via Host and Admin Accounts. Everything looks fine with English Locale right?
Then add Turkish Locale from Host > Languages. No need to install language pack to see the bug, only adding Locale to portal and selecting it will display the bugs.
Click on Turkish Flag from right top corner of screen and. First issue appears.

1) Country Flags will disappear and images will be seen as broken paths.
More info: http://support.dotnetnuke.com/issue/ViewIssue.aspx?id=6715&PROJID=2
Lets continue discovering bugs.
2) Iconbar Control Panel menu displays following error message.
3) Browse Admin > Site Settings or Host > Host Settings you will see following error;

4) Browse Admin > Site Log

5) Browse Admin > File Manager or Host > File Manager

6) Browse Admin > Event Viewer

7) Browse Host > Module Definitions

8) Browse Host > Schedule

As you see we have many problems, but it looks like all happening because of some missing code in GetOrdinals function.
We are going to change this.
Solution:
Warning: Do backups of every file that is going to be modified during this tutorial.
1) Browse DotNetNuke installation location and open up DotNetNuke.sln file with Visual Studio.
Browse
Library\Components\Shared\CBO.vb file from Solution Explorer and double click on it to open it,

Go to line 29 (you can type CTRL+G to jump specific line) and add Imports System.Threading.

Then go to line 122 (starts with Private Shared Function GetOrdinals) and add following code;
to line 123;
Dim tmp_ActiveCultureInfo As CultureInfo = Thread.CurrentThread.CurrentCulture '//
to line 124
Thread.CurrentThread.CurrentCulture = New CultureInfo("en-US")

Then go to line 147 (the line before Return arrOrdinals) and add following;
Thread.CurrentThread.CurrentCulture = tmp_ActiveCultureInfo

Save your changes and click on Build > Rebuild Solution from top navigation menu.

Visual Studio will start rebuilding DotNetNuke Solution. After that you should not see the painfull uppercase-lowercase errors mentinoed in this tutorial.
If you want to use new build for remote website just copy and upload contents from Library\bin directory to \bin directory in your Website root.
I'm attaching tutorial files here in case you don't have Visual Studio and want to use this fix.
Warning: Please use following files at your own risk.
http://www.mynetnuke.com/Portals/28/docs/ProjectFiles.rar (You need Winrar utility to unpack this archive)
Resources
http://www.mikroproje.com/Blog/tabid/144/articleType/ArticleView/articleId/266/Default.aspx (Thanks to Bulent Cavan for posting this solution
Final Notes;
Please visit DotNetNuke Support Tracker and add your comments about issue, you can also vote for issue so it comes high priority.