I'm having trouble managing multiple web services that each have a slightly different list of supported languages
For example, say we support English, Chinese, and French in our web service using the typical ISO language and country codes and we call out to two different services, A and B.
If someone comes in with a Spanish locale, we fall back to English which is fine and dandy since everyone supports English. However, A only supports English and Chinese so when a customer comes in with French, we need to know to fall back to English for that request (while still using French internally).
B, on the other hand, does support all three but splits Chinese into two: Traditional and Simplified. It would be nice to perform that same split internally (more specific is usually better), but A only recognizes the non-split code so we'd have to keep track of both anyway.
Right now we have a separate database table with a list of mappings from one combination to the other for each webservice we call, but that's definitely not scalable. Soon we will need to add another mapping table for a service we discovered has weird behavior for Indonesian (instead of falling back to a sane working default, they give us a pretty little 404) and I'd like to see if there's a better strategy out there than multiple mapping tables.