Drupal 7's $language_url global threw me for a loop today. I filed an issue here: http://drupal.org/node/956256 but figured I'd also post something to g.d.o. since issues can be rather hard to find.
While working on a multilingual Drupal 7 site, I loaded the front page and found that the user interface was in one language, while all the links on the page pointed to another language (i.e. different language prefix on all the links).
This was caused by Drupal detecting the browser language and applying it to the user interface language, while the URL language didn't pay any attention to it and used the default language. Apparently, the URL language only detects language from the URL, while the user interface language has a whole bunch of different ways to detect language via the browser, user, URL, etc.
Looks like I'd need to write a little module that implements hook_language_init() if I want to make sure that URL language and user interface language match each other...

Comments
Same issue
I have a choice of user interface languages : ex I chose english
the content is still french (with underneath a translation option for english or dutch)
I think it is very confusing
This is a quick run through
(Truyen had a few edits he wanted me to apply to the text to clarify 3.e, 3.g and 4.d)
This is a quick run through of a presentation Truyen Le and I gave with Bronicat and Violentpickle at SWDrupal Summit 2011 this past January... I have a screen captured video I'll post once we get the voiceovers incorporated (we narrated live before and paused for questions)....
There are four areas you need to address for multilingual sites (Internationalization + Localization):
1. User Interface Text: Admin pages such as blocks, views, user admin pages
2. Content text: node contents
3. User Submitted Text: menu items, cck, help text, taxonomy, etc
4. Language Independent Variables: site_name, site_slogan, site_mission, etc.
To do this you need to address the following four areas
User Interface Text:
1.a. Modules - List - Locale [X] enable
1.b. Download your language(s) from drupal.org/project/es (spanish, example), untar the download into your site root, it should unzip the proper modules, profiles and themes support for the languages.
1.c. Site configuration - Languages - Add Language - select the new language.
1.d. Configure - Path Prefix with Language Fallback (this may be the language fallback behavior mentioned in the original post)
1.e. Add the Language Switcher Block to the left sidebar at least for testing.
Content Text:
2.a. Site Building - Modules - List - Content Translation [X] enable
2.b. Content Management - Content Types - Workflow Settings - Multilingual Support - (X) Enabled, With Translation
2.c. Content Management - Content - List - Pick a content entry - you now have a "Translate" tab. Use Google Translate (or other source) and translate the content you want into the language(s) you have selected.
2.d. Now you can toggle between the languages on the left sidebar you added, and see the content page go between your two (or more) languages automatically.
User Submitted Text:
Like menu items - Home, Catalog, About, on the Primary Links bar.
3.a. Download: drupal.org/project/i18n (i18n = Internationalization) and drupal.org/project/l10n (l10n = localization)
3.b. Extract these to sites/all/modules/contrib/
3.c. Site Building - Modules - List - and enable both new Internationalization and Block Translation, CCK translation, Content Translation, Localization client, Menu Translation, Profile Translation, String Translation, Synchronize Translations, and Taxonomy Translation.
3.d. Importing Interface Translations (automatically does this when you save the module updates)
3.e If you're not using super admin account, then you need to go to permission page and grant "use on-page translation" privilege under L10n_client_module to your role. => so that you can do the on-page translation.
3.f. now look at your site's front page. Remember the menu (primary links) - if you have something like "Home", "Catalog", "About" ...
3.g. Switch to new language added above using Language Switcher block (only switch to other language then you see the new blue bar below)
3.h. In the bottom of your browser you should see a new blue bar for Translations, click on it to expand the interface. The left side will offer a list of Page Text, you can search for your entries (Home, About, Catalog, etc) - enter their translations, and voila...your menu is now multilingual.
Language Independent Variables:
4.a. Site Configuration - Site Information - notice your Site Name is in your default language for both translations. It cannot be set yet...
4.b. Add the following to the bottom of your D6's settings.php file:
/* New section for Translations */
$conf['i18n_variables'] = array(
// Site configuration
'site_name',
'site_slogan',
'site_mission',
'site_footer',
'anonymous',
// Node help
'blog_help',
'story_help',
// User configuration
'user_mail_password_reset_body',
'user_mail_password_reset_subject',
'user_mail_register_admin_created_body',
'user_mail_register_admin_created_subject',
'user_mail_register_no_approval_required_body',
'user_mail_register_no_approval_required_subject',
'user_mail_register_pending_approval_body',
'user_mail_register_pending_approval_subject',
'user_mail_status_activated_body',
'user_mail_status_activated_subject',
'user_mail_status_blocked_body',
'user_mail_status_blocked_subject',
'user_mail_status_deleted_body',
'user_mail_status_deleted_subject',
// Theme settings: you may want to use different logos for each language
'theme_settings',
// These are for primary and secondary links
'menu_primary_links_source',
'menu_secondary_links_source',
// These are for the contact form
'contact_form_information',
);
4.c. Flush all Caches
4.d. Return to Site Information page, notice your site's "Name" entry now says, "This is a multilingual variable" - others on the same page say that as well. Now you can switch to new added language above and enter your Google Translate or other text in this field and it will save properly.