I have recently come across this challenging question on Stack Overflow. The OP, my friend Touseef, tried to add Chinese translation to his UWP app via a RESW file but unfortunately failed. The system didn't even recognize the app as supporting Chinese culture and even the built-in texts like Settings in the NavigationView
stayed in English even when the rest of UWP apps displayed in Chinese and the primary language was set accordingly.
Even weirder, the other languages worked as expected - both English and Spanish. After quite some time of investigation, I stumbled across the following in the CultureInfo
class documentation:
A neutral culture is specified by only the two-letter lowercase language code. For example, fr specifies the neutral culture for French, and de specifies the neutral culture for German.
There are two culture names that contradict this rule. The cultures Chinese (Simplified), named zh-Hans, and Chinese (Traditional), named zh-Hant, are neutral cultures. The culture names represent the current standard and should be used unless you have a reason for using the older names zh-CHS and zh-CHT.
The very important takeaway from this note is that zh is by itself not sufficient as a neutral language code. Instead you must name the folder either zh-Hans for Chinese simplified or zh-Hant for Chinese traditional. The choice really depends on how your resources are translated, but you need to be specific in this distinction as zh on its own is not enough.
This resolved the problem and app now was properly showing the Chinese resources. Mission accomplished!