It's not possible with your current configuration. And subclasses can't have different numbers of columns in the key. You could set up mappings for each country/langugage combination, but that is probably not what you want.
The one-to-many/many-to-one approach is probably correct.
Check out the <join> element, as it does something like what you want, but it is still restricted to identical primary key shapes.
If there's a single ProductDescription class and lots of other classes refer to it, you could set up a CompositeUserType for it. Combine that with a <typedef> to a short description, and you can reduce your mappings to something simple like
Code:
<class name="SomethingWithProductDescription">
...
<set name="ProductDescription">
<key name="ProductId"/>
<element type="ProductDesc"/>
</set>
</class>
This solution can't work with bidirectional mappings, unfortunately.