Off the top of my head, not impossible, but difficult. Once you have got the signal to your phone, then it's fairly easy. You just need the signal to contain the information NR wants to transmit and your app would translate it (possibly imperfectly, which could be an issue) to the language of your choice. The app might come pre-configured with translations of common railway terms to make the translation more accurate.
However, the real problem is getting the signal to your phone. Off the top of my head, phones can typically receive data signals in 3 ways:
- Internet data, which the phone expects to come in a standard format from an Internet server, either over your phone network operator's cellular network, or via a wireless network.
- Text/etc. data, which should come over the operator's cellular network.
- Bluetooth
The data has to be sent only to phones on a particular train, which I think would make it very difficult to use the cellular network, as that has a much wider coverage. Internet data might be a possibility, but that would require the train to run a wireless network, and passengers would have to know to connect their phones to it. And that brings about additional problems that most phones will only connect to one wireless network at a time, so unless the train also takes responsibility for providing broadband internet to everyone on board as well, you're screwed if you want train announcements AND to have the Internet working on your phone. The train would possibly also have to do some kind of faking of the messages it sends so they look like they come from a remote server. I don't think any of those problems are insurmountable, but you'd have to throw some serious money at them to solve them.
That leaves Bluetooth, which might be possible, as the 100m-ish range of bluetooth is quite appropriate. I'm not massively familiar with bluetooth, but I think there could be issues with metal objects in the train (seats?) blocking the signal, and - more seriously - with signals leaking out of windows into nearby trains. Bluetooth has had historical security issues, I'm not sure if those have now been fixed, but it wouldn't be at all viable unless they have been. I certainly never switch bluetooth on unless I actually have a nearby device that I want to talk to right at that moment.
Another possibility, which might be technologically more realistic, is to avoid having each train sending its own data, but rather have something like a Network Rail central webserver send out data for all trains on the network, and when people get on a train, they have to do something to manually tell the app which train they are on, so the phone knows which data coming from the NR web server to translate/display. That would be technologically much easier, provided NR can get immediate access to positioning data for all trains, but I suspect the risks of user error make that not workable (passenger gets on the 16:07 to Dover Priory, hits the wrong button so their phone thinks they're on the 16:09 to Dartford and starts giving the user all the announcements for that train...)
Finally, perhaps something could be done using geolocation data. That ought to be a very easy option as Google basically already does that when providing information about shops etc. nearby. However I doubt that it would be workable on trains because your location won't necessarily be able to determine which of two nearby trains you are actually on (and it also would require some central server to know almost exactly where each train is at a given moment. Not just which signal block each train is in, but precisely where within the signal block the train is, so it could match up your location to the right train).