Hi,

On Mon, 17 Jul 2017, Jiang Xin wrote:

> 2017-07-16 3:30 GMT+08:00 Jean-Noël Avila <jn.av...@free.fr>:
> >
> >
> > 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

Reply via email to