If you don't like using the -f option, you can alternately set a QHACC_HOME environment variable in your shell. If you use any of the bourne-like shells, then type
export QHACC_HOME=/home/ryan/.qhacc
setenv QHACC_HOME /home/ryan/.qhacc
--import
option.
If you keep your old transactions in a checkbook, then there isn't any way around entering them manually. However, QHacc has many useful features for speeding the process. First, change your preferences to use "Auto-Complete on" all or new transactions. With this option, QHacc will try to use data from already-entered transactions on the new transactions. After typing in the payee, QHacc will supply the sum, memo, and double-entry account field automatically. If there is some ambiguity for a payee, you can go to the sum field and press the up and down arrows for other payments from that payee. Another useful feature is to highlight the last transaction entered, and use the "i" key instead of hitting the spacebar over "<new>" button to create a new transactions. This makes the transaction editor use the date from the already-entered transaction as the date for the new transaction. Hitting the spacebar uses the current date, which is probably annoying if you're trying to enter old transactions.
Upgrade scripts work from one revision to the next, but they do not work for more than one revision. That is, if the data format changes from version 1 to version 2 and from version 2 to version 3, the upgrade script provided in version 3 assumes the datafiles are in the format of version 2. Luckily, all upgrade scripts are provided in the download tarball, so upgrading even several revisions should be possible.
--enable-debug also used to enable compilation with the -g option to gcc. That option made the compiler include debug information in the executable. The same behaviour can be obtained directly through make by using: make CXXFLAGS="-O2 -g"
First, you need to start with a .ts file. This can be created using the lupdate.info file included with the sources in the src directory. Edit that file to include your i18n code. (i.e., qhacc_de_DE for German; qhacc_en_US for American English.) Then, run lupdate on lupdate.info to create the ts file. If you have trouble, contact me, and I'll be happy to make the ts file for you. If you followed the example, running lupdate should create a qhacc_de_DE.ts file.
The ts file is a simple XML script that contains the needed translations and their translated texts. You can edit it by hand, though Qt provides a tool called linguist that significanly enhances the experience. When you are done with the translation, call lrelease to make a .qm file. If you used linguist, there is an option to create a release from the open ts file. This qm file contains your translation QHacc. So how do you use it?
Using the qm file is a bit clunky at this time, though it does work. To use the qm file, just set your LANG and QHACC_LANGDIR variables. The LANG variable should be whatever your international code is, and QHACC_LANGDIR is where the qm file is. To continue our example, a German user would set LANG=de_DE, and QHACC_LANGDIR to /usr/local/qhacc/share, assuming that is where they put the qm file. Restart QHacc, and it should be in your language. (Localization--things like decimal point and currency symbol--is slightly different from internationalization. Right now, QHacc's support for l10n is limited to the options in the preferences dialog. There is no automatic l10n support.) By default, QHacc will install the available qm files into /usr/local/qhacc/share.
QHacc is currently only available in English, as that is the only language I can reasonably speak. I am working on a Spanish translation as well, but it may take some time. If you are interested in translating QHacc, I would love to hear from you. If you're a bit worried about the work, it is VERY easy to make a translation.
qhacc --import QIF:<account name>:<qif
filename>
qhacc --reconcile QIF:<account name>:<qif
filename>
qhacc --create MYSQL:<database name>
to
create a script that can create the QHacc database. (QHacc won't do
this automatically.)
So, why use an integer instead of a long integer (which would allow
transactions of up to $92,233,720,368,547,758.08)? There's no particular
reason, other than QHacc is the "Q Home Accountant," not the "Q
More Money Than Has Ever Been On The Earth Ever Accountant." I'm
perfectly willing to limit QHacc's scope of use to people and families
that have less than $20M in working capital.
/usr/local/qhacc /usr/local/qhacc/bin /usr/local/qhacc/lib /usr/local/qhacc/include /usr/local/qhacc/plugins /usr/local/qhacc/plugins/db /usr/local/qhacc/plugins/import /usr/local/qhacc/plugins/export /usr/local/qhacc/share /usr/local/qhacc/share/htmlBut QHacc uses Autoconf, so just about all the locations can change. For the most part, that's not a problem, except when it comes to plugins. Currently, plugins get installed into the lib directory and links get created in the appropriate plugin directory. However, if you change where the libraries go, the links won't work, and none of the plugins will be loaded.
The solution to this problem is the preconf file. More information
about it can be found here. This file
goes in the root of the QHacc installation (where ever you pointed
--prefix
to), and can include the token "PLUGINDIR" to point
to where the plugins can be found. You'll probably also need to recreate
the links or move the libraries from the library directory.
So what if you installed the binaries one place, the libs somewhere else, and you deleted everything else? That's a little more complicated, but still doable. Just find your qhacc executable. It's actually just a shell script, so you can edit it directly to change the QHACC_ROOT variable. Point that to the new installation directory (where the preconf file can be found), and change the LD_LIBRARY_PATH variable to point to the lib directory. Again, if the plugins aren't where QHacc's expecting them, you'll have to recreate the links or move the libraries.
I guess I should note that relocating QHacc isn't exactly for
beginners. You should be familiar with your system and administering it
in general before attempting these procedures.