So..
as passengers buy their ticket, they indicate their language preference
and as the train comes to a station, you want an announcement in their language choice
until you have passed the station they would have dis-embarked
So you need 3 'tables';
Table of Stations and Languages
1. language code
2. Station
3. reference to the [audio] file with the corresponding announcement
Table of Passengers
1. Date/Time or dummy number or ticket number - - strictly speaking it is not needed but would be useful for debugging and analysis
2. Destination station
3. Language Code
Announcements [summary table derived from above]
1 Language Code
Two background programs. One to refresh the Announcements, and another to delete entries from Table of Passengers [as the destination station is passed]
As the train nears the station, the Announcements table says which languages, and the Table of Stations and Languages tells you which files to 'play'.