1 Reply Latest reply: Aug 13, 2018 3:50 PM by Fernando Tonial RSS

    Challenges with Interval() format & translation/internationalization (pt-BR)

    Eric Ruiz

      Hi all!

       

       

      The problem: get an interval and translate it to another language, my case is portuguese (pt-BR).

       

      Documentation reference:

       

      Let's say:

      timestamp_0 = 20/07/2018 15:00:00

      timestamp_1 = 21/07/2018 17:00:00

      // note the 24H pattern

       

      I need to get "1 dia 02 horas", this is pt-BR translation for  "1 day 02 hours";

       

      Try 1:

      Interval(timestamp_0 - timestamp_1, 'D hh')

       

      // obviously it shows "1 02" as expected, ok

       

       

      Try 2:

      // getting days

      Interval(timestamp_1 - timestamp_0, 'D')

        // solving plurals

        & If(Interval(timestamp_1 - timestamp_0, 'D') > 1, ' dias', ' dia')

      // getting hours

      & Interval(timestamp_1 - timestamp_0, 'hh')

        // solving plurals

        & If(Interval(timestamp_1 - timestamp_0, 'hh') > 1, ' horas', ' hora')

       

      // It shows "1 dias 26 horas", so not as expected, and I didn't understood why I got "dias" instead of "dia"... so

       

       

      Try 3 (fancy and lazy way):

      Replace(Interval(timestamp_1 - timestamp_0, 'D hh') , ' ', 'd ') & 'h'

      // shows "1d 02h", it is ok for pt-BR, en-US and many other languages

       

      So, to get "1 dia 02 horas" I can implement a tedious and ugly code with many "replaces" and "Ifs". Not so fun.

       

      Is there a smartest way to do that?

       

      Thanks a lot.

      Best regards.

       

      P.S.: is there a way to put [code] in this editor? I mean, like Github or PhpBB fórums, etc.? It would be nice too.