You are right, my little diagram was not correct, the string folders must be part of the resource, I forgot to indent them one level. I have fixed the diagram.
The string definitions in
string_us/dialogs/myDialog.str, define the strings referenced by a dialog definition, e.g.,
dialogs/myDialog.res. E.g., when you have some dialog gadget which is defined to have
NAME IDS_MY_GADGET in
myDialog.str files for all languages must define a string
c4d_strings.str on the other hand is used to store generic string, and it is not specifically made for menus, it is just one way you can use it. There is no (public) mechanism to define menus in resources, so, all you can do is to define strings in the
c4d_strings.str files and then load strings for the currently active language inside Cinema 4D to build a localized menu out of them.
You can see this multipurpose nature at the example of the strings_en-US/c4d_strings.str file of the Asset API Examples Plugin. I stored there all kinds of string information, ranging from tooltips, over the names of the examples and their short descriptions, to some URLs.
c4d_strings.str does exactly what its name implies, it stores generic strings.
I hope this clarifies things.