Hello! I have written on Sunday, 3 May, at 12:14: >Eike Rathke has written on Saturday, 2 May, at 23:58: >>On Saturday, 2015-05-02 13:32:23 +0100, acefael wrote:
>>> [...] >>> +"Many others not mentioned here contributed code, fixes," , >>> +"and suggestions." }; >>> >>> - puts (_(Copyright)); >>> + { >>> + int csize = sizeof(Copyright)/sizeof(Copyright[0]); >>> + int i; >>> + for( i = 0 ; i < csize ; ++i ) { >>> + puts (_(Copyright[i])); >>> + } >>> + } >>What you may not be aware of, the _() underscore function is a special >>function for the gettext() translation process. AFAIK it does not work >>with array elements this way (someone correct me if I'm wrong). > You are wrong. It works exactly that way. Although strings which are >passed to invocation of _() should be marked for translation elsewhere by >enclosing them into N_() which cannot translate static string, of course, >but only marks the string. In the case above each element of Copyright[] >array should be enclosed in N_() to be translated by _(). Although looking at the code again I'm afraid it will never work since _(Copyright) and _(Copyright[i]) cannot be called at the same program, because _() requires (char *) argument and if Copyright is a (char *) array then _(Copyright[i]) will not work but if Copyright is a (char **) array then _(Copyright) will not work. Therefore a whole quoted code will fail to compile unless you supress errors, but if it compiles then it would crash at runtime. With best regards, Andriy.