Skip to content


The way numbers are formatted varies across various countries. In this post, I am going to talk about how to configure localization in Paisa so you can use the number formatting you are familiar with.

The User Interface localization is controlled by configuration, and the Journal file localization is controlled by the commodity directive.

User Interface


The way the numbers are formatted by the User Interface is controlled by the configuration key called locale. By default, this value is set to en-IN. It can be edited via the configuration page. The value is made of two parts: the first part is the language name, and the second part is the region name. Refer to Wikipedia for the full list of supported language and country codes.


Paisa supports multiple currencies, but it needs you to set one of the currencies as the default currency. The User Interface shows all the numbers in the default currency.


Paisa also allows you to control the number of digits shown after the decimal point. By default, it's set to zero.


Paisa by default will try to use the system time zone. But if you deploy the application in a server, then you would have to set the time zone explicitly, as the server time zone might not be same as your local time zone. The time zone is used to parse and format dates.


In most cases, you don't have to worry about the journal file since you can enter the value in the correct format and the ledger will parse it fine. But if you want to follow European number formatting, then you would have to use commodity directive to declare the number formatting. In the example below, we instruct the ledger to treat , as decimal separator and . as thousand separator.

commodity EUR
    format 1.000,00 EUR

2024/01/01 Salary
    Income:Salary:Acme                    -11.000,00 EUR
    Assets:Checking                        11.000,00 EUR