Forum Discussion

krosav's avatar
krosav
Occasional Contributor
5 years ago

Language of aqConvert.DateTimeToFormatStr

Hello,

I have an application that i have to test in English and in French, at different URL-s.
One of the things i have to test is, at the last page, a string which, with words, tells me the date of an appointment, and it is of the form

Friday, December 13, 2019 ─ 08:00 pm

I have the date the form of numbers, i.e. 13 for the day, 12 for the month, and so on.
So i put these numbers in a datetime structure and use aqConvert.DateTimeToFormatStr to convert the datetime to a string with the appropriate format modifiers, and compare the obtained string with the string really displayed on the web page.
When my page is in English, everything is fine!

However, the problem arises when the application is in French. In this case, since my computer has an English language OS, so DateTimeToFormatStr converts the date to a string in an english language, as above. But my application is in French, so it displays the string as:

Vendredi 13 décembre 2019 ─ 20:00 pm

So my question is, is there any way to tell DateTimeToFormatStr to use another locale, not the default one in English?

Or alternatively, is there any way to change via the script the regional settings of my computer temporarily to French, to make the comparison, and to switch them back to English? Of course without stopping the script?

The idea is to compare the result of DateTimeToFormatStr with the string displayed by my application, regardless of the app language.

All suggestions are appreciated!

  • TanyaYatskovska's avatar
    TanyaYatskovska
    5 years ago

    Hi krosav,

     

    In case you still need some help, I've found the Setting the System Language From Scripts article in the TestComplete documentation. It says that rebooting is required after changing the system language. I think this is the key. Try applying the suggestion from this article and let us know how it works for you.

    • krosav's avatar
      krosav
      Occasional Contributor

      Thank you for your suggestion!

       

      Unfortunately it does not work for me, not sure why. SetLocaleInfo always return false, and GetLastError is 0, no matter what arguments i give to it. i tried with LOCALE_SNAME as type and "fr-CA" as value, with LOCALE_SLOCALIZEDLANGUAGENAME as type and "French (Canada)" as value, tried also with LOCALE_ILANGUAGE and others, to no avail...

       

      It would have been nice if DateTimeToFormatStr accepted the locale as parameter, but ... it does not.

      • tristaanogre's avatar
        tristaanogre
        Esteemed Contributor

        I'm with TanyaYatskovska .  We can probably help you debug your use of aqEnvironment to apply the Locale and see if we can find a way to use aqConvert.DateTimeToFormatStr.