Country specific nodes Let's say we navigate to http://example.org/ch/de/node/1 (with pathauto enabled /ch/de/hallo-welt)

Now I want to specify somewhere the country Switzerland (ch) and set the available languages to de (for German), fr (for French), it (for Italian), rm (for Rhaeto-Romanic)

So when I navigate to that link above, there should be a language switcher that shows me all translations for that country.

But now I have other countries specified. For example Canada (ca) with the languages en and fr but en should not be visible on node/1
And of course now I have a node at /ca/en/hello-world with a translation in fr. Now the other languages should not be visible on that node.

How can I do that with modules?
I would suggest you look at 
This helps you translate whatever you need to have translated

Internationalization


The default language is always enabled as a detection method and that will  give you a fallback language if none of the other language detection methods are available.

(if your using Entity Translation)
You will have to enable the translation of nodes or entities that would be translatable at admin/config/regional/entity_translation.

After that you should : 


  Be able to enable "Multilingual support: Enabled, with content
  translation" on the content type edit form under "Publishing options".
  For example, for a content type named "example", this would be at
  admin/structure/types/manage/example/edit in the "publishing options"
  fieldset.


// Randy Fays answer to this

Try to check out this, It might also be helpfull depending on how you want to go about it

Entity Translation

Title module will help you translate node titles

Sources I used in this answer

Randy Fays blog - Multi Lingual (thank you, for making this great post

I found this helpfull too. 

Multi Lingual Setup Guide

I hope it was helpfull 

Best regards