Translating contextual filter nid value On a multilingual site, the function named language_negotiation_get_switch_links($type, $path) looks up the content translation and enables user to switch to parallel content if available.
What if the path comes from Views with contextual filter being the node ID? Say, in English it'd be en/news/197 but in German de/nachrichten/198. Drupal/Views tend to leave the contextual filter untouched and produces invalid criss-cross paths such as de/news/197. There seems to be no way to translated the value into one that belongs to a given translation set.

Is there? Or maybe I'm approaching the problem in a wrong way...
The key was using two functions: drupal_get_normal_path() and i18n_get_path_translations(). Inside hook_language_switch_links_alter() you can modify the href attribute of each language switcher.