This was a bit of a head scratcher, I've added localisation with 20+ languages to a project and found using the following kind of notation:
AppResource.cs-CZ.resx AppResource.es-ES.resx ...etc
The resource files were set with the following build properties:
Build Action: Embedded Resource Copy to Output Directory: Do not copy Custom Tool: PublicResXFileCodeGenerator
In debug mode, the resources loaded fine and my localised text was appearing in the UI. however when built in Release mode, the resources we not loading and the default .resx (English) was being used.
After lots of messsing around with various settings, I remembered that a previous build had worked with a test Spanish file:
Now this file didn't have a Spanish variation but it worked.
Removing the language variations from the ends worked for release mode! Unfortunately I wanted simlified and traditional Chinese, so had to settle for just siplified.