If I can only embed one .resources file into an assembly, does that mean I have to put every language resource into one file?
No, it doesn't. The ResourceManager class has a CreateFileBasedResourceManager function that supports the reading of .resources files. You can use multiple .resources files in different languages.
I know I can create resources manually using an XML editor or the ResEditor utility. Are there any other ways?
Yes, there is another way. You can also programmatically create resources using the ResourceWriter class. In fact, this is exactly the way the ResEditor.exe tool reads and writes resources.