relative path in blocks - multilingual - does not work I'm using Drupal 7 with i18n modules. I have 6 languages on my site.
The relative paths are working fine except for:
the relative paths in blocks for the languages other than the default language.

On my front page I have several blocks. 
If I add the relative path in a block on my English (default language) front page (www.example.com) it works.
If I add a relative path in a block to my French front page (www.example.com/fr)

&lt;a href="page-in-french"&gt;Link in block on the French page&lt;/a&gt;


Then my expectation was to get to this page

www.example.com/fr/page-in-french

but instead I get to the page:

www.example.com/page-in-french

which obviously does not exist.

I know that I can manually add in the relative path the language code 

  &lt;a href="fr/page-in-french"&gt;Link in block on the French page&lt;/a&gt;


but since the URL that I'm accessing is www.example.com/fr , then a relative path should not contain the "fr/" since it is already in the URL.

How can I set the relative path to just "page-in-french"?

Thank you
There are 2 components in the multilingual Drupal WRT which language to show: Content and Interface. /page-in-french refers to Content, /fr/ refers to the Interface language. 

Without some additional "guidance" Drupal will link to exactly the link you tell it to. In D7 translations of nodes are new nodes (with different IDs) so it makes sense there is nothing to show for /page-in-french since there are no nodes in English with that name. 

Use multilink to redirect to content in language matching the interface language

If you want to make the Drupal be aware of language context in such a way to redirect to a relevant content translation to match the interface language use Multi-Language Link and Redirect (MultiLink). 

It works by enabling it on the text Input filter you're using. 

It comes with a special syntax to include links to nodes [NID:text] but you don't have to use it! The redirect will work even for HTML links with classes and IDs. Which means you don't have to edit the links you already have.  

If you want to control which text to display in the link 
you can do this in your English block:  

&lt;a class='someclass' href='/page-in-english'&gt;Custom English text&lt;/a&gt; 


and this in your Spanish block: 

&lt;a class='someclass' href='/page-in-english'&gt;Custom Spanish text&lt;/a&gt; 


The href attribute stays the same, only the link text changes. 

If you want to display node title as the link text (the title of the relevant language translation) you can rely on Multilink syntax: 

[34: $]

where the 34 is the NID of the English node $ represent relevant node title. This will display node 34 on the English side with node 34 title, and on the Spanish side it will display whichever node is the Spanish translation of node 34, and the link text will be the title of the translated node.

Check your Languages Detection and selection settings

Make sure you have URL set as the first enabled option. This will make sure the redirect respect the Interface language you're using. 

If you give advantage to the User option, and a user has Spanish set in their profile, they would never be allowed to see English pages, as long as they're logged in they'd always be redirected to Spanish.