Shouldn't the solution match the language to the words?

Result must be:
translations = {“English”: [“mountain”, “bread”, “friend”, “horse”], “Sindarin”: [“orod”, “bass”, “mellon”, “roch”]}

It’s pretty strange what you expect {‘friend’: ‘mellon’, ‘mountain’: ‘orod’, ‘horse’: ‘roch’, ‘bread’: ‘bass’}

Are you referring to lesson 2? When I did it way back when, this passed…

translations = {
  'mountain': 'orod',
  'bread': 'bass',
  'friend': 'mellon',
  'horse': 'roch'

There is no request for a transposition…

trans_map = {
  'English' : [],
  'Sindarin': []
for k, v in translations.items():
  trans_map['English'] += [k]
  trans_map['Sindarin'] += [v]
print (trans_map)
{'English': ['friend', 'mountain', 'horse', 'bread'], 'Sindarin': ['mellon', 'orod', 'roch', 'bass']}