Nicklas I think the loading order of extensions will determinate it. The loading order is defined based on the order you enabled them, and can be changed by disabling/re-enabling or editing the
enabled_extensions setting in the database.
You can "force" a given order for extensions by defining them as requirements of each other. Then Flarum will make sure you cannot enable an extension if the other extension isn't already enabled.
The Symfony translator only loads one value per key and per language. The last language pack to be loaded will override others.
That's how the Linguist extension does it. It registers additional translations after all extensions have booted, so it's able to override any existing translation.
I'm not sure what you mean by "generic" translation.