Hi, On Mon, 17 Jul 2017, Jiang Xin wrote: > 2017-07-16 3:30 GMT+08:00 Jean-Noël Avila <jn.avila@xxxxxxx>: > > > > > > A few remarks on i18n: > > > > * commit cb71f8bdb5 ("PRItime: introduce a new "printf format" for > > timestamps") does not play well with i18n framework. The static string > > concatenation cannot be correctly interpreted by msgmerge. I don't know > > how we can combine variable format indicators with translatable strings. > > > > We can add a new wrapper for raw timestamp like: > > +const char *format_raw_time(timestamp_t time) > +{ > + static struct strbuf time_buf = STRBUF_INIT; > + > + strbuf_reset(&time_buf); > + strbuf_addf(&time_buf, "%"PRItime, time); > + return time_buf.buf; > +} > > > , and replace macro PRItime in i18n messages with format_raw_time > wrapper, like this: > > - strbuf_addf(&sb, Q_("%"PRItime" year", > "%"PRItime" years", years), years); > + strbuf_addf(&sb, Q_("%s year", "%s years", > years), format_raw_time(years)); That would come at the price of complexifying the code just to accommodate a translation tool. How do you gentle people deal with PRIuMAX? Ciao, Dscho