cLanguageID can be an unstored calculation that copies the LanguageID from Contact:

It should be defined to just list Contact::Language_ID with "Request" specified as the context table.

You may need to do a commmit records/refresh window in some cases before you will see things on your Request layout (or portal based on Request) update to display the correct data from HomeDescriptions.

Option 2:

Use a filtered portal that filters the records from HomeDescriptions by Contact::Lnaguage_ID

This option works with your current relationships. On your requests layout you can include a portal or portals to HomeDescriptions but use this portal filter expression:

Contact::Language_ID = HomeDescriptions::Language_ID

Also in this case, you may find that you have refresh issues with the text thus displayed if you should change the Language specified for a given contact. There are scripting and relationship based methods that can handle this refresh issue without resorting to: