Hi,
Your screenshots are fine.
However, looking at it again, I think I've forgotten something in the code I gave you.
Instead of :
if($canonical && !empty($product->product_canonical))
$result[$language->lang_code] = hikashop_cleanURL(hikashop_translate($product->product_canonical), false, true);
to code should actually be:
if($canonical && !empty($product->product_canonical)) {
$result[$language->lang_code] = hikashop_cleanURL(hikashop_translate($product->product_canonical, $language->lang_code), false, true);
continue;
}
so that the translation key is translated for the destination language and not for the current language and that the retrieved URL is not overwritten by the line
$result[$language->lang_code] = $lang_url . (!empty($item_id) ? '&Itemid='.$item_id : ''). '&lang='.substr($language->lang_code, 0,2);
at the end of the loop.
Please do that change and it should help.