Facebook expects caninical urls will not directly include locale code. Including the locale code in the URL means that there are different objects on the graph, one for each locale.
Instead, create URLs that do not include the locale code. At each of your other user-visible URLs that include the locale code, add an og: URL tag that points to the canonical URL without the locale code.
In the canonical URL, when Facebook makes a request, find the line useragent. It, if it contains "facebookexternalhit", then returns the HTML and og markup for reading Facebook. If this is not the case, you can file 302 and redirect the user to the URL that represents the object in your language.
For more information on internationalizing FB diagrams, see multilingual object processing documents.
source share