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)); -- Jiang Xin