Visiting any locale gives the same locale output The site has 5 locales targeting 'en_gb', 'fr_fr', 'de_de', 'it_it', 'es_es'. 
When I'm at site.com it gets current locale correctly en_gb. When I visit site.com/fr/ locale, It loads blank page with current locale en_gb. The same scenario repeats for all locales, except the top level local en_gb.

I went through my settings multiple times, but I still wasn't able to find a problem.

My general.php settings:

return array(   

// Local environment
'site.craft.dev' =&gt; array(
    'devMode' =&gt; true,
    'environmentVariables' =&gt; array(
        'sitePath' =&gt; '/OS/Applications/MAMP/sites/site.craft.dev/public/',
        'siteUrl' =&gt; 'http://site.craft.dev/'
        ),
    'siteUrl' =&gt;  array(
        'en_gb' =&gt; 'http://site.craft.dev/',
        'fr_fr' =&gt; 'http://site.craft.dev/fr/',
        'de_de' =&gt; 'http://site.craft.dev/de/',
        'it_it' =&gt; 'http://site.craft.dev/it/',
        'es_es' =&gt; 'http://site.craft.dev/es/',
        ),
    )
);


Public folders are structured  and set according to documentation, named after locale's handles like that: fr_fr, de_de etc.

and with $craftPath variable set to necessary handle like fr_fr, de_de etc.

When I visit site.craft.dev/fr/ and ask for current locale by {{ craft.i18n.getCurrentLocale() }}, it gives me default locale en_gb.
The craft path should be 1 level deeper like that '../../craft' instead of '../craft'. This is what was causing it, but I had to reconfigure the locales from fr_fr to fr. It didn't work in original way.