Specify the desired URL

For each group of duplicates, select a stable address: HTTPS, the desired domain, and the agreed path format. It should open with the correct code, be available for indexing and contain appropriate content. Don't canonicalize every product to its category just because they share a topic: they have different content.

Continue with: E-commerce filters: which pages should be indexed?.

Compare all source addresses

Check canonical in HTML, possible HTTP headers, redirects, sitemap and internal links. They should not insist on different options. For URLs with parameters, check the actual content change: sorting and separate useful selection may require different solutions.

Continue with: Hreflang: verify equivalent pages in four languages.

Check the search result

In Search Console, compare the canonical specified by the site with Google's choice. Discrepancy is a reason to investigate duplication and conflicting signals. After the change, test the public HTML without authorization and with the corresponding cache cleared. Don't change the canonical along with a dozen other factors without a changelog.

Should all translations have Ukrainian canonical?

Usually, independent translated pages have their own canonical URLs, and language correspondence is described via hreflang. The canonicalization of all languages into one requires a different justification.

Documentation and sources