Skip to Main Content
Feature Request FR-2633
Product Area User Interface
Status DELIVERED

1 Voters

Set correct thousand separator for Czech language

bures Public
· Jul 8 2022

Idea Summary
Nowadays default number thousand separator for Czech language is set to “.”. But that is not correct. Correct separator is a space. So one milion should be formated as “1 000 000,00” instead of wrong “1.000.000,00”.

Use Case
Display and edit of numbers in Interactive Grid will work as users expect.

Preferred Solution (Optional)
I believe that simple change of default thousand separator for Czech language will be sufficient. But maybe it would be useful to add explicit (application globalization) option which characters should be used as thousand and decimal separators.

This has been delivered in Oracle APEX 24.2 as part of bug 33462185!

Comments

Comments

  • jayson hanes Admin OP 3.7 years ago

    Hi Bures, some notes from the DEV team:

    The RDBMS disagrees:

    APEX_220200@main> alter session set nls_language=czech nls_territory="czech republic";
    Relace (session) změněna.
    APEX_220200@main> select to_char(1234.5,'9G990D99') from dual;
    TO_CHAR(1
    ---------
     1.234,50
    
    1 řádek vybrán.
    

    If it is a bug, it's a RDBMS bug.

    and

    https://community.oracle.com/tech/developers/discussion/2302181/set-correct-thousand-separator-space-for-czech-locale

  • bures OP 3.7 years ago

    Thank you for your response. And sorry that I didn't find out that it is set this way in the DB itself.

    I have tried the suggested workaround (setting NLS_NUMERIC_CHARACTERS) before, but it doesn't work for Interactive Grid (at least in APEX 22.1.0).

    I've got IG with a Number Field column with Format Mask e.g. “fm999G990D09”. On load the column displays e.g. as “1 234,56”. When you edit the value and enter e.g. “2234,56”, it changes to “2.234,56”. And on Save error occurs: “PNL does not match number format”.

    So it seems IG internaly does not reflect changed NLS_NUMERIC_CHARACTERS. Sadly workaround does not work for this case :(

  • patrick wolf Admin OP 3.7 years ago

    Hi Bures,

    we are currently tracking bug# 33462185 for this. Just setting NLS_NUMERIC_CHARACTERS in “Init Database Session” isn't enough, you also have to perform the following steps to fix the custom NLS Numeric Characters in JavaScript:

    Create a Static Application File named setLocale.js with the following
    content

    apex.locale.init({separators:{group:" ", decimal:","}});  

    Go to Shared Components -> User Interface Attributes -> JavaScript

    Set File URLs = # APP_FILES#setLocale.min.js (remove the space between # and APP_FILES)

    This will run the script on each page load and will set the desired NLS
    Numeric Characters for the browser.

    Regards
    Patrick

  • bures OP 3.7 years ago

    Thank you Patrick! Now it works as expected :)

  • thierry OP 2.9 years ago

    It seems we are hitting the same issue, in the Netherlands. Is editing the group in the setLocale.js file still the solution? I cannot find the bug # mentioned (33462185).

    We are upgrading to 22.2.4.

  • achour OP 1.5 years ago

    I have the same problem in Oracle APEX 22.1. I implemented the solution by creating an application process with the following PL/SQL code:

    BEGIN    EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_NUMERIC_CHARACTERS = '', '''; END;

    It works when the page loads, but when I refresh a region on this page, the decimal separator changes back to a dot.

    Is there a solution for this?