3.1.3 Number formatting not adapting to locale

At the bottom of the screen, by default, the length of the selection is displayed. It also appears in some popup windows, such as generating silence or a tone.

The thousand marker appearing when setting to samples only, and the decimal marker when setting to hh:mm:ss+milliseconds, are based on the translation and not the system settings.

Expected result
The thousand marker and decimal marker should be based on the system settings.

I have my system set to follow the ISO 80000-1 recommendations, which uses a space as a thousand marker, and a comma as a decimal marker. But I can’t also run Audacity in English, since that will override these with the translation.

Since these are only visual and have no effect on the input, displaying these as anything should not harm any of the inputs. Pressing , . or space has no affect on the input.


Audacity time panel: https://i.imgur.com/RgWPBzq.png

Windows number format settings: https://i.imgur.com/CElCtvV.png (in Swedish)

I’m not convinced that is “expected” as it is a control, not just printed text. However, if you wish to raise this issue with the developers, you can do so on the GitHub “Issues” page: https://github.com/audacity/audacity/issues
(A free GitHub account is required)

I m not convinced it’s expected either.

My expectation is that the numerical separators used should be based on the language usage that Audacity is set to and not the locale setting of the computer in use. That was certainly how we always tested (and bug-fixed) in QA when Steve and I were working on QA before Audacity got sold.

Muse, the new owners of Audacity, may see things differently of course.

If one were to make such a change then I think it would have to be optional and controlled by a new setting in Interface preferences, say “Use locale for numerical separators”. This would need to be set “off” by default so that the current behavior remains for folk who do nothing to change this setting.


Why? I have chosen the separator in my system which I expect all software to follow. The symbols exists in the system for the software to use, why else would they be there?

All Microsoft developed software is using it. Several other programs are using it. If a user wants a specific symbol, they set it in their system and therefore get their symbols.

English (Sweden) with proper ISO 80000-1 is available in Windows as a locale, but not in Audacity. If the symbols should be based on the translation of Audacity (which it shouldn’t), then there needs to be multiple English locales to pick from, not just one. This is solved by using the symbols from the system instead (which is should)

I have sent a bug report there.

Regarding your comment. It doesn’t matter if it’s a control or not. It’s displaying number for me, and I need them in my format. It would be very annoying if all numbers appear as “12 500,75” in text but “12,500.75” in controls. Then when I see “1,500” I must therefore guess if it’s 15-hundred in a control value, or one-and-a-half with 3 decimal places in a text value. To avoid all this confusion, it’s just so much easier to always use thousand and decimal markers from the system, especially considering you’re willing to change this based on language, so base it on the system, like it should. Spreadsheets are properly using my defined symbols, so I don’t see why it would be different for Audacity.

These markers aren’t tied to the language. English (Sweden) follows ISO 80000-1 and is not supported as an option in Audacity.

Obviously in programming and code, like HTML, C++ and such, a period is used as a decimal marker and no thousand markers are used. But that is pure code. Audacity does not display pure code. It has a UI, a user interface, which should adapt to the user’s system settings.

I’ve been thinking about this a lot and I now find myself in agreement with the OP Liggliluff (following support from Steve on the GitHub thread - and after a lot of discussion with my German-speaking Swiss wife).

I have added my support to the GitHub thread: