We get labels and text displayed on site from the language file. We want to have different text per sitewhen getting string from localization service. Is there a way to have two files (.xml) each for one site per language. When the string is pulled it always gets from the file that site is assigned to.
I think that this is the way that the .NET standard translation using resource files works. This is what standard Episerver is relying on, and by default will not enable multiple xPath expressions (for multiple translations).
It may be possible to inject some logic however. I'd suggest having a look at Valdis' DB Localisation Provider which is obviously intercepting and modifying the standard behaviour of translations. Its a great AddOn to be aware of anyway, but you may find some inspiration in there for changing the standard logic to check for the current site and modify its behaviour.
Out-of-the-box, it is not available but you can use @Marcus approach to achieve this.