Adding more more calendars ( Specially Jalali )

John Ralls jralls at
Fri Oct 21 09:59:10 EDT 2016

> On Oct 20, 2016, at 8:10 PM, Amin Aghabeiki <amin.aghabeiki at> wrote:
> Hi All
> First I should say sorry for my bad English .
> I plan to add new calendar to GnuCash , and want use others experience on
> it.
> my Idea is :
> use Gregorian calendar for store and retrieve data in / out of storing
> place
> and add a new layer to just display the other ( Jalalian ) Calender in View
> .
> after some research on code , I find Date Cell struct object on code that
> use to manage date data , and think to work on it and extend it to support
> more calendar.
> so my question is :
> 1- is this idea good for do it.
> 2- if this idea look good , is my way correct ?  ( Extending Date Cell )


There's nothing wrong with your idea, but the devil is in the details as always. In addition to the DateCell for display in the register you'll need to hunt down all of the other places that use dates so that the user gets the right date input and display everywhere.  You'll also need to provide a way of enabling the alternate calendar. There are two options: Use Locale (noting that Microsoft Windows does localization differently from Unix and you'll need to accommodate both) or have an explicit setting in Preferences>General.

One other thing to note: We currently have two register modules: One in src/register and the other spread around src/gnome, src/gnome-utils, src/core-utils, and src/app-utils. The one in src/register is the one that users see, the other being a modernization attempt that fizzled a bit. We call the second one Register2 and we try to keep it up to date in the hopes that someone will finish debugging it. Most of the code is copy-pasted from src/register, but the cell renderers might be different as they'd have to work with current Gtk2 GtkTreeView rather than the very old Gnumeric tree views in src/register.

Christian Stimming added jalali<->gregorian conversion code (src/core-utils/gnc-jalali.c) a few years ago, but never hooked it up to anything. You might check the implementation to make sure that he didn't make any errors.

John Ralls

More information about the gnucash-devel mailing list