2017-07-16 3:30 GMT+08:00 Jean-Noël Avila <[email protected]>:
>
>
> 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