How to set different languages for different domains, and display the language switcher accordingly? I have a website with different domains and I'd like to have some domains to have different languages.

I have a main site which is example.com, it's the main "group" site, it has multiple languages, in this case french, english, russian and spanish.

Then i have several other "sub" sites assigned to other domains and each have one or many assigned languages.
For example:
es.example.com is in spanish
ru.example.com is in russian

The problem is for a sub site that have more than one language.
for example:
ca.example.com would be in french and english.

How do you configure drupal to be able to achieve this, and how do you make the language switcher display only the languages available on the domain ?

I have domain access and i18n installed obviously.

Thanks in advance for your help.
A complete summary of the multilingual system for Drupal 7 can be found here: Drupal 7's new multilingual systems compilation. Specific to your question of "...some domains to have different languages", setting / detecting the language by domain can be setup in http://YOURSITE.com/#overlay=admin/config/regional/language/configure -> Detection and selection tab after the Locale module has been enabled. Details on the Detection and selection tab.

Notice that new to Druapl 7 this is now a weighted list that is processed to determine what method to use for the display language. The higher in the list the more likely that the method will be used.

In the case of you situation I suspect you'll have to write your own language selector to add to this list. I have to confess that the situation you describe sounds like it could better be solved in configuration that in code. Perhaps consider add the language into the domain in addition to the country - for example ca.example.com could be French: fr.ca.example.com and English: en.ca.example.com.