Hello @dunhou,
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 language\dialog
, e.g., 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.res
, the myDialog.str
files for all languages must define a string IDS_MY_GADGET
.
The file 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.
Cheers,
Ferdinand